@@ -280,6 +280,180 @@ public void Should_call_validation_with_users_claims()
280
280
validatedClaims . ShouldEqualSequence ( user . Claims ) ;
281
281
}
282
282
283
+ [ Fact ]
284
+ public void Should_return_false_for_required_role_if_the_roles_are_null ( )
285
+ {
286
+ // Given
287
+ ClaimsPrincipal user = GetFakeUser ( "Fake" ) ;
288
+ var requiredRole = "not-present-role" ;
289
+
290
+ // When
291
+ var result = user . IsInRole ( requiredRole ) ;
292
+
293
+ // Then
294
+ result . ShouldBeFalse ( ) ;
295
+ }
296
+
297
+ [ Fact ]
298
+ public void Should_return_false_for_required_role_if_the_user_does_not_have_role ( )
299
+ {
300
+ // Given
301
+ ClaimsPrincipal user = GetFakeUser ( "Fake" , new Claim ( ClaimTypes . Role , string . Empty ) ) ;
302
+ var requiredRole = "not-present-role" ;
303
+
304
+ // When
305
+ var result = user . IsInRole ( requiredRole ) ;
306
+
307
+ // Then
308
+ result . ShouldBeFalse ( ) ;
309
+ }
310
+
311
+ [ Fact ]
312
+ public void Should_return_true_for_required_role_if_the_user_does_have_role ( )
313
+ {
314
+ // Given
315
+ ClaimsPrincipal user = GetFakeUser ( "Fake" , new Claim ( ClaimTypes . Role , "present-role" ) ) ;
316
+ var requiredRole = "present-role" ;
317
+
318
+ // When
319
+ var result = user . IsInRole ( requiredRole ) ;
320
+
321
+ // Then
322
+ result . ShouldBeTrue ( ) ;
323
+ }
324
+
325
+ [ Fact ]
326
+ public void Should_return_false_for_required_roles_if_the_user_is_null ( )
327
+ {
328
+ // Given
329
+ ClaimsPrincipal user = null ;
330
+ var requiredRoles = new string [ ] { "not-present-role1" , "not-present-role2" } ;
331
+
332
+ // When
333
+ var result = user . IsInRoles ( requiredRoles ) ;
334
+
335
+ // Then
336
+ result . ShouldBeFalse ( ) ;
337
+ }
338
+
339
+ [ Fact ]
340
+ public void Should_return_false_for_required_roles_if_the_roles_are_null ( )
341
+ {
342
+ // Given
343
+ ClaimsPrincipal user = GetFakeUser ( "Fake" ) ;
344
+ string [ ] requiredRoles = null ;
345
+
346
+ // When
347
+ var result = user . IsInRoles ( requiredRoles ) ;
348
+
349
+ // Then
350
+ result . ShouldBeFalse ( ) ;
351
+ }
352
+
353
+ [ Fact ]
354
+ public void Should_return_false_for_required_roles_if_the_user_does_not_have_all_roles ( )
355
+ {
356
+ // Given
357
+ ClaimsPrincipal user = GetFakeUser ( "Fake" ,
358
+ new Claim ( ClaimTypes . Role , "present-role1" ) ,
359
+ new Claim ( ClaimTypes . Role , "present-role2" ) ,
360
+ new Claim ( ClaimTypes . Role , "present-role3" ) ) ;
361
+ var requiredRoles = new string [ ]
362
+ {
363
+ "present-role1" ,
364
+ "not-present-role1"
365
+ } ;
366
+
367
+ // When
368
+ var result = user . IsInRoles ( requiredRoles ) ;
369
+
370
+ // Then
371
+ result . ShouldBeFalse ( ) ;
372
+ }
373
+
374
+ [ Fact ]
375
+ public void Should_return_true_for_required_roles_if_the_user_does_have_all_roles ( )
376
+ {
377
+ // Given
378
+ ClaimsPrincipal user = GetFakeUser ( "Fake" ,
379
+ new Claim ( ClaimTypes . Role , "present-role1" ) ,
380
+ new Claim ( ClaimTypes . Role , "present-role2" ) ,
381
+ new Claim ( ClaimTypes . Role , "present-role3" ) ) ;
382
+ var requiredRoles = new string [ ]
383
+ {
384
+ "present-role1" ,
385
+ "present-role2"
386
+ } ;
387
+
388
+ // When
389
+ var result = user . IsInRoles ( requiredRoles ) ;
390
+
391
+ // Then
392
+ result . ShouldBeTrue ( ) ;
393
+ }
394
+
395
+ [ Fact ]
396
+ public void Should_return_false_for_any_required_role_if_the_user_is_null ( )
397
+ {
398
+ // Given
399
+ ClaimsPrincipal user = null ;
400
+ var requiredRoles = new string [ ] { "not-present-role1" , "not-present-role2" } ;
401
+
402
+ // When
403
+ var result = user . IsInAnyRole ( requiredRoles ) ;
404
+
405
+ // Then
406
+ result . ShouldBeFalse ( ) ;
407
+ }
408
+
409
+ [ Fact ]
410
+ public void Should_return_false_for_any_required_role_if_the_roles_are_null ( )
411
+ {
412
+ // Given
413
+ ClaimsPrincipal user = GetFakeUser ( "Fake" ) ;
414
+ string [ ] requiredRoles = null ;
415
+
416
+ // When
417
+ var result = user . IsInAnyRole ( requiredRoles ) ;
418
+
419
+ // Then
420
+ result . ShouldBeFalse ( ) ;
421
+ }
422
+
423
+ [ Fact ]
424
+ public void Should_return_false_for_any_required_role_if_the_user_does_not_have_any_role ( )
425
+ {
426
+ // Given
427
+ ClaimsPrincipal user = GetFakeUser ( "Fake" ,
428
+ new Claim ( ClaimTypes . Role , "present-role1" ) ,
429
+ new Claim ( ClaimTypes . Role , "present-role2" ) ,
430
+ new Claim ( ClaimTypes . Role , "present-role3" ) ) ;
431
+ var requiredRoles = new string [ ] { "not-present-role1" , "not-present-role2" } ;
432
+
433
+ // When
434
+ var result = user . IsInAnyRole ( requiredRoles ) ;
435
+
436
+ // Then
437
+ result . ShouldBeFalse ( ) ;
438
+ }
439
+
440
+ [ Fact ]
441
+ public void Should_return_true_for_any_required_role_if_the_user_does_have_any_of_role ( )
442
+ {
443
+ // Given
444
+ ClaimsPrincipal user = GetFakeUser ( "Fake" ,
445
+ new Claim ( ClaimTypes . Role , "present-role1" ) ,
446
+ new Claim ( ClaimTypes . Role , "present-role2" ) ,
447
+ new Claim ( ClaimTypes . Role , "present-role3" ) ) ;
448
+ var requiredRoles = new string [ ] { "present-role1" , "not-present-role1" } ;
449
+
450
+ // When
451
+ var result = user . IsInAnyRole ( requiredRoles ) ;
452
+
453
+ // Then
454
+ result . ShouldBeTrue ( ) ;
455
+ }
456
+
283
457
private static ClaimsPrincipal GetFakeUser ( string userName , params Claim [ ] claims )
284
458
{
285
459
var claimsList = ( claims ?? Enumerable . Empty < Claim > ( ) ) . ToList ( ) ;
0 commit comments