package com.processpuzzle.generictests; import org.junit.AfterClass; import org.junit.BeforeClass; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import static org.mockito.Mockito.*; import com.processpuzzle.application.configuration.domain.InternalizationContext; import com.processpuzzle.application.configuration.domain.MeasurementContext; import com.processpuzzle.application.configuration.domain.ProcessPuzzleContext; import com.processpuzzle.application.configuration.domain.PropertyContext; import com.processpuzzle.application.domain.Application; import com.processpuzzle.sharedfixtures.domaintier.DomainTierTestConfiguration; public abstract class PropertyContextAwareTest { protected static String configurationDescriptorPath = DomainTierTestConfiguration.APPLICATION_CONFIGURATION_DESCRIPTOR_PATH; @Mock protected static Application application; @Mock protected static ProcessPuzzleContext applicationContext; protected static PropertyContext propertyContext; protected static MeasurementContext measurementContext; protected static InternalizationContext i18Context; @BeforeClass public static void beforeAllTests() { MockitoAnnotations.initMocks( PropertyContextAwareTest.class ); when( application.getContext() ).thenReturn( applicationContext ); propertyContext = new PropertyContext( application, configurationDescriptorPath ); propertyContext.setUp( Application.Action.start ); when( applicationContext.getPropertyContext() ).thenReturn( propertyContext ); measurementContext = new MeasurementContext( application ); measurementContext.setUp( Application.Action.start ); when( applicationContext.getMeasurementContext() ).thenReturn( measurementContext ); i18Context = new InternalizationContext( application ); i18Context.setUp( Application.Action.start ); when( applicationContext.getInternalizationContext() ).thenReturn( i18Context ); } @AfterClass public static void afterAllTests() { i18Context.tearDown( Application.Action.stop ); i18Context = null; measurementContext.tearDown( Application.Action.stop ); measurementContext = null; propertyContext.tearDown( Application.Action.stop ); propertyContext = null; } }