liujie
2026-08-21 ad5db85e540947e82c7a4d5612879b3b3ecdf459
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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");
    }
}