package com.processpuzzle.application.security.domain; import static org.junit.Assert.assertEquals; import org.junit.Test; import com.processpuzzle.fundamental_types.domain.AssertionException; import com.processpuzzle.litest.template.FactoryTestTemplate; import com.processpuzzle.persistence.domain.DefaultUnitOfWork; import com.processpuzzle.persistence.domain.EntityIdentityCollitionException; import com.processpuzzle.sharedfixtures.domaintier.DomainTierTestConfiguration; public class UserFactoryTest extends FactoryTestTemplate<UserFactory, UserFactoryTestFixture, User> { private static final String USER_PASSWORD = "psw"; private static final String USER_NAME = "john.smith"; public UserFactoryTest() { super( DomainTierTestConfiguration.FIXTURE_CONTAINER_DEFINITION_PATH ); } @Override public void create_ForSuccess() { assertEquals( "John's user name is:", USER_NAME, templatedFixture.getJohnSmith().getUserName() ); } @Override @Test( expected = EntityIdentityCollitionException.class ) public void create_ForCollision() { UserRepository repository = (UserRepository) applicationContext.getRepository( UserRepository.class ); DefaultUnitOfWork addWork = new DefaultUnitOfWork( true ); repository.addUser( addWork, templatedFixture.getJohnSmith() ); addWork.finish(); sut.createUser( USER_NAME, USER_PASSWORD ); } @Test( expected = AssertionException.class ) public final void createUser_whenNameIsMissing_throws_AssertionException() { sut.createUser( null, "pws" ); } @Test( expected = AssertionException.class ) public final void createUser_whenPasswordIsMissing_throwsAssertionException() { sut.createUser( "betty.blue", "" ); } }