package com.processpuzzle.artifact.domain; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import java.util.Date; import com.processpuzzle.application.security.domain.User; import com.processpuzzle.artifact_type.domain.ArtifactType; import com.processpuzzle.artifact_type.domain.ArtifactTypeFactory; import com.processpuzzle.artifact_type.domain.ArtifactViewType; import com.processpuzzle.litest.template.ArtifactTestEnvironment; import com.processpuzzle.litest.template.ArtifactTestFixture; import com.processpuzzle.persistence.domain.TestEntity; public class CommonArtifactTestFixture extends ArtifactTestFixture<TestEntityDataSheet> { public static final String ENTITY_NAME = "Test Entity for Artifact Test"; public static final String ARTIFACT_CREATOR_NAME = "Gipsz Jakab"; public static final String ARTIFACT_CREATOR_PSW = "psw"; public static final Integer ARTIFACT_ID = 1; public static final String ARTIFACT_NAME = ENTITY_NAME; public static final String ARTIFACT_TYPE_NAME = "Test Entity"; private User artifactCreator; private User artifactModifier; private TestEntityDataSheet artifact; private ArtifactType artifactType; private ArtifactViewType propertyViewType; private TestEntity aggregateRoot; private Date artifactCreationDate; public CommonArtifactTestFixture( ArtifactTestEnvironment<TestEntityDataSheet, ?> testEnvironment ) { super( testEnvironment ); } // Properties public Date getArtifactCreationDate() { return artifactCreationDate; } public User getArtifactCreator() { return artifactCreator; } public User getArtifactModifier() { return artifactModifier; } // Protected, private helper methods @Override protected void configureAfterSutInstantiation() { } @Override protected void configureBeforeSutInstantiation() { stubCurrentUser(); stubAggregateRoot(); stubArtifactType(); setUpArtifact(); } @Override protected TestEntityDataSheet instantiateSUT() { sut = artifact; return sut; } @Override protected void releaseResources() {} private void setUpArtifact() { artifact = new TestEntityDataSheet( artifactType, aggregateRoot, artifactCreator ); artifact.setId( ARTIFACT_ID ); artifact.setResponsible( artifactCreator ); artifactCreationDate = artifact.getCreation(); } private void stubAggregateRoot() { aggregateRoot = mock( TestEntity.class ); when( aggregateRoot.getName() ).thenReturn( ENTITY_NAME ); } private void stubArtifactType() { ArtifactTypeFactory artifactTypeFactory = new ArtifactTypeFactory(); propertyViewType = ArtifactTypeFactory.createPropertyViewType( "PropertyView", null ); artifactType = artifactTypeFactory.create( ARTIFACT_TYPE_NAME, null, TestEntityDataSheet.class ); artifactType.addViewType( propertyViewType ); } private void stubCurrentUser() { artifactCreator = mock( User.class ); when( artifactCreator.getUserName() ).thenReturn( ARTIFACT_CREATOR_NAME ); when( artifactCreator.getPassword() ).thenReturn( ARTIFACT_CREATOR_PSW ); } }