package test.nvarghese.beowulf.common.webtest.dao; import java.net.UnknownHostException; import java.util.List; import junit.framework.Assert; import org.bson.types.ObjectId; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import com.google.code.morphia.Datastore; import com.google.code.morphia.Morphia; import com.mongodb.Mongo; import com.nvarghese.beowulf.common.webtest.WebTestCategory; import com.nvarghese.beowulf.common.webtest.WebTestType; import com.nvarghese.beowulf.common.webtest.dao.TestModuleMetaDataDAO; import com.nvarghese.beowulf.common.webtest.model.TestModuleMetaDataDocument; public class TestModuleMetaDataDAOTest { private Datastore ds; @BeforeClass public void initialize() throws UnknownHostException { Mongo mongo = new Mongo("localhost:10001"); ds = new Morphia().createDatastore(mongo, "webscantestmodules"); } @Test(dataProvider = "feedTestModuleMetaDataDocument") public void testCreateTestModuleMetaDataDocument(TestModuleMetaDataDocument testModuleMetaDataDocument) { TestModuleMetaDataDAO testModuleDAO = new TestModuleMetaDataDAO(ds); ObjectId id = testModuleDAO.createTestModuleMetaDataDocument(testModuleMetaDataDocument); Assert.assertNotNull(id); TestModuleMetaDataDocument loadedTestModuleMetaDataDocument = testModuleDAO.getTestModuleMetaDataDocument(id); Assert.assertEquals(loadedTestModuleMetaDataDocument.getModuleNumber(), testModuleMetaDataDocument.getModuleNumber()); Assert.assertEquals(loadedTestModuleMetaDataDocument.getModuleName(), testModuleMetaDataDocument.getModuleName()); } @Test(dependsOnMethods = { "testCreateTestModuleMetaDataDocument" }) public void testFindByModuleNumber() { TestModuleMetaDataDAO testModuleDAO = new TestModuleMetaDataDAO(ds); TestModuleMetaDataDocument loadedTestModuleMetaDataDocument = testModuleDAO.findByModuleNumber(1); Assert.assertNotNull(loadedTestModuleMetaDataDocument); } @Test(dependsOnMethods = { "testFindByModuleNumber" }) public void testFindByTestType() { TestModuleMetaDataDAO testModuleDAO = new TestModuleMetaDataDAO(ds); List<TestModuleMetaDataDocument> docs = testModuleDAO.findByTestType(WebTestType.HTML_ELEM_TEST); Assert.assertNotNull(docs); Assert.assertTrue(docs.size() > 0); } @DataProvider(/* parallel=false */) public Object[][] feedTestModuleMetaDataDocument() { return new Object[][] { { provideDummyTestModuleMetaDataDocument(1) }, { provideDummyTestModuleMetaDataDocument(2) }, { provideDummyTestModuleMetaDataDocument(3) }, }; } private TestModuleMetaDataDocument provideDummyTestModuleMetaDataDocument(long moduleNumber) { TestModuleMetaDataDocument testModuleMetaDataDocument = new TestModuleMetaDataDocument(); testModuleMetaDataDocument.setModuleNumber(moduleNumber); testModuleMetaDataDocument.setModuleName("Module#" + moduleNumber); testModuleMetaDataDocument.setEnabled(true); testModuleMetaDataDocument.setTestCategory(WebTestCategory.ARCHITECTURE); testModuleMetaDataDocument.setTestType(WebTestType.HTML_ELEM_TEST); return testModuleMetaDataDocument; } @AfterClass public void cleanup() { ds.getDB().dropDatabase(); } }