package org.mongodb.morphia.ext.guice;
import com.mongodb.DB;
import com.mongodb.MongoClient;
import org.junit.After;
import org.junit.Before;
import org.mongodb.morphia.AdvancedDatastore;
import org.mongodb.morphia.Datastore;
import org.mongodb.morphia.Morphia;
import org.mongodb.morphia.mapping.MappedClass;
@SuppressWarnings("deprecation")
public abstract class TestBase {
private final MongoClient mongoClient;
private final Morphia morphia = new Morphia();
private DB db;
private Datastore ds;
private AdvancedDatastore ads;
protected TestBase() {
try {
mongoClient = new MongoClient();
} catch (final Exception e) {
throw new RuntimeException(e);
}
}
public AdvancedDatastore getAds() {
return ads;
}
public DB getDb() {
return db;
}
public Datastore getDs() {
return ds;
}
public Morphia getMorphia() {
return morphia;
}
@Before
public void setUp() {
db = mongoClient.getDB("morphia_test");
ds = morphia.createDatastore(this.mongoClient, this.db.getName());
ads = (AdvancedDatastore) this.ds;
}
@After
public void tearDown() {
dropDB();
}
protected void dropDB() {
// this.mongoClient.dropDatabase("morphia_test");
for (final MappedClass mc : morphia.getMapper().getMappedClasses()) {
// if( mc.getEntityAnnotation() != null )
db.getCollection(mc.getCollectionName()).drop();
}
}
}