Skip to content

Commit db2337c

Browse files
committed
JAVA-974: Fixing tests for adding admin users
1 parent b15ef99 commit db2337c

File tree

2 files changed

+31
-18
lines changed

2 files changed

+31
-18
lines changed

src/test/com/mongodb/DBTest.java

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838
import static org.hamcrest.CoreMatchers.sameInstance;
3939
import static org.junit.Assert.assertEquals;
4040
import static org.junit.Assert.assertFalse;
41-
import static org.junit.Assert.assertNotNull;
4241
import static org.junit.Assert.assertNull;
4342
import static org.junit.Assert.assertThat;
4443
import static org.junit.Assert.assertTrue;
@@ -476,19 +475,6 @@ public void shouldAddReadOnlyUser() {
476475
}
477476
}
478477

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-
492478
@Test
493479
public void shouldAddReadWriteUser() {
494480
String userName = "newUser";
@@ -502,15 +488,38 @@ public void shouldAddReadWriteUser() {
502488
}
503489

504490
@Test
505-
public void shouldAddReadWriteAdminUser() {
491+
public void shouldAddReadWriteAdminUser() throws UnknownHostException {
506492
String userName = "newUser";
507493
String pwd = "pwd";
508-
DB adminDB = getDatabase().getSisterDB("admin");
494+
MongoClient mongoClient = new MongoClient(getMongoClientURI());
495+
DB adminDB = mongoClient.getDB("admin");
509496
adminDB.addUser(userName, pwd.toCharArray(), false);
510497
try {
498+
assertTrue(adminDB.authenticate(userName, pwd.toCharArray()));
511499
assertCorrectUserExists(userName, pwd, false, adminDB);
512500
} finally {
513501
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();
514523
}
515524
}
516525

@@ -534,7 +543,7 @@ private void assertThatUserIsRemoved(final String userName, final DB database) {
534543

535544

536545
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())) {
538547
CommandResult usersInfo = database.command(new BasicDBObject("usersInfo", userName));
539548
DBObject user = (DBObject) ((List) usersInfo.get("users")).get(0);
540549
assertEquals(userName, user.get("user"));

src/test/com/mongodb/util/TestCase.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,11 @@ protected static DB getDatabase() {
101101
* @return true if server is at least specified version
102102
*/
103103
protected boolean serverIsAtLeastVersion(double version) {
104-
String serverVersion = (String) cleanupMongo.getDB("admin").command("serverStatus").get("version");
104+
return serverIsAtLeastVersion(version, cleanupMongo);
105+
}
106+
107+
protected boolean serverIsAtLeastVersion(double version, Mongo mongo) {
108+
String serverVersion = (String) mongo.getDB("admin").command("serverStatus").get("version");
105109
return Double.parseDouble(serverVersion.substring(0, 3)) >= version;
106110
}
107111

0 commit comments

Comments
 (0)