21
21
22
22
import static io .lettuce .TestTags .UNIT_TEST ;
23
23
import static org .assertj .core .api .Assertions .*;
24
+ import static org .assertj .core .api .Assertions .assertThat ;
24
25
25
26
import java .io .File ;
26
27
import java .io .IOException ;
30
31
import org .junit .jupiter .api .Test ;
31
32
import org .junit .jupiter .api .condition .DisabledOnOs ;
32
33
import org .junit .jupiter .api .condition .OS ;
34
+ import reactor .core .publisher .Mono ;
35
+ import reactor .test .StepVerifier ;
33
36
34
37
/**
35
38
* Unit tests for {@link RedisURI.Builder}.
@@ -117,27 +120,37 @@ void redisFromUrl() {
117
120
assertThat (result .getSentinels ()).isEmpty ();
118
121
assertThat (result .getHost ()).isEqualTo ("localhost" );
119
122
assertThat (result .getPort ()).isEqualTo (RedisURI .DEFAULT_REDIS_PORT );
120
- assertThat (result .getPassword ()).isEqualTo ("password" .toCharArray ());
123
+ StepVerifier .create (result .getCredentialsProvider ().resolveCredentials ()).assertNext (credentials -> {
124
+ assertThat (credentials .getUsername ()).isNull ();
125
+ assertThat (credentials .getPassword ()).isEqualTo ("password" .toCharArray ());
126
+ }).verifyComplete ();
121
127
assertThat (result .getDatabase ()).isEqualTo (21 );
122
128
assertThat (result .isSsl ()).isFalse ();
123
129
}
124
130
125
131
@ Test
126
132
void redisFromUrlNoPassword () {
127
133
RedisURI redisURI = RedisURI .create ("redis://localhost:1234/5" );
128
- assertThat (redisURI .getPassword ()).isNull ();
129
- assertThat (redisURI .getUsername ()).isNull ();
134
+ StepVerifier .create (redisURI .getCredentialsProvider ().resolveCredentials ()).assertNext (credentials -> {
135
+ assertThat (credentials .getUsername ()).isNull ();
136
+ assertThat (credentials .getPassword ()).isNull ();
137
+ }).verifyComplete ();
130
138
131
139
redisURI = RedisURI .create ("redis://h:@localhost.com:14589" );
132
- assertThat (redisURI .getPassword ()).isNull ();
133
- assertThat (redisURI .getUsername ()).isNull ();
140
+ StepVerifier .create (redisURI .getCredentialsProvider ().resolveCredentials ()).assertNext (credentials -> {
141
+ assertThat (credentials .getUsername ()).isNull ();
142
+ assertThat (credentials .getPassword ()).isNull ();
143
+ }).verifyComplete ();
134
144
}
135
145
136
146
@ Test
137
147
void redisFromUrlPassword () {
138
148
RedisURI redisURI =
RedisURI .
create (
"redis://h:[email protected] :14589" );
139
- assertThat (redisURI .getPassword ()).isEqualTo ("password" .toCharArray ());
140
- assertThat (redisURI .getUsername ()).isEqualTo ("h" );
149
+
150
+ StepVerifier .create (redisURI .getCredentialsProvider ().resolveCredentials ()).assertNext (credentials -> {
151
+ assertThat (credentials .getUsername ()).isEqualTo ("h" );
152
+ assertThat (credentials .getPassword ()).isEqualTo ("password" .toCharArray ());
153
+ }).verifyComplete ();
141
154
}
142
155
143
156
@ Test
@@ -168,8 +181,11 @@ void redisSslFromUrl() {
168
181
assertThat (result .getSentinels ()).isEmpty ();
169
182
assertThat (result .getHost ()).isEqualTo ("localhost" );
170
183
assertThat (result .getPort ()).isEqualTo (RedisURI .DEFAULT_REDIS_PORT );
171
- assertThat (result .getPassword ()).isEqualTo ("password" .toCharArray ());
172
- assertThat (result .getUsername ()).isNull ();
184
+ StepVerifier .create (result .getCredentialsProvider ().resolveCredentials ()).assertNext (credentials -> {
185
+ assertThat (credentials .getUsername ()).isNull ();
186
+ assertThat (credentials .getPassword ()).isEqualTo ("password" .toCharArray ());
187
+ }).verifyComplete ();
188
+
173
189
assertThat (result .isSsl ()).isTrue ();
174
190
}
175
191
@@ -180,17 +196,23 @@ void redisSentinelFromUrl() {
180
196
assertThat (result .getSentinels ()).hasSize (1 );
181
197
assertThat (result .getHost ()).isNull ();
182
198
assertThat (result .getPort ()).isEqualTo (RedisURI .DEFAULT_REDIS_PORT );
183
- assertThat (result .getPassword ()).isEqualTo ("password" .toCharArray ());
184
199
assertThat (result .getSentinelMasterId ()).isEqualTo ("master" );
185
200
assertThat (result .toString ()).contains ("master" );
201
+ StepVerifier .create (result .getCredentialsProvider ().resolveCredentials ()).assertNext (credentials -> {
202
+ assertThat (credentials .getUsername ()).isNull ();
203
+ assertThat (credentials .getPassword ()).isEqualTo ("password" .toCharArray ());
204
+ }).verifyComplete ();
186
205
187
206
result = RedisURI .create (RedisURI .URI_SCHEME_REDIS_SENTINEL + "://password@host1:1,host2:3423,host3/1#master" );
188
207
189
208
assertThat (result .getSentinels ()).hasSize (3 );
190
209
assertThat (result .getHost ()).isNull ();
191
210
assertThat (result .getPort ()).isEqualTo (RedisURI .DEFAULT_REDIS_PORT );
192
- assertThat (result .getPassword ()).isEqualTo ("password" .toCharArray ());
193
211
assertThat (result .getSentinelMasterId ()).isEqualTo ("master" );
212
+ StepVerifier .create (result .getCredentialsProvider ().resolveCredentials ()).assertNext (credentials -> {
213
+ assertThat (credentials .getUsername ()).isNull ();
214
+ assertThat (credentials .getPassword ()).isEqualTo ("password" .toCharArray ());
215
+ }).verifyComplete ();
194
216
195
217
RedisURI sentinel1 = result .getSentinels ().get (0 );
196
218
assertThat (sentinel1 .getPort ()).isEqualTo (1 );
@@ -211,7 +233,10 @@ void withAuthenticatedSentinel() {
211
233
RedisURI result = RedisURI .Builder .sentinel ("host" , 1234 , "master" , "foo" ).build ();
212
234
213
235
RedisURI sentinel = result .getSentinels ().get (0 );
214
- assertThat (new String (sentinel .getPassword ())).isEqualTo ("foo" );
236
+ StepVerifier .create (sentinel .getCredentialsProvider ().resolveCredentials ()).assertNext (credentials -> {
237
+ assertThat (credentials .getUsername ()).isNull ();
238
+ assertThat (credentials .getPassword ()).isEqualTo ("foo" .toCharArray ());
239
+ }).verifyComplete ();
215
240
}
216
241
217
242
@ Test
@@ -221,35 +246,67 @@ void withTlsSentinel() {
221
246
.withVerifyPeer (false ).build ();
222
247
223
248
RedisURI sentinel = result .getSentinels ().get (0 );
224
- assertThat (new String (sentinel .getPassword ())).isEqualTo ("foo" );
225
249
assertThat (sentinel .isSsl ()).isTrue ();
226
250
assertThat (sentinel .isStartTls ()).isTrue ();
227
251
assertThat (sentinel .isVerifyPeer ()).isFalse ();
252
+
253
+ StepVerifier .create (sentinel .getCredentialsProvider ().resolveCredentials ()).assertNext (credentials -> {
254
+ assertThat (credentials .getUsername ()).isNull ();
255
+ assertThat (credentials .getPassword ()).isEqualTo ("foo" .toCharArray ());
256
+ }).verifyComplete ();
228
257
}
229
258
230
259
@ Test
231
260
void withAuthenticatedSentinelUri () {
232
261
233
262
RedisURI sentinel = new RedisURI ("host" , 1234 , Duration .ZERO );
234
- sentinel .setPassword ("bar" );
263
+ sentinel .setAuthentication ("bar" . toCharArray () );
235
264
RedisURI result = RedisURI .Builder .sentinel ("host" , 1234 , "master" ).withSentinel (sentinel ).build ();
236
265
237
- assertThat (result .getSentinels ().get (0 ).getPassword ()).isNull ();
238
- assertThat (new String (result .getSentinels ().get (1 ).getPassword ())).isEqualTo ("bar" );
266
+ StepVerifier .create (result .getSentinels ().get (0 ).getCredentialsProvider ().resolveCredentials ())
267
+ .assertNext (credentials -> {
268
+ assertThat (credentials .getUsername ()).isNull ();
269
+ assertThat (credentials .getPassword ()).isNull ();
270
+ }).verifyComplete ();
271
+
272
+ StepVerifier .create (result .getSentinels ().get (1 ).getCredentialsProvider ().resolveCredentials ())
273
+ .assertNext (credentials -> {
274
+ assertThat (credentials .getUsername ()).isNull ();
275
+ assertThat (credentials .getPassword ()).isEqualTo ("bar" .toCharArray ());
276
+ }).verifyComplete ();
239
277
}
240
278
241
279
@ Test
242
280
void withAuthenticatedSentinelWithSentinel () {
243
281
244
282
RedisURI result = RedisURI .Builder .sentinel ("host" , 1234 , "master" , "foo" ).withSentinel ("bar" ).build ();
245
283
246
- assertThat (new String (result .getSentinels ().get (0 ).getPassword ())).isEqualTo ("foo" );
247
- assertThat (new String (result .getSentinels ().get (1 ).getPassword ())).isEqualTo ("foo" );
248
-
249
- result = RedisURI .Builder .sentinel ("host" , 1234 , "master" , "foo" ).withSentinel ("bar" , 1234 , "baz" ).build ();
250
-
251
- assertThat (new String (result .getSentinels ().get (0 ).getPassword ())).isEqualTo ("foo" );
252
- assertThat (new String (result .getSentinels ().get (1 ).getPassword ())).isEqualTo ("baz" );
284
+ StepVerifier .create (result .getSentinels ().get (0 ).getCredentialsProvider ().resolveCredentials ())
285
+ .assertNext (credentials -> {
286
+ assertThat (credentials .getUsername ()).isNull ();
287
+ assertThat (credentials .getPassword ()).isEqualTo ("foo" .toCharArray ());
288
+ }).verifyComplete ();
289
+
290
+ StepVerifier .create (result .getSentinels ().get (1 ).getCredentialsProvider ().resolveCredentials ())
291
+ .assertNext (credentials -> {
292
+ assertThat (credentials .getUsername ()).isNull ();
293
+ assertThat (credentials .getPassword ()).isNull ();
294
+ }).verifyComplete ();
295
+
296
+ result = RedisURI .Builder .sentinel ("host" , 1234 , "master" ).withPassword ("foo" .toCharArray ())
297
+ .withSentinel ("bar" , 1234 , "baz" ).build ();
298
+
299
+ StepVerifier .create (result .getSentinels ().get (0 ).getCredentialsProvider ().resolveCredentials ())
300
+ .assertNext (credentials -> {
301
+ assertThat (credentials .getUsername ()).isNull ();
302
+ assertThat (credentials .getPassword ()).isNull ();
303
+ }).verifyComplete ();
304
+
305
+ StepVerifier .create (result .getSentinels ().get (1 ).getCredentialsProvider ().resolveCredentials ())
306
+ .assertNext (credentials -> {
307
+ assertThat (credentials .getUsername ()).isNull ();
308
+ assertThat (credentials .getPassword ()).isEqualTo ("baz" .toCharArray ());
309
+ }).verifyComplete ();
253
310
}
254
311
255
312
@ Test
@@ -280,10 +337,14 @@ void redisSocket() throws IOException {
280
337
281
338
assertThat (result .getSocket ()).isEqualTo (file .getCanonicalPath ());
282
339
assertThat (result .getSentinels ()).isEmpty ();
283
- assertThat (result .getPassword ()).isNull ();
284
340
assertThat (result .getHost ()).isNull ();
285
341
assertThat (result .getPort ()).isEqualTo (RedisURI .DEFAULT_REDIS_PORT );
286
342
assertThat (result .isSsl ()).isFalse ();
343
+
344
+ StepVerifier .create (result .getCredentialsProvider ().resolveCredentials ()).assertNext (credentials -> {
345
+ assertThat (credentials .getUsername ()).isNull ();
346
+ assertThat (credentials .getPassword ()).isNull ();
347
+ }).verifyComplete ();
287
348
}
288
349
289
350
@ Test
@@ -294,10 +355,14 @@ void redisSocketWithPassword() throws IOException {
294
355
295
356
assertThat (result .getSocket ()).isEqualTo (file .getCanonicalPath ());
296
357
assertThat (result .getSentinels ()).isEmpty ();
297
- assertThat (result .getPassword ()).isEqualTo ("password" .toCharArray ());
298
358
assertThat (result .getHost ()).isNull ();
299
359
assertThat (result .getPort ()).isEqualTo (RedisURI .DEFAULT_REDIS_PORT );
300
360
assertThat (result .isSsl ()).isFalse ();
361
+
362
+ StepVerifier .create (result .getCredentialsProvider ().resolveCredentials ()).assertNext (credentials -> {
363
+ assertThat (credentials .getUsername ()).isNull ();
364
+ assertThat (credentials .getPassword ()).isEqualTo ("password" .toCharArray ());
365
+ }).verifyComplete ();
301
366
}
302
367
303
368
@ Test
@@ -315,31 +380,6 @@ void shouldApplySslSettings() {
315
380
assertThat (target .isStartTls ()).isTrue ();
316
381
}
317
382
318
- @ Test
319
- void shouldApplyAuthentication () {
320
-
321
- RedisURI source = new RedisURI ();
322
- source .setUsername ("foo" );
323
- source .setPassword ("bar" );
324
-
325
- RedisURI target = RedisURI .builder ().withHost ("localhost" ).withAuthentication (source ).build ();
326
-
327
- assertThat (target .getUsername ()).isEqualTo ("foo" );
328
- assertThat (target .getPassword ()).isEqualTo ("bar" .toCharArray ());
329
-
330
- RedisCredentialsProvider provider = RedisCredentialsProvider
331
- .from (() -> RedisCredentials .just ("suppliedUsername" , "suppliedPassword" .toCharArray ()));
332
-
333
- RedisURI sourceCp = new RedisURI ();
334
- sourceCp .setCredentialsProvider (provider );
335
-
336
- RedisURI targetCp = RedisURI .builder ().withHost ("localhost" ).withAuthentication (sourceCp ).build ();
337
-
338
- assertThat (targetCp .getUsername ()).isNull ();
339
- assertThat (targetCp .getPassword ()).isNull ();
340
- assertThat (sourceCp .getCredentialsProvider ()).isEqualTo (targetCp .getCredentialsProvider ());
341
- }
342
-
343
383
@ Test
344
384
void shouldInitializeBuilder () {
345
385
@@ -350,21 +390,17 @@ void shouldInitializeBuilder() {
350
390
source .setClientName ("foo" );
351
391
source .setLibraryName ("lib" );
352
392
source .setLibraryVersion ("libver" );
353
- source .setUsername ("foo" );
354
- source .setPassword ("bar" );
393
+ source .setAuthentication ("foo" , "bar" );
355
394
source .setDatabase (4 );
356
395
source .setSsl (true );
357
396
source .setVerifyPeer (false );
358
397
source .setStartTls (true );
359
398
360
399
RedisURI target = RedisURI .builder (source ).build ();
361
-
362
- source .setPassword ("baz" );
400
+ target .setAuthentication ("baz" );
363
401
364
402
assertThat (target .getHost ()).isEqualTo (source .getHost ());
365
403
assertThat (target .getPort ()).isEqualTo (source .getPort ());
366
- assertThat (target .getUsername ()).isEqualTo (source .getUsername ());
367
- assertThat (target .getPassword ()).isEqualTo ("bar" .toCharArray ());
368
404
assertThat (target .getTimeout ()).isEqualTo (source .getTimeout ());
369
405
assertThat (target .getClientName ()).isEqualTo (source .getClientName ());
370
406
assertThat (target .getLibraryName ()).isEqualTo (source .getLibraryName ());
@@ -374,6 +410,11 @@ void shouldInitializeBuilder() {
374
410
assertThat (target .isStartTls ()).isEqualTo (source .isStartTls ());
375
411
assertThat (target .isSsl ()).isEqualTo (source .isSsl ());
376
412
assertThat (target .isVerifyPeer ()).isEqualTo (source .isVerifyPeer ());
413
+
414
+ StepVerifier .create (target .getCredentialsProvider ().resolveCredentials ()).assertNext (credentials -> {
415
+ assertThat (credentials .getUsername ()).isNull ();
416
+ assertThat (credentials .getPassword ()).isEqualTo ("baz" .toCharArray ());
417
+ }).verifyComplete ();
377
418
}
378
419
379
420
@ Test
0 commit comments