package edu.stanford.sulair.dlss.dor;
import edu.stanford.sulair.dlss.dor.admin.*;
import edu.stanford.sulair.dlss.dor.admin.Process;
import edu.stanford.sulair.dlss.dor.dao.ProcessDao;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean;
import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;
/**
* User: wmene
* Date: Jun 14, 2010
* Time: 2:08:09 PM
*/
public abstract class AbstractProcessDatabaseTest extends AbstractTransactionalJUnit4SpringContextTests {
@Autowired
protected ProcessDao dao;
@Autowired
private AnnotationSessionFactoryBean sessionFactory;
private static boolean tablesCreated = false;
@Before
public void createTables() {
if(!tablesCreated) {
sessionFactory.createDatabaseSchema();
tablesCreated = true;
}
}
@After
public void cleanUp() {
this.deleteFromTables("workflow");
}
protected void createAndPersistProcess(String repository, String druid, String ds, String name, String status){
edu.stanford.sulair.dlss.dor.admin.Process p = createProcess(repository, druid, ds, name, status);
dao.persistProcess(p);
}
protected void createAndPersistProcess(String repository, String druid, String ds, String name, String status, String lifecycle){
Process p = new Process();
p.setDruid(druid);
p.setDatastream(ds);
p.setName(name);
p.setStatus(status);
p.setRepository(repository);
p.setLifecycle(lifecycle);
dao.persistProcess(p);
}
protected Process createProcess(String repository, String druid, String ds, String name, String status){
edu.stanford.sulair.dlss.dor.admin.Process p = new Process();
p.setDruid(druid);
p.setDatastream(ds);
p.setName(name);
p.setStatus(status);
p.setRepository(repository);
return p;
}
}