package com.processpuzzle.artifact.domain;
import com.processpuzzle.application.security.domain.User;
import com.processpuzzle.application.security.domain.UserFactory;
import com.processpuzzle.application.security.domain.UserRepository;
import com.processpuzzle.artifact_type.domain.ArtifactType;
import com.processpuzzle.artifact_type.domain.ArtifactTypeFactory;
import com.processpuzzle.artifact_type.domain.ArtifactTypeRepository;
import com.processpuzzle.litest.template.RepositoryTestEnvironment;
import com.processpuzzle.litest.template.RepositoryTestFixture;
import com.processpuzzle.persistence.domain.DefaultUnitOfWork;
public class ArtifactRepositoryTestFixture extends RepositoryTestFixture<DefaultArtifactRepository, Artifact> {
public static final String ARTIFACT_NAME = "Test artifact";
private ArtifactTypeRepository artifactTypeRepository;
private ArtifactTypeFactory artifactTypeFactory;
private UserFactory userFactory;
private UserRepository userRepository;
private ArtifactType subClassType;
private User creator;
protected ArtifactRepositoryTestFixture( RepositoryTestEnvironment<DefaultArtifactRepository, RepositoryTestFixture<DefaultArtifactRepository,Artifact>> testEnvironment ) {
super( testEnvironment );
}
//Properties
public ArtifactType getSubClassType() { return subClassType; }
//Protected, private helper methods.
@Override
protected void configureAfterSutInstantiation() {
// TODO Auto-generated method stub
}
@Override
protected void configureBeforeSutInstantiation() {
artifactTypeFactory = applicationContext.getEntityFactory( ArtifactTypeFactory.class );
artifactTypeRepository = applicationContext.getRepository( ArtifactTypeRepository.class );
userRepository = applicationContext.getRepository( UserRepository.class );
DefaultUnitOfWork work = new DefaultUnitOfWork( true );
subClassType = artifactTypeFactory.create( "ArtifactSubClass", "SystemAdministration" );
subClassType.setSystem( true );
artifactTypeRepository.addArtifactType( work, subClassType );
creator = userFactory.createUser( "testPerson", "password" );
userRepository.add( work, creator );
work.finish();
}
@Override
protected Artifact<?> createNewAggregate() throws Exception {
Artifact<?> artifact = new ArtifactSubClass( ARTIFACT_NAME, subClassType, creator );
return artifact;
}
@Override
protected void afterAggregateCreation() {
}
@Override
protected void afterAggregateDeletion() {
}
@Override
protected void beforeAggregateCreation() {
}
}