package com.processpuzzle.configuration.webtier;
import org.mockito.MockitoAnnotations;
import org.mockito.MockitoAnnotations.Mock;
import com.processpuzzle.address.domain.CountryRepository;
import com.processpuzzle.address.domain.SettlementRepository;
import com.processpuzzle.address.domain.ZipCodeRepository;
import com.processpuzzle.application.configuration.domain.ApplicationContextFactory;
import com.processpuzzle.application.configuration.domain.ConfigurationSetUpException;
import com.processpuzzle.application.configuration.domain.InternalizationContext;
import com.processpuzzle.application.configuration.domain.ProcessPuzzleContext;
import com.processpuzzle.application.domain.Application;
import com.processpuzzle.application.security.domain.UserRepository;
import com.processpuzzle.artifact.domain.ArtifactFolderRepository;
import com.processpuzzle.artifact.domain.DefaultArtifactRepository;
import com.processpuzzle.artifact_type.domain.ArtifactTypeRepository;
import com.processpuzzle.artifact_type_group.domain.ArtifactTypeGroupRepository;
import com.processpuzzle.party.domain.PartyRepository;
import com.processpuzzle.party.partyrelationshiptype.domain.PartyRelationshipTypeRepository;
import com.processpuzzle.party.partyrelationshiptype.domain.PartyRoleTypeRepository;
import com.processpuzzle.resource.resourcetype.domain.ResourceTypeRepository;
import com.processpuzzle.workflow.activity.domain.WorkflowRepository;
import com.processpuzzle.workflow.protocol.domain.ProtocolRepository;
public class ConfigurationFixture {
private static ProcessPuzzleContext config;
private static DefaultArtifactRepository artifactRepository;
private static ArtifactFolderRepository artifactFolderRepository;
private static ZipCodeRepository zipCodeRepository;
private static CountryRepository countryRepository;
private static SettlementRepository settlementRepository;
private static ResourceTypeRepository resourceTypeRepository;
private static ArtifactTypeRepository artifactTypeRepository;
private static ArtifactTypeGroupRepository artifactTypeGroupRepository;
private static PartyRepository partyRepository;
private static ProtocolRepository protocolRepository;
private static WorkflowRepository actionRepository;
private static PartyRelationshipTypeRepository partyRelationshipTypeRepository;
private static PartyRoleTypeRepository partyRoleTypeRepository;
private static InternalizationContext localeRepository;
private static UserRepository userRepository;
private static ConfigurationFixture fixtureInstance;
@Mock
private Application mockApplication;
public static ConfigurationFixture getInstance() {
if( fixtureInstance == null ){
return new ConfigurationFixture();
}
return fixtureInstance;
}
public void setUp() {
MockitoAnnotations.initMocks( ConfigurationFixture.class );
config = ApplicationContextFactory.create( mockApplication, ConfigurationConstants.CONFIGURATION_PROPERTY_FILE );
try{
config.setUp( Application.Action.start );
artifactRepository = config.getRepository( DefaultArtifactRepository.class );
artifactFolderRepository = config.getRepository( ArtifactFolderRepository.class );
zipCodeRepository = config.getRepository( ZipCodeRepository.class );
countryRepository = config.getRepository( CountryRepository.class );
settlementRepository = config.getRepository( SettlementRepository.class );
resourceTypeRepository = config.getRepository( ResourceTypeRepository.class );
artifactTypeRepository = config.getRepository( ArtifactTypeRepository.class );
artifactTypeGroupRepository = config.getRepository( ArtifactTypeGroupRepository.class );
partyRepository = config.getRepository( PartyRepository.class );
protocolRepository = config.getRepository( ProtocolRepository.class );
actionRepository = config.getRepository( WorkflowRepository.class );
partyRelationshipTypeRepository = config.getRepository( PartyRelationshipTypeRepository.class );
partyRoleTypeRepository = config.getRepository( PartyRoleTypeRepository.class );
localeRepository = config.getInternalizationContext();
userRepository = config.getRepository( UserRepository.class );
}catch( ConfigurationSetUpException e ){
e.printStackTrace();
}
}
public void tearDown() {
config = null;
artifactRepository = null;
zipCodeRepository = null;
countryRepository = null;
settlementRepository = null;
resourceTypeRepository = null;
artifactTypeRepository = null;
artifactTypeGroupRepository = null;
partyRepository = null;
protocolRepository = null;
actionRepository = null;
partyRelationshipTypeRepository = null;
partyRoleTypeRepository = null;
localeRepository = null;
userRepository = null;
fixtureInstance = null;
}
public static WorkflowRepository getActionRepository() {
return actionRepository;
}
public static DefaultArtifactRepository getArtifactRepository() {
return artifactRepository;
}
public static ArtifactFolderRepository getArtifactFolderRepository() {
return artifactFolderRepository;
}
public static ArtifactTypeGroupRepository getArtifactTypeGroupRepository() {
return artifactTypeGroupRepository;
}
public static ArtifactTypeRepository getArtifactTypeRepository() {
return artifactTypeRepository;
}
public static ProcessPuzzleContext getConfig() {
return config;
}
public static CountryRepository getCountryRepository() {
return countryRepository;
}
public static InternalizationContext getLocaleRepository() {
return localeRepository;
}
public static PartyRelationshipTypeRepository getPartyRelationshipTypeRepository() {
return partyRelationshipTypeRepository;
}
public static PartyRepository getPartyRepository() {
return partyRepository;
}
public static PartyRoleTypeRepository getPartyRoleTypeRepository() {
return partyRoleTypeRepository;
}
public static ProtocolRepository getProtocolRepository() {
return protocolRepository;
}
public static ResourceTypeRepository getResourceTypeRepository() {
return resourceTypeRepository;
}
public static SettlementRepository getSettlementRepository() {
return settlementRepository;
}
public static UserRepository getUserRepository() {
return userRepository;
}
public static ZipCodeRepository getZipCodeRepository() {
return zipCodeRepository;
}
}