package com.processpuzzle.litest.template; import com.processpuzzle.application.configuration.domain.ProcessPuzzleContext; import com.processpuzzle.application.domain.ConfigurableApplicationFixture; import com.processpuzzle.commons.persistence.Repository; import com.processpuzzle.litest.template.GenericTestEnvironment; public class RepositoryTestEnvironment<R extends Repository<?>, F extends RepositoryTestFixture<R,?>> extends GenericTestEnvironment<R> { private Class<F> repositoryTestFixtureClass; //Constructors public RepositoryTestEnvironment( Class<F> repositoryTestFixtureClass ) { this.repositoryTestFixtureClass = repositoryTestFixtureClass; } //Public accessors and mutators public ProcessPuzzleContext getApplicationContext() { return getApplicationFixture().getApplicationContext(); } @Override public R getSUT() { F repositoryTestFixture = this.getFixture( repositoryTestFixtureClass ); if( repositoryTestFixture != null ) return repositoryTestFixture.getRepository(); else return null; } //Properties public ConfigurableApplicationFixture getApplicationFixture() { return getFixture( ConfigurableApplicationFixture.class ); } public F getTestFixture() { return getFixture( repositoryTestFixtureClass ); } @Override protected void defineComponentTypes() { componentTypes.add( ConfigurableApplicationFixture.class ); componentTypes.add( repositoryTestFixtureClass ); } @Override protected void configureAfterSutInstantiation() { } @Override protected void configureBeforeSutInstantiation() { } @Override protected void releaseResources() { } }