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 package org.apache.hc.client5.http.auth;
29
30 import java.io.ByteArrayInputStream;
31 import java.io.ByteArrayOutputStream;
32 import java.io.ObjectInputStream;
33 import java.io.ObjectOutputStream;
34
35 import org.junit.jupiter.api.Assertions;
36 import org.junit.jupiter.api.Test;
37
38 public class TestCredentials {
39
40 @Test
41 public void testUsernamePasswordCredentialsBasics() {
42 final UsernamePasswordCredentials creds1 = new UsernamePasswordCredentials(
43 "name","pwd".toCharArray());
44 Assertions.assertEquals("name", creds1.getUserName());
45 Assertions.assertEquals(new BasicUserPrincipal("name"),
46 creds1.getUserPrincipal());
47 Assertions.assertArrayEquals("pwd".toCharArray(), creds1.getPassword());
48 Assertions.assertEquals("[principal: name]", creds1.toString());
49 final UsernamePasswordCredentials creds2 = new UsernamePasswordCredentials(
50 "name", null);
51 Assertions.assertEquals("name", creds2.getUserName());
52 Assertions.assertEquals(new BasicUserPrincipal("name"),
53 creds2.getUserPrincipal());
54 Assertions.assertNull(creds2.getPassword());
55 Assertions.assertEquals("[principal: name]", creds2.toString());
56 }
57
58 @Test
59 public void testNTCredentialsBasics() {
60 final NTCredentials creds1 = new NTCredentials(
61 "name","pwd".toCharArray(), "localhost", "domain");
62 Assertions.assertEquals("name", creds1.getUserName());
63 Assertions.assertEquals(new NTUserPrincipal("DOMAIN", "name"),
64 creds1.getUserPrincipal());
65 Assertions.assertArrayEquals("pwd".toCharArray(), creds1.getPassword());
66 Assertions.assertEquals("[principal: DOMAIN\\name][workstation: LOCALHOST][netbiosDomain: DOMAIN]",
67 creds1.toString());
68 final NTCredentials creds2 = new NTCredentials(
69 "name", null, null, null);
70 Assertions.assertEquals("name", creds2.getUserName());
71 Assertions.assertEquals(new NTUserPrincipal(null, "name"),
72 creds2.getUserPrincipal());
73 Assertions.assertNull(creds2.getPassword());
74 Assertions.assertEquals("[principal: name][workstation: null][netbiosDomain: null]",
75 creds2.toString());
76 }
77
78 @Test
79 public void testUsernamePasswordCredentialsHashCode() {
80 final UsernamePasswordCredentials creds1 = new UsernamePasswordCredentials(
81 "name","pwd".toCharArray());
82 final UsernamePasswordCredentials creds2 = new UsernamePasswordCredentials(
83 "othername","pwd".toCharArray());
84 final UsernamePasswordCredentials creds3 = new UsernamePasswordCredentials(
85 "name", "otherpwd".toCharArray());
86
87 Assertions.assertTrue(creds1.hashCode() == creds1.hashCode());
88 Assertions.assertTrue(creds1.hashCode() != creds2.hashCode());
89 Assertions.assertTrue(creds1.hashCode() == creds3.hashCode());
90 }
91
92 @Test
93 public void testUsernamePasswordCredentialsEquals() {
94 final UsernamePasswordCredentials creds1 = new UsernamePasswordCredentials(
95 "name","pwd".toCharArray());
96 final UsernamePasswordCredentials creds2 = new UsernamePasswordCredentials(
97 "othername","pwd".toCharArray());
98 final UsernamePasswordCredentials creds3 = new UsernamePasswordCredentials(
99 "name", "otherpwd".toCharArray());
100
101 Assertions.assertEquals(creds1, creds1);
102 Assertions.assertNotEquals(creds1, creds2);
103 Assertions.assertEquals(creds1, creds3);
104 }
105
106 @Test
107 public void testNTCredentialsHashCode() {
108 final NTCredentials creds1 = new NTCredentials(
109 "name","pwd".toCharArray(), "somehost", "domain");
110 final NTCredentials creds2 = new NTCredentials(
111 "othername","pwd".toCharArray(), "somehost", "domain");
112 final NTCredentials creds3 = new NTCredentials(
113 "name", "otherpwd".toCharArray(), "SomeHost", "Domain");
114 final NTCredentials creds4 = new NTCredentials(
115 "name","pwd".toCharArray(), "otherhost", "domain");
116 final NTCredentials creds5 = new NTCredentials(
117 "name","pwd".toCharArray(), null, "domain");
118 final NTCredentials creds6 = new NTCredentials(
119 "name","pwd".toCharArray(), "somehost", "ms");
120 final NTCredentials creds7 = new NTCredentials(
121 "name","pwd".toCharArray(), "somehost", null);
122 final NTCredentials creds8 = new NTCredentials(
123 "name","pwd".toCharArray(), null, "domain");
124 final NTCredentials creds9 = new NTCredentials(
125 "name","pwd".toCharArray(), "somehost", null);
126
127 Assertions.assertTrue(creds1.hashCode() == creds1.hashCode());
128 Assertions.assertTrue(creds1.hashCode() != creds2.hashCode());
129 Assertions.assertEquals(creds1.hashCode(), creds3.hashCode());
130 Assertions.assertNotEquals(creds1.hashCode(), creds4.hashCode());
131 Assertions.assertNotEquals(creds1.hashCode(), creds5.hashCode());
132 Assertions.assertNotEquals(creds1.hashCode(), creds6.hashCode());
133 Assertions.assertNotEquals(creds1.hashCode(), creds7.hashCode());
134 Assertions.assertEquals(creds8.hashCode(), creds5.hashCode());
135 Assertions.assertEquals(creds9.hashCode(), creds7.hashCode());
136 }
137
138 @Test
139 public void testNTCredentialsEquals() {
140 final NTCredentials creds1 = new NTCredentials(
141 "name","pwd".toCharArray(), "somehost", "domain");
142 final NTCredentials creds2 = new NTCredentials(
143 "othername","pwd".toCharArray(), "somehost", "domain");
144 final NTCredentials creds3 = new NTCredentials(
145 "name", "otherpwd".toCharArray(), "SomeHost", "Domain");
146 final NTCredentials creds4 = new NTCredentials(
147 "name","pwd".toCharArray(), "otherhost", "domain");
148 final NTCredentials creds5 = new NTCredentials(
149 "name","pwd".toCharArray(), null, "domain");
150 final NTCredentials creds6 = new NTCredentials(
151 "name","pwd".toCharArray(), "somehost", "ms");
152 final NTCredentials creds7 = new NTCredentials(
153 "name","pwd".toCharArray(), "somehost", null);
154 final NTCredentials creds8 = new NTCredentials(
155 "name","pwd".toCharArray(), null, "domain");
156 final NTCredentials creds9 = new NTCredentials(
157 "name","pwd".toCharArray(), "somehost", null);
158
159 Assertions.assertEquals(creds1, creds1);
160 Assertions.assertNotEquals(creds1, creds2);
161 Assertions.assertEquals(creds1, creds3);
162 Assertions.assertNotEquals(creds1, creds4);
163 Assertions.assertNotEquals(creds1, creds5);
164 Assertions.assertNotEquals(creds1, creds6);
165 Assertions.assertNotEquals(creds1, creds7);
166 Assertions.assertEquals(creds8, creds5);
167 Assertions.assertEquals(creds9, creds7);
168
169 }
170
171 @Test
172 public void testUsernamePasswordCredentialsSerialization() throws Exception {
173 final UsernamePasswordCredentials orig = new UsernamePasswordCredentials("name","pwd".toCharArray());
174 final ByteArrayOutputStream outbuffer = new ByteArrayOutputStream();
175 final ObjectOutputStream outStream = new ObjectOutputStream(outbuffer);
176 outStream.writeObject(orig);
177 outStream.close();
178 final byte[] raw = outbuffer.toByteArray();
179 final ByteArrayInputStream inBuffer = new ByteArrayInputStream(raw);
180 final ObjectInputStream inStream = new ObjectInputStream(inBuffer);
181 final UsernamePasswordCredentials clone = (UsernamePasswordCredentials) inStream.readObject();
182 Assertions.assertEquals(orig, clone);
183 }
184
185 @Test
186 public void testNTCredentialsSerialization() throws Exception {
187 final NTCredentials orig = new NTCredentials("name","pwd".toCharArray(), "somehost", "domain");
188 final ByteArrayOutputStream outbuffer = new ByteArrayOutputStream();
189 final ObjectOutputStream outStream = new ObjectOutputStream(outbuffer);
190 outStream.writeObject(orig);
191 outStream.close();
192 final byte[] raw = outbuffer.toByteArray();
193 final ByteArrayInputStream inBuffer = new ByteArrayInputStream(raw);
194 final ObjectInputStream inStream = new ObjectInputStream(inBuffer);
195 final NTCredentials clone = (NTCredentials) inStream.readObject();
196 Assertions.assertEquals(orig, clone);
197 }
198
199 }