package com.processpuzzle.artifact_type_group.domain; import com.processpuzzle.artifact_type.domain.ArtifactType; import com.processpuzzle.artifact_type.domain.ArtifactTypeRepository; import com.processpuzzle.commons.persistence.UnitOfWork; import com.processpuzzle.litest.template.RepositoryTestEnvironment; import com.processpuzzle.litest.template.RepositoryTestFixture; import com.processpuzzle.persistence.domain.DefaultUnitOfWork; public class ArtifactTypeGroupRepositoryTestFixture extends RepositoryTestFixture<ArtifactTypeGroupRepository, ArtifactTypeGroup> { public static final String ARTIFACT_TYPE_ONE = "ArtifactTypeOne"; public static final String ARTIFACT_TYPE_TWO = "ArtifactTypeTwo"; public static final String GROUP_NAME = "TestGroup"; private ArtifactType artifactTypeOne; private ArtifactType artifactTypeTwo; private ArtifactTypeRepository artifactTypeRepository; public ArtifactTypeGroupRepositoryTestFixture( RepositoryTestEnvironment<ArtifactTypeGroupRepository, RepositoryTestFixture<ArtifactTypeGroupRepository, ArtifactTypeGroup>> testEnvironment ) { super( testEnvironment ); } @Override protected ArtifactTypeGroup createNewAggregate() throws Exception { ArtifactTypeGroup group = new ArtifactTypeGroup( GROUP_NAME ); return group; } @Override protected void afterAggregateCreation() { addArtifactTypesToGroup(); } @Override protected void afterAggregateDeletion() {} @Override protected void beforeAggregateCreation() { lookUpRepositoriesAndFactories(); instantiateArtifactTypes(); } private void addArtifactTypesToGroup() { root.addType( artifactTypeOne ); root.addType( artifactTypeTwo ); UnitOfWork work = new DefaultUnitOfWork( true ); repository.update( work, root ); artifactTypeRepository.add( work, artifactTypeOne ); artifactTypeRepository.add( work, artifactTypeTwo ); work.finish(); } private void instantiateArtifactTypes() { artifactTypeOne = new ArtifactType( ARTIFACT_TYPE_ONE ); artifactTypeTwo = new ArtifactType( ARTIFACT_TYPE_TWO ); } private void lookUpRepositoriesAndFactories(){ artifactTypeRepository = applicationContext.getRepository( ArtifactTypeRepository.class ); } }