1
2
3
4
5
6
7 package waffle.servlet;
8
9 import jakarta.servlet.http.HttpServletRequest;
10
11 import mockit.Expectations;
12 import mockit.Mocked;
13
14 import org.junit.jupiter.api.Assertions;
15 import org.junit.jupiter.api.BeforeEach;
16 import org.junit.jupiter.api.Test;
17
18 import waffle.windows.auth.IWindowsAccount;
19 import waffle.windows.auth.IWindowsIdentity;
20 import waffle.windows.auth.PrincipalFormat;
21
22
23
24
25 class NegotiateRequestWrapperTest {
26
27
28 private static final String TEST_FQN = "DOMAIN\\testuser";
29
30
31 @Mocked
32 private IWindowsIdentity windowsIdentity;
33
34
35 @Mocked
36 private HttpServletRequest request;
37
38
39 private NegotiateRequestWrapper wrapper;
40
41
42 private WindowsPrincipal principal;
43
44
45
46
47 @BeforeEach
48 void setUp() {
49 Assertions.assertNotNull(new Expectations() {
50 {
51 NegotiateRequestWrapperTest.this.windowsIdentity.getFqn();
52 this.result = NegotiateRequestWrapperTest.TEST_FQN;
53 NegotiateRequestWrapperTest.this.windowsIdentity.getGroups();
54 this.result = new IWindowsAccount[0];
55 }
56 });
57 this.principal = new WindowsPrincipal(this.windowsIdentity, PrincipalFormat.FQN, PrincipalFormat.FQN);
58 this.wrapper = new NegotiateRequestWrapper(this.request, this.principal);
59 }
60
61
62
63
64 @Test
65 void testGetUserPrincipal() {
66 Assertions.assertEquals(this.principal, this.wrapper.getUserPrincipal());
67 }
68
69
70
71
72 @Test
73 void testGetAuthType() {
74 Assertions.assertEquals("NEGOTIATE", this.wrapper.getAuthType());
75 }
76
77
78
79
80 @Test
81 void testGetRemoteUser() {
82 Assertions.assertEquals(NegotiateRequestWrapperTest.TEST_FQN, this.wrapper.getRemoteUser());
83 }
84
85
86
87
88 @Test
89 void testIsUserInRoleValidRole() {
90 Assertions.assertTrue(this.wrapper.isUserInRole(NegotiateRequestWrapperTest.TEST_FQN));
91 }
92
93
94
95
96 @Test
97 void testIsUserInRoleUnknownRole() {
98 Assertions.assertFalse(this.wrapper.isUserInRole("DOMAIN\\unknownrole"));
99 }
100 }