38
38
import static org .hamcrest .CoreMatchers .sameInstance ;
39
39
import static org .junit .Assert .assertEquals ;
40
40
import static org .junit .Assert .assertFalse ;
41
- import static org .junit .Assert .assertNotNull ;
42
41
import static org .junit .Assert .assertNull ;
43
42
import static org .junit .Assert .assertThat ;
44
43
import static org .junit .Assert .assertTrue ;
@@ -476,19 +475,6 @@ public void shouldAddReadOnlyUser() {
476
475
}
477
476
}
478
477
479
- @ Test
480
- public void shouldAddReadOnlyAdminUser () {
481
- String userName = "newUser" ;
482
- String pwd = "pwd" ;
483
- DB adminDB = getDatabase ().getSisterDB ("admin" );
484
- adminDB .addUser (userName , pwd .toCharArray (), true );
485
- try {
486
- assertCorrectUserExists (userName , pwd , true , adminDB );
487
- } finally {
488
- adminDB .removeUser (userName );
489
- }
490
- }
491
-
492
478
@ Test
493
479
public void shouldAddReadWriteUser () {
494
480
String userName = "newUser" ;
@@ -502,15 +488,38 @@ public void shouldAddReadWriteUser() {
502
488
}
503
489
504
490
@ Test
505
- public void shouldAddReadWriteAdminUser () {
491
+ public void shouldAddReadWriteAdminUser () throws UnknownHostException {
506
492
String userName = "newUser" ;
507
493
String pwd = "pwd" ;
508
- DB adminDB = getDatabase ().getSisterDB ("admin" );
494
+ MongoClient mongoClient = new MongoClient (getMongoClientURI ());
495
+ DB adminDB = mongoClient .getDB ("admin" );
509
496
adminDB .addUser (userName , pwd .toCharArray (), false );
510
497
try {
498
+ assertTrue (adminDB .authenticate (userName , pwd .toCharArray ()));
511
499
assertCorrectUserExists (userName , pwd , false , adminDB );
512
500
} finally {
513
501
adminDB .removeUser (userName );
502
+ mongoClient .close ();
503
+ }
504
+ }
505
+
506
+
507
+ @ Test
508
+ public void shouldAddReadOnlyAdminUser () throws UnknownHostException {
509
+ String readWriteUserName = "newUserReadWrite" ;
510
+ String readOnlyUserName = "newUser" ;
511
+ String pwd = "pwd" ;
512
+ MongoClient mongoClient = new MongoClient (getMongoClientURI ());
513
+ DB adminDB = mongoClient .getDB ("admin" );
514
+ adminDB .addUser (readWriteUserName , pwd .toCharArray (), false );
515
+ adminDB .authenticate (readWriteUserName , pwd .toCharArray ());
516
+ adminDB .addUser (readOnlyUserName , pwd .toCharArray (), true );
517
+ try {
518
+ assertCorrectUserExists (readOnlyUserName , pwd , true , adminDB );
519
+ } finally {
520
+ adminDB .removeUser (readOnlyUserName );
521
+ adminDB .removeUser (readWriteUserName );
522
+ mongoClient .close ();
514
523
}
515
524
}
516
525
@@ -534,7 +543,7 @@ private void assertThatUserIsRemoved(final String userName, final DB database) {
534
543
535
544
536
545
private void assertCorrectUserExists (final String userName , final String password , final boolean isReadOnly , final DB database ) {
537
- if (serverIsAtLeastVersion (2.6 )) {
546
+ if (serverIsAtLeastVersion (2.6 , database . getMongo () )) {
538
547
CommandResult usersInfo = database .command (new BasicDBObject ("usersInfo" , userName ));
539
548
DBObject user = (DBObject ) ((List ) usersInfo .get ("users" )).get (0 );
540
549
assertEquals (userName , user .get ("user" ));
0 commit comments