1 package de.dlr.shepard.auth.security;
2
3 import static org.junit.jupiter.api.Assertions.assertEquals;
4 import static org.junit.jupiter.api.Assertions.assertFalse;
5 import static org.junit.jupiter.api.Assertions.assertTrue;
6
7 import jakarta.ws.rs.core.SecurityContext;
8 import java.security.Principal;
9 import org.junit.jupiter.api.Test;
10
11 public class JWTSecurityContextTest {
12
13 private String[] roles = { "role1", "role2" };
14 private JWTPrincipal principal = new JWTPrincipal("MyAudience", "MyIssuedFor", "MyUsername", "MyKeyId", roles);
15
16 private SecurityContext sc = new SecurityContext() {
17 @Override
18 public boolean isUserInRole(String role) {
19 return false;
20 }
21
22 @Override
23 public boolean isSecure() {
24 return false;
25 }
26
27 @Override
28 public Principal getUserPrincipal() {
29 return null;
30 }
31
32 @Override
33 public String getAuthenticationScheme() {
34 return null;
35 }
36 };
37
38 @Test
39 public void testGetUserPrincipal() {
40 var context = new JWTSecurityContext(sc, principal);
41 assertEquals(principal, context.getUserPrincipal());
42 }
43
44 @Test
45 public void testUserInRole() {
46 var context = new JWTSecurityContext(sc, principal);
47 assertTrue(context.isUserInRole("role1"));
48 assertFalse(context.isUserInRole("role5"));
49 }
50
51 @Test
52 public void testIsSecure() {
53 var context = new JWTSecurityContext(sc, principal);
54 assertEquals(sc.isSecure(), context.isSecure());
55 }
56
57 @Test
58 public void testAuthenticationScheme() {
59 var context = new JWTSecurityContext(sc, principal);
60 assertEquals("Token-Based-Auth-Scheme", context.getAuthenticationScheme());
61 }
62 }