package com.processpuzzle.application.domain; import com.processpuzzle.application.domain.Application; import com.processpuzzle.application.domain.ApplicationException; import com.processpuzzle.application.domain.ApplicationFactory; import com.processpuzzle.litest.fixture.UnconfiguredSharedFixtureException; import com.processpuzzle.litest.template.DefaultApplicationFixture; import com.processpuzzle.sharedfixtures.domaintier.DomainTierTestApplication; public class ConfigurableApplicationFixture extends DefaultApplicationFixture<Application> { public ConfigurableApplicationFixture( String configurationPath ) { super( configurationPath ); } @Override protected void configureAfterSutInstantiation() { super.configureAfterSutInstantiation(); applicationRepository.add( application ); } @Override protected void configureBeforeSutInstantiation() { application = ApplicationFactory.create( DomainTierTestApplication.class, configurationPath ); try { application.install(); } catch( ApplicationException e ) { throw new UnconfiguredSharedFixtureException( this.getClass().getName(), e ); } } @Override protected Application instantiateSUT() { return application; } @Override protected void releaseResources() { application.unInstall(); applicationRepository.delete( application ); super.releaseResources(); } }