package com.processpuzzle.party.domain;
import java.util.Date;
import com.processpuzzle.application.security.domain.User;
import com.processpuzzle.application.security.domain.UserFactory;
import com.processpuzzle.fundamental_types.domain.TimePoint;
import com.processpuzzle.litest.template.DomainObjectTestEnvironment;
import com.processpuzzle.litest.template.DomainObjectTestFixture;
import com.processpuzzle.persistence.domain.DefaultUnitOfWork;
public class PersonTestFixture extends DomainObjectTestFixture<Person> {
private static PersonFactory personFactory;
private static PersonRepository personRepository;
private static UserFactory userFactory;
private static Person beno = null;
protected PersonTestFixture( DomainObjectTestEnvironment<Person, ?> testEnvironment ) {
super( testEnvironment );
}
//Properties
public PersonRepository getPersonRepository() { return personRepository; }
@Override
protected void configureAfterSutInstantiation() {
}
@Override
protected void configureBeforeSutInstantiation() {
super.configureBeforeSutInstantiation();
userFactory = mockApplicationContext.getEntityFactory( UserFactory.class );
personFactory = mockApplicationContext.getEntityFactory( PersonFactory.class );
personRepository = mockApplicationContext.getRepository( PersonRepository.class );
}
@Override
protected Person instantiateSUT() {
beno = createTestPerson();
return beno;
}
@Override
protected void releaseResources() { }
private static Person createTestPerson() {
beno = personFactory.create( "Benő", "Bárczi", new TimePoint( new Date( System.currentTimeMillis() ) ) );
User user = userFactory.createUser( "barczi.beno", "hello" );
beno.setSystemUser( user );
DefaultUnitOfWork work = new DefaultUnitOfWork( true );
personRepository.addPerson( work, beno );
work.finish();
return beno;
}
}