package com.processpuzzle.fitnesse.sharedfixtures; import com.processpuzzle.application.configuration.domain.ProcessPuzzleContext; import com.processpuzzle.application.domain.Application; import com.processpuzzle.litest.template.DefaultApplicationFixture; import com.processpuzzle.sharedfixtures.domaintier.ApplicationFixture; public class FitNesseApplicationFixture implements ApplicationFixture<Application> { private static FitNesseApplicationFixture soleInstance; private static String contextDescriptorPath; private boolean isApplicationConfigured = false; private DefaultApplicationFixture<?> applicationFixture; private Application application; private ProcessPuzzleContext configuration; private boolean isCatalogConfigured = false; private boolean isProductTypeConfigured = false; private boolean isPriceTypeConfigured = false; private boolean isOrderConfigured = false; private boolean isTestSuiteRunning = false; public static FitNesseApplicationFixture getInstance( String path ) { contextDescriptorPath = path; if( soleInstance == null ){ soleInstance = new FitNesseApplicationFixture(); } return soleInstance; } public void setUp() { if (!isApplicationConfigured) { //contextDescriptorPath = DomainComponentsTestConfiguration.FITNESSE_CONFIG_DESCRIPTOR_PATH; //applicationFixture = ConfigurableApplicationFixture.createInstance( contextDescriptorPath ); applicationFixture.setUp(); application = (Application) applicationFixture.getSUT(); configuration = application.getContext(); isApplicationConfigured = true; } } public void setUpTestSuite() { setUp(); isTestSuiteRunning = true; } public void tearDown() { if (!isTestSuiteRunning) { System.out.println("Stopping FitnesseApplication: " + contextDescriptorPath); if ( applicationFixture != null ) { applicationFixture.tearDown(); applicationFixture = null; } application = null; configuration = null; isApplicationConfigured = false; } } public void tearDownTestSuite() { isTestSuiteRunning = false; tearDown(); } public boolean isApplicationConfigured() { return isApplicationConfigured; } public Application getApplication() { return application; } public ProcessPuzzleContext getConfiguration() { return configuration; } public boolean isCatalogConfigured() { return isCatalogConfigured; } public void setCatalogConfigured( boolean isCatalogConfigured ) { this.isCatalogConfigured = isCatalogConfigured; } public boolean isProductTypeConfigured() { return isProductTypeConfigured; } public void setProductTypeConfigured( boolean isProductTypeConfigured ) { this.isProductTypeConfigured = isProductTypeConfigured; } public void setPriceTypeConfigured( boolean isPriceTypeConfigured ) { this.isPriceTypeConfigured = isPriceTypeConfigured; } public void setOrderConfigured( boolean isOrderConfigured ) { this.isOrderConfigured = isOrderConfigured; } @Override public <D> D defineDOC( Class<D> dependsOnComponent ) { // TODO Auto-generated method stub return null; } @Override public <E> void defineExpectedValueFor( String propertyName, E expectedValue ) { // TODO Auto-generated method stub } @Override public Object getExpectedValueFor( String propertyName ) { // TODO Auto-generated method stub return null; } @Override public Application getSUT() { return application; } @Override public Class<Application> getSUTClass() { return Application.class; } @Override public boolean isConfigured() { return isApplicationConfigured; } }