package com.processpuzzle.artifact_type.domain; import com.processpuzzle.artifact_type_group.domain.ArtifactTypeGroup; import com.processpuzzle.artifact_type_group.domain.ArtifactTypeGroupFactory; import com.processpuzzle.artifact_type_group.domain.ArtifactTypeGroupRepository; import com.processpuzzle.litest.template.RepositoryTestEnvironment; import com.processpuzzle.litest.template.RepositoryTestFixture; public class ArtifactTypeRepositoryTestFixture extends RepositoryTestFixture<ArtifactTypeRepository, ArtifactType> { public static final String QUERY_VIEW_TYPE_NAME = "TestQueryViewType"; public static final String PREDEFINED_QUERY_NAME = "TestQueryName"; public static final String PREDEFINED_QUERY_DESCRIPTION = "TestQueryDescription"; public static final String PREDEFINED_QUERY_STATEMENT = "TestQueryStatement"; public static final String TYPE_NAME = "TestArtifactType"; public static final String TYPE_GROUP_NAME = "SystemAdminitration"; private ArtifactTypeFactory artifactTypeFactory; private ArtifactTypeGroup artifactTypeGroup; private ArtifactType testType; private ListQueryViewType queryViewType; //Constructors public ArtifactTypeRepositoryTestFixture( RepositoryTestEnvironment<ArtifactTypeRepository, RepositoryTestFixture<ArtifactTypeRepository,ArtifactType>> testEnvironment ) { super( testEnvironment ); } //Properties public ListQueryViewType getQueryViewType() { return queryViewType; } //Protected, private helper methods @Override protected void afterAggregateCreation() {} @Override protected void afterAggregateDeletion() {} @Override protected void beforeAggregateCreation() {} @Override protected void configureBeforeSutInstantiation() { super.configureBeforeSutInstantiation(); artifactTypeFactory = applicationContext.getEntityFactory( ArtifactTypeFactory.class ); instantiateTypeGroup(); } private void instantiateTypeGroup() { ArtifactTypeGroupFactory artifactTypeGroupFactory = applicationContext.getEntityFactory( ArtifactTypeGroupFactory.class ); ArtifactTypeGroupRepository artifactTypeGroupRepository = applicationContext.getRepository( ArtifactTypeGroupRepository.class ); artifactTypeGroup = artifactTypeGroupFactory.create( TYPE_GROUP_NAME ); artifactTypeGroupRepository.add( artifactTypeGroup ); } @Override protected ArtifactType createNewAggregate() throws Exception { testType = artifactTypeFactory.create( TYPE_NAME, TYPE_GROUP_NAME ); testType.setSystem( true ); queryViewType = new ListQueryViewType( QUERY_VIEW_TYPE_NAME ); queryViewType.addPredefinedQuery( PREDEFINED_QUERY_NAME, PREDEFINED_QUERY_DESCRIPTION, PREDEFINED_QUERY_STATEMENT ); testType.addViewType( queryViewType ); return testType; } }