@@ -182,8 +182,6 @@ public async Task Import_Only_Imports_Plex_Admin_Username_Clash()
182
182
_mocker . Verify < OmbiUserManager > ( x => x . UpdateAsync ( It . IsAny < OmbiUser > ( ) ) , Times . Never ) ;
183
183
}
184
184
185
-
186
-
187
185
[ Test ]
188
186
public async Task Import_Doesnt_Import_Banned_Users ( )
189
187
{
@@ -247,7 +245,15 @@ public async Task Imports_Unmanaged_Home_User()
247
245
Id = "id" ,
248
246
Title = "title" ,
249
247
Username = "username" ,
250
- HomeUser = true
248
+ HomeUser = true ,
249
+ Server = new PlexUserServer [ ]
250
+ {
251
+ new PlexUserServer
252
+ {
253
+ Id = "1" ,
254
+ ServerId = "123"
255
+ }
256
+ }
251
257
}
252
258
}
253
259
} ) ;
@@ -257,7 +263,6 @@ public async Task Imports_Unmanaged_Home_User()
257
263
_mocker . Setup < OmbiUserManager , Task < IdentityResult > > ( x => x . AddToRoleAsync ( It . Is < OmbiUser > ( x => x . UserName == "plex" ) , OmbiRoles . RequestMovie ) )
258
264
. ReturnsAsync ( IdentityResult . Success ) ;
259
265
260
-
261
266
await _subject . Execute ( null ) ;
262
267
263
268
_mocker . Verify < OmbiUserManager > ( x => x . CreateAsync ( It . IsAny < OmbiUser > ( ) ) , Times . Once ) ;
@@ -306,7 +311,15 @@ public async Task Import_Created_Plex_User()
306
311
{
307
312
Email = "email" ,
308
313
Id = "id" ,
309
- Username = "plex"
314
+ Username = "plex" ,
315
+ Server = new PlexUserServer [ ]
316
+ {
317
+ new PlexUserServer
318
+ {
319
+ Id = "1" ,
320
+ ServerId = "123"
321
+ }
322
+ }
310
323
}
311
324
}
312
325
} ) ;
@@ -331,9 +344,9 @@ public async Task Import_Update_Plex_User()
331
344
ImportPlexAdmin = false ,
332
345
ImportPlexUsers = true ,
333
346
DefaultRoles = new List < string >
334
- {
335
- OmbiRoles . RequestMovie
336
- }
347
+ {
348
+ OmbiRoles . RequestMovie
349
+ }
337
350
} ) ;
338
351
_mocker . Setup < IPlexApi , Task < PlexUsers > > ( x => x . GetUsers ( It . IsAny < string > ( ) ) ) . ReturnsAsync ( new PlexUsers
339
352
{
@@ -343,7 +356,15 @@ public async Task Import_Update_Plex_User()
343
356
{
344
357
Email = "email" ,
345
358
Id = "PLEX_ID" ,
346
- Username = "user"
359
+ Username = "user" ,
360
+ Server = new PlexUserServer [ ]
361
+ {
362
+ new PlexUserServer
363
+ {
364
+ Id = "1" ,
365
+ ServerId = "123"
366
+ }
367
+ }
347
368
}
348
369
}
349
370
} ) ;
@@ -440,5 +461,98 @@ public async Task Import_Cleanup_Missing_Plex_Admin_Dont_Delete()
440
461
441
462
_mocker . Verify < IUserDeletionEngine > ( x => x . DeleteUser ( It . Is < OmbiUser > ( x => x . ProviderUserId == "ADMIN_ID" && x . Email == "ADMIN@ADMIN.CO" && x . UserName == "Admin" ) ) , Times . Never ) ;
442
463
}
464
+
465
+ [ Test ]
466
+ public async Task Import_Skips_Users_Without_Server_Access ( )
467
+ {
468
+ _mocker . Setup < ISettingsService < UserManagementSettings > , Task < UserManagementSettings > > ( x => x . GetSettingsAsync ( ) )
469
+ . ReturnsAsync ( new UserManagementSettings { ImportPlexAdmin = false , ImportPlexUsers = true } ) ;
470
+ _mocker . Setup < IPlexApi , Task < PlexUsers > > ( x => x . GetUsers ( It . IsAny < string > ( ) ) ) . ReturnsAsync ( new PlexUsers
471
+ {
472
+ User = new UserFriends [ ]
473
+ {
474
+ new UserFriends
475
+ {
476
+ Email = "email" ,
477
+ Id = "NoServer" ,
478
+ Title = "title" ,
479
+ Username = "username" ,
480
+ Server = null
481
+ }
482
+ }
483
+ } ) ;
484
+
485
+ await _subject . Execute ( null ) ;
486
+
487
+ _mocker . Verify < OmbiUserManager > ( x => x . CreateAsync ( It . IsAny < OmbiUser > ( ) ) , Times . Never ) ;
488
+ }
489
+
490
+ [ Test ]
491
+ public async Task Import_Skips_Users_With_Empty_Server_Array ( )
492
+ {
493
+ _mocker . Setup < ISettingsService < UserManagementSettings > , Task < UserManagementSettings > > ( x => x . GetSettingsAsync ( ) )
494
+ . ReturnsAsync ( new UserManagementSettings { ImportPlexAdmin = false , ImportPlexUsers = true } ) ;
495
+ _mocker . Setup < IPlexApi , Task < PlexUsers > > ( x => x . GetUsers ( It . IsAny < string > ( ) ) ) . ReturnsAsync ( new PlexUsers
496
+ {
497
+ User = new UserFriends [ ]
498
+ {
499
+ new UserFriends
500
+ {
501
+ Email = "email" ,
502
+ Id = "EmptyServer" ,
503
+ Title = "title" ,
504
+ Username = "username" ,
505
+ Server = new PlexUserServer [ 0 ]
506
+ }
507
+ }
508
+ } ) ;
509
+
510
+ await _subject . Execute ( null ) ;
511
+
512
+ _mocker . Verify < OmbiUserManager > ( x => x . CreateAsync ( It . IsAny < OmbiUser > ( ) ) , Times . Never ) ;
513
+ }
514
+
515
+ [ Test ]
516
+ public async Task Import_Creates_User_With_Server_Access ( )
517
+ {
518
+ _mocker . Setup < ISettingsService < UserManagementSettings > , Task < UserManagementSettings > > ( x => x . GetSettingsAsync ( ) )
519
+ . ReturnsAsync ( new UserManagementSettings { ImportPlexAdmin = false , ImportPlexUsers = true } ) ;
520
+ _mocker . Setup < IPlexApi , Task < PlexUsers > > ( x => x . GetUsers ( It . IsAny < string > ( ) ) ) . ReturnsAsync ( new PlexUsers
521
+ {
522
+ User = new UserFriends [ ]
523
+ {
524
+ new UserFriends
525
+ {
526
+ Email = "email" ,
527
+ Id = "HasServer" ,
528
+ Title = "title" ,
529
+ Username = "username" ,
530
+ Server = new PlexUserServer [ ]
531
+ {
532
+ new PlexUserServer
533
+ {
534
+ Id = "1" ,
535
+ ServerId = "123"
536
+ }
537
+ }
538
+ }
539
+ }
540
+ } ) ;
541
+
542
+ _mocker . Setup < OmbiUserManager , Task < IdentityResult > > ( x => x . CreateAsync ( It . Is < OmbiUser > ( x =>
543
+ x . UserName == "username" &&
544
+ x . Email == "email" &&
545
+ x . ProviderUserId == "HasServer" &&
546
+ x . UserType == UserType . PlexUser ) ) )
547
+ . ReturnsAsync ( IdentityResult . Success ) ;
548
+
549
+ await _subject . Execute ( null ) ;
550
+
551
+ _mocker . Verify < OmbiUserManager > ( x => x . CreateAsync ( It . Is < OmbiUser > ( x =>
552
+ x . UserName == "username" &&
553
+ x . Email == "email" &&
554
+ x . ProviderUserId == "HasServer" &&
555
+ x . UserType == UserType . PlexUser ) ) , Times . Once ) ;
556
+ }
443
557
}
444
558
}
0 commit comments