package com.mongodb.hadoop.util; import com.mongodb.MongoClientURI; import org.apache.hadoop.conf.Configuration; import org.junit.Test; import java.util.List; import static org.junit.Assert.assertEquals; public class MongoConfigUtilTest { private void assertSameURIs( final String[] expected, final List<MongoClientURI> actual) { assertEquals(expected.length, actual.size()); for (int i = 0; i < expected.length; ++i) { assertEquals(expected[i], actual.get(i).getURI()); } } @Test public void testGetMongoURIs() { Configuration conf = new Configuration(); String[] connStrings = new String[] { "mongodb://rshost1:10000,rshost2:10001/foo.bar?replicaSet=rs", "mongodb://standalone:27017/db.collection" }; // Separated by ", " conf.set( MongoConfigUtil.INPUT_URI, connStrings[0] + ", " + connStrings[1]); List<MongoClientURI> uris = MongoConfigUtil.getMongoURIs( conf, MongoConfigUtil.INPUT_URI); assertSameURIs(connStrings, uris); // No delimiter conf.set(MongoConfigUtil.INPUT_URI, connStrings[0] + connStrings[1]); uris = MongoConfigUtil.getMongoURIs(conf, MongoConfigUtil.INPUT_URI); assertSameURIs(connStrings, uris); // No value set uris = MongoConfigUtil.getMongoURIs(conf, "this key does not exist"); assertEquals(0, uris.size()); // Only one input URI. String connString = connStrings[1]; conf.set(MongoConfigUtil.INPUT_URI, connString); uris = MongoConfigUtil.getMongoURIs(conf, MongoConfigUtil.INPUT_URI); assertSameURIs(new String[] {connString}, uris); } }