package com.processpuzzle.litest.template;
import com.processpuzzle.commons.generics.GenericTypeParameterInvestigator;
import com.processpuzzle.commons.persistence.Entity;
import com.processpuzzle.litest.template.GenericTestEnvironment;
import com.processpuzzle.sharedfixtures.domaintier.MockProcessPuzzleContext;
import com.processpuzzle.sharedfixtures.domaintier.RequestContextInMockedApplicationFixture;
public class DomainObjectTestEnvironment<S extends Entity, F extends DomainObjectTestFixture<S>> extends GenericTestEnvironment<S> {
protected Class<F> domainObjectTestFixtureClass;
private F domainObjectTestFixture;
@SuppressWarnings("unchecked")
public DomainObjectTestEnvironment( Class<F> domainObjectTestFixtureClass ) {
super();
this.domainObjectTestFixtureClass = domainObjectTestFixtureClass;
this.sutClass = (Class<S>) GenericTypeParameterInvestigator.getTypeParameter( domainObjectTestFixtureClass, 0 );
}
//Properties
public MockProcessPuzzleContext getApplicationContextFixture() {
return getFixture( MockProcessPuzzleContext.class );
}
public F getDomainObjectTestFixture() {
return domainObjectTestFixture;
}
//Protected, private helper methods.
@Override
protected void configureAfterSutInstantiation() {
// TODO Auto-generated method stub
}
@Override
protected void configureBeforeSutInstantiation() {
// TODO Auto-generated method stub
}
@Override
protected void defineComponentTypes() {
componentTypes.add( RequestContextInMockedApplicationFixture.class );
componentTypes.add( MockProcessPuzzleContext.class );
componentTypes.add( domainObjectTestFixtureClass );
}
@Override
protected void releaseResources() {
// TODO Auto-generated method stub
}
}