package com.processpuzzle.artifact_type.domain; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.hasItem; import static org.hamcrest.Matchers.notNullValue; import static org.junit.Assert.assertThat; import org.junit.Test; import com.processpuzzle.artifact.domain.ImageFile; import com.processpuzzle.litest.template.FactoryTestTemplate; import com.processpuzzle.persistence.domain.DefaultUnitOfWork; import com.processpuzzle.sharedfixtures.domaintier.DomainTierTestConfiguration; public class ArtifactTypeFactoryTest extends FactoryTestTemplate<ArtifactTypeFactory, ArtifactTypeFactoryTestFixture, ArtifactType> { private ArtifactType type; private DefaultUnitOfWork work; public ArtifactTypeFactoryTest() { super( DomainTierTestConfiguration.FIXTURE_CONTAINER_DEFINITION_PATH ); } // Test cases @Override public void create_ForSuccess() { type = sut.create( ArtifactTypeFactoryTestFixture.DOCUMENT_TYPE_NAME, ArtifactTypeFactoryTestFixture.DOCUMENT_GROUP ); assertThat( type, notNullValue() ); assertThat( type.getGroup(), notNullValue() ); assertThat( type.getGroup().getName(), equalTo( ArtifactTypeFactoryTestFixture.DOCUMENT_GROUP ) ); } @Override public void create_ForCollision() { // SETUP: templatedFixture.setUpImageFileArtifactType(); // EXCERCISE: sut.create( ArtifactTypeFactoryTestFixture.IMAGEFILE_TYPE_NAME, ArtifactTypeFactoryTestFixture.IMAGEFILE_GROUP, ImageFile.class ); } @Test public void createAndAddToGroup_addsTheNewArtifactToGroup() { work = new DefaultUnitOfWork( true ); type = sut.createAndAddToGroup( work, ArtifactTypeFactoryTestFixture.IMAGEFILE_TYPE_NAME, ArtifactTypeFactoryTestFixture.IMAGEFILE_GROUP, ImageFile.class ); work.finish(); assertThat( templatedFixture.getImageTypeGroup().getArtifactTypes(), hasItem( type )); } }