package com.processpuzzle.litest.template;
import javax.servlet.Filter;
import com.processpuzzle.commons.generics.GenericTypeParameterInvestigator;
import com.processpuzzle.litest.template.GenericTestEnvironment;
import com.processpuzzle.sharedfixtures.domaintier.MockProcessPuzzleContext;
import com.processpuzzle.sharedfixtures.domaintier.RequestContextInMockedApplicationFixture;
public class FilterTestEnvironment<S extends Filter, F extends FilterTestFixture<S>> extends GenericTestEnvironment<S>{
protected Class<F> filterTestFixtureClass;
@SuppressWarnings( "unchecked" )
public FilterTestEnvironment( Class<F> filterTestFixtureClass ){
super();
this.filterTestFixtureClass = filterTestFixtureClass;
this.sutClass = (Class<S>) GenericTypeParameterInvestigator.getTypeParameter( filterTestFixtureClass, 0 );
}
//Public accessors and mutators
public MockServletRunner getServletRunner() { return getFixture( MockServletRunner.class ); }
//Protected, private helper methods
@Override protected void configureAfterSutInstantiation() {
}
@Override protected void configureBeforeSutInstantiation() {
getServletRunner().setFilter( sutClass );
}
@Override protected void defineComponentTypes() {
componentTypes.add( RequestContextInMockedApplicationFixture.class );
componentTypes.add( MockProcessPuzzleContext.class );
componentTypes.add( MockServletRunner.class );
componentTypes.add( filterTestFixtureClass );
}
@Override protected void releaseResources() {
}
}