package com.tourguide.security;
|
|
import com.tourguide.modules.user.domain.ClientType;
|
import org.junit.jupiter.api.Test;
|
import org.springframework.security.core.GrantedAuthority;
|
|
import java.util.Arrays;
|
import java.util.stream.Collectors;
|
|
import static org.assertj.core.api.Assertions.assertThat;
|
|
class AppUserPrincipalTest {
|
@Test
|
void adminPrincipalShouldExposeRoleAndMenuAuthorities() {
|
AppUserPrincipal principal = new AppUserPrincipal(1L, "guide-admin", "CUSTOM_GUIDE",
|
ClientType.ADMIN, Arrays.asList("GUIDE_LIST", "GUIDE_LIST_VIEW"));
|
|
assertThat(principal.getAuthorities().stream()
|
.map(GrantedAuthority::getAuthority)
|
.collect(Collectors.toList()))
|
.containsExactly("ROLE_ADMIN", "ROLE_CUSTOM_GUIDE", "PERM_GUIDE_LIST", "PERM_GUIDE_LIST_VIEW");
|
}
|
|
@Test
|
void nonAdminPrincipalShouldKeepOriginalRoleOnly() {
|
AppUserPrincipal principal = new AppUserPrincipal(2L, "guide", "GUIDE_USER", ClientType.GUIDE);
|
|
assertThat(principal.getAuthorities().stream()
|
.map(GrantedAuthority::getAuthority)
|
.collect(Collectors.toList()))
|
.containsExactly("ROLE_GUIDE_USER");
|
}
|
}
|