package integration.beowulf.scs.categorizers.dao;
import java.net.UnknownHostException;
import org.bson.types.ObjectId;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
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.scs.categorizers.dao.DirectoryCategorizerDAO;
import com.nvarghese.beowulf.scs.categorizers.model.DirectoryCategorizerDocument;
public class DirectoryCategorizerDAOTest {
private Datastore ds;
@BeforeClass
public void initialize() throws UnknownHostException {
Mongo mongo = new Mongo("localhost:10001");
ds = new Morphia().createDatastore(mongo, "webscantests");
}
@Test(groups = "Scs_integration_test")
public void testDirectoryCategorizerDocumentOperations() {
DirectoryCategorizerDocument categDocument = new DirectoryCategorizerDocument();
categDocument.getTestedDirs().add("/dir1/");
categDocument.getTestedDirs().add("/dir2/");
categDocument.getTestedDirs().add("/dir3/");
DirectoryCategorizerDAO dirCategDAO = new DirectoryCategorizerDAO(ds);
ObjectId id = dirCategDAO.createDirectoryCategorizerDocument(categDocument);
Assert.assertNotNull(id);
boolean isPresent = dirCategDAO.isDirectoryNamePresent("/dir2/");
Assert.assertTrue(isPresent);
isPresent = dirCategDAO.isDirectoryNamePresent("/dirNOTFOUND/");
Assert.assertFalse(isPresent);
DirectoryCategorizerDocument loadedDirectoryCategorizerDocument = dirCategDAO.getDirectoryCategorizerDocument();
Assert.assertEquals(loadedDirectoryCategorizerDocument.getId().toString(), id.toString());
}
@Test(groups = "Scs_integration_test")
public void testDirectoryCategorizerDocumentWithIgnoredFields() {
DirectoryCategorizerDAO dirCategDAO = new DirectoryCategorizerDAO(ds);
DirectoryCategorizerDocument loadedDirectoryCategorizerDocument = dirCategDAO.getDirectoryCategorizerDocument();
Assert.assertNotNull(loadedDirectoryCategorizerDocument);
DirectoryCategorizerDocument loadedDirectoryCategorizerDocument2 = dirCategDAO.getDirectoryCategorizerDocument(false);
Assert.assertEquals(loadedDirectoryCategorizerDocument2.getTestedDirs().size(), 0);
}
@Test(groups = "Scs_integration_test")
public void testDirectoryCategorizerDocumentWithIgnoredFieldsAndAddItems() {
DirectoryCategorizerDAO dirCategDAO = new DirectoryCategorizerDAO(ds);
DirectoryCategorizerDocument loadedDirectoryCategorizerDocument = dirCategDAO.getDirectoryCategorizerDocument(false);
Assert.assertEquals(loadedDirectoryCategorizerDocument.getTestedDirs().size(), 0);
// adds new dir
dirCategDAO.addDirectoryName("/dir4/");
DirectoryCategorizerDocument loadedDirectoryCategorizerDocument2 = dirCategDAO.getDirectoryCategorizerDocument(true);
Assert.assertEquals(loadedDirectoryCategorizerDocument2.getTestedDirs().size(), 4);
}
@AfterClass
public void cleanup() {
ds.getDB().dropDatabase();
}
}