package org.mongolink.test;
import org.junit.rules.ExternalResource;
import org.mongolink.*;
import org.mongolink.domain.mapper.ContextBuilder;
public class MongolinkRule extends ExternalResource {
public static MongolinkRule withPackage(String... packagesToScan) {
MongolinkRule result = new MongolinkRule();
ContextBuilder contextBuilder = new ContextBuilder(packagesToScan);
sesionManager = MongoSessionManager.create(contextBuilder, Settings.defaultInstance().withDbFactory(FongoDbFactory.class));
return result;
}
private MongolinkRule() {
}
@Override
public void before() throws Throwable {
session = sesionManager.createSession();
session.start();
}
@Override
public void after() {
session.stop();
FongoDbFactory.clean();
}
public void cleanSession() {
session.flush();
session.clear();
}
public MongoSession getCurrentSession() {
return session;
}
private static MongoSessionManager sesionManager;
private MongoSession session;
}