package org.easysoa.registry.test;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.rules.TestName;
import org.junit.runner.RunWith;
import org.nuxeo.ecm.core.api.ClientException;
import org.nuxeo.ecm.core.api.CoreSession;
import org.nuxeo.ecm.core.test.annotations.Granularity;
import org.nuxeo.ecm.core.test.annotations.RepositoryConfig;
import org.nuxeo.ecm.platform.test.PlatformFeature;
import org.nuxeo.runtime.test.runner.Features;
import org.nuxeo.runtime.test.runner.FeaturesRunner;
import com.google.inject.Inject;
/**
* To be extended by Nuxeo local tests.
*
* To test consecutive steps of a workflow, add
* @RepositoryConfig(cleanup = Granularity.CLASS)
* in order to keep Nuxeo repository state between test methods.
*
* @author mdutoo
*
*/
@RunWith(FeaturesRunner.class)
@Features({EasySOAFeature.class, PlatformFeature.class})
@RepositoryConfig(cleanup = Granularity.METHOD) // truly unitary tests :
//don't keep Nuxeo repository state between test methods
public class AbstractRegistryTest {
@Inject
protected CoreSession documentManager;
protected RepositoryLogger repositoryLogger;
protected boolean logRepositoryAfterEachTest = true;
protected String defaultSubprojectId = null;
@Rule
public TestName name = new TestName();
@Before
public void setUp() {
if (documentManager == null) {
System.err.println("documentManager not inited");
throw new RuntimeException("documentManager not inited");
}
repositoryLogger = new RepositoryLogger(documentManager);
}
@After
public void logRepository() throws ClientException {
if (logRepositoryAfterEachTest) {
documentManager.save();
repositoryLogger.setTitle(name.getMethodName());
repositoryLogger.logAllRepository();
}
}
public void setLogRepositoryAfterEachTest(boolean logRepositoryAfterEachTest) {
this.logRepositoryAfterEachTest = logRepositoryAfterEachTest;
}
}