/*
* Created on Oct 22, 2006
*/
package com.processpuzzle.workflow.activity.artifact;
import com.processpuzzle.application.configuration.domain.ProcessPuzzleContext;
import com.processpuzzle.application.security.domain.User;
import com.processpuzzle.application.security.domain.UserFactory;
import com.processpuzzle.artifact.domain.DefaultArtifactRepository;
import com.processpuzzle.litest.fixture.GenericTestFixture;
import com.processpuzzle.litest.fixture.PersistentSharedFixture;
import com.processpuzzle.persistence.domain.DefaultUnitOfWork;
import com.processpuzzle.sharedfixtures.domaintier.DomainTier_ConfigurationFixture;
/**
* @author zsolt.zsuffa
*/
public class PlanDataSheetTestFixture extends GenericTestFixture<PlanDataSheet> implements PersistentSharedFixture<PlanDataSheet> {
private static DomainTier_ConfigurationFixture configurationFixture;
private static String REGISTER_ORDER_NAME = "Register order";
private static String ACKNOWLEDGE_ORDER_NAME = "Acknowledge order";
private static String ORDER_FULFILLMENT_NAME = "Order fulfillment";
private static String ORDER_PROCESS_NAME = "Order process";
private ActionDataSheet<?> registerOrder;
private ActionDataSheet<?> acknowledgeOrder;
private PlanDataSheet orderFulfillment;
private PlanDataSheet orderProcess;
private UserFactory userFactory;
private User creator;
private ActionDataSheetFactory actionDataSheetFactory;
private PlanDataSheetFactory planDataSheetFactory;
private ProcessPuzzleContext applicationContext;
private DefaultArtifactRepository artifactRepository;
public void beforeEachTests() {
configurationFixture = DomainTier_ConfigurationFixture.getInstance();
configurationFixture.setUp();
applicationContext = DomainTier_ConfigurationFixture.getConfig();
actionDataSheetFactory = applicationContext.getEntityFactory( ActionDataSheetFactory.class );
planDataSheetFactory = applicationContext.getEntityFactory( PlanDataSheetFactory.class );
userFactory = applicationContext.getEntityFactory( UserFactory.class );
creator = userFactory.createUser( "John Smith", "psw" );
registerOrder = actionDataSheetFactory.create( REGISTER_ORDER_NAME, "protocol" );
acknowledgeOrder = actionDataSheetFactory.create( ACKNOWLEDGE_ORDER_NAME, "protocol" );
orderFulfillment = planDataSheetFactory.create( creator, ORDER_FULFILLMENT_NAME, "protocol" );
orderFulfillment.getPlan().setDescription( "This is the process of fulfillment of order: xx." );
orderFulfillment.getPlan().addSubAction( registerOrder.getAction() );
orderFulfillment.getPlan().addSubAction( acknowledgeOrder.getAction() );
orderProcess = planDataSheetFactory.create( creator, ORDER_PROCESS_NAME, "protocol" );
orderProcess.getPlan().addSubAction( orderFulfillment.getPlan() );
artifactRepository = applicationContext.getRepository( DefaultArtifactRepository.class );
}
public void afterEachTests() {
configurationFixture.tearDown();
DefaultUnitOfWork work = new DefaultUnitOfWork( true );
artifactRepository.delete( work, orderFulfillment );
registerOrder = null;
acknowledgeOrder = null;
orderFulfillment = null;
}
public PlanDataSheet getOrderProcess() {
return orderProcess;
}
public PlanDataSheet getOrderFulfillment() {
return orderFulfillment;
}
public User getCreator() {
return creator;
}
public DefaultArtifactRepository getArtifactRepository() {
return DomainTier_ConfigurationFixture.getArtifactRepository();
}
@Override
protected void configureAfterSutInstantiation() {
// TODO Auto-generated method stub
}
@Override
protected PlanDataSheet instantiateSUT() {
// TODO Auto-generated method stub
return null;
}
@Override
protected void configureBeforeSutInstantiation() {
// TODO Auto-generated method stub
}
@Override
protected void releaseResources() {
// TODO Auto-generated method stub
}
}