package com.stratio.deep.mongodb.config; import static org.testng.Assert.fail; import org.apache.log4j.Logger; import org.testng.annotations.Test; import com.stratio.deep.mongodb.testentity.MessageTestEntity; /** * Created by rcrespo on 18/06/14. */ @Test(groups = { "UnitTests" }) public class GenericConfigFactoryMongoDBTest { private static final String DATATABASE_TEST = "test"; private static final String HOST_TEST = "localhost:27017"; private static final String HOST_TEST_2 = "localhost:27018"; private static final String HOST_TEST_3 = "localhost:27019"; private static final String COLLECTION_TEST = "collection"; private static final String USER_TEST = "user"; private static final String PASSWORD_TEST = "password"; private Logger log = Logger.getLogger(getClass()); @Test public void testDatabaseValidation() { MongoDeepJobConfig<MessageTestEntity> djc = MongoConfigFactory.createMongoDB(MessageTestEntity.class); djc.collection(COLLECTION_TEST).host(HOST_TEST); try { djc.initialize(); fail(); } catch (IllegalArgumentException iae) { // OK log.info("Correctly catched IllegalArgumentException: " + iae.getLocalizedMessage()); djc.database(DATATABASE_TEST); } djc.initialize(); } @Test public void testCollectionValidation() { MongoDeepJobConfig<MessageTestEntity> djc = MongoConfigFactory.createMongoDB(MessageTestEntity.class); djc.database(DATATABASE_TEST).host(HOST_TEST); try { djc.initialize(); fail(); } catch (IllegalArgumentException iae) { // OK log.info("Correctly catched IllegalArgumentException: " + iae.getLocalizedMessage()); djc.collection(COLLECTION_TEST); } djc.initialize(); } @Test public void testHostValidation() { // MongoDeepJobConfig<MessageTestEntity> djc = MongoConfigFactory.createMongoDB(MessageTestEntity.class); // // djc.database(DATATABASE_TEST).collection(COLLECTION_TEST); // // try { // djc.initialize(); // fail(); // } catch (IllegalArgumentException iae) { // // OK // log.info("Correctly catched IllegalArgumentException: " + iae.getLocalizedMessage()); // // } // // djc.host(HOST_TEST).host(HOST_TEST_2).host(HOST_TEST_3); // // djc.initialize(); // // assertEquals(djc.getHost(), HOST_TEST); // // assertEquals(djc.getHostList().get(0), HOST_TEST); // assertEquals(djc.getHostList().get(1), HOST_TEST_2); // assertEquals(djc.getHostList().get(2), HOST_TEST_3); // // List<String> hostList = new ArrayList<>(); // // hostList.add(HOST_TEST); // hostList.add(HOST_TEST_2); // hostList.add(HOST_TEST_3); // // MongoDeepJobConfig<MessageTestEntity> djc2 = MongoConfigFactory.createMongoDB(MessageTestEntity.class); // // djc2.database(DATATABASE_TEST).collection(COLLECTION_TEST).host(hostList).initialize(); // // assertEquals(djc2.getHostList().get(0), HOST_TEST); // assertEquals(djc2.getHostList().get(1), HOST_TEST_2); // assertEquals(djc2.getHostList().get(2), HOST_TEST_3); } @Test public void testEntity() { // MongoDeepJobConfig<MessageTestEntity> djc = MongoConfigFactory.createMongoDB(MessageTestEntity.class); // // djc.host(HOST_TEST).database(DATATABASE_TEST).collection(COLLECTION_TEST).username(USER_TEST) // .password(PASSWORD_TEST); // // djc.initialize(); // // assertEquals(djc.getEntityClass(), MessageTestEntity.class); // // assertEquals(djc.getUsername(), USER_TEST); // assertEquals(djc.getPassword(), PASSWORD_TEST); // // IMongoDeepJobConfig<Cells> djcCell = MongoConfigFactory.createMongoDB(); // // djcCell.host(HOST_TEST).database(DATATABASE_TEST).collection(COLLECTION_TEST); // // djcCell.initialize(); // // assertEquals(djcCell.getEntityClass(), Cells.class); } }