package com.processpuzzle.artifact_management.control;
import static org.junit.Assert.assertNotNull;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import com.mockrunner.mock.web.MockHttpServletRequest;
import com.mockrunner.servlet.BasicServletTestCaseAdapter;
import com.processpuzzle.application.configuration.domain.ApplicationContextFactory;
import com.processpuzzle.application.configuration.domain.ProcessPuzzleContext;
import com.processpuzzle.application.control.control.CommandControllerServlet;
import com.processpuzzle.application.domain.Application;
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.domain.Artifact;
import com.processpuzzle.artifact.domain.DefaultArtifactRepository;
import com.processpuzzle.artifact.domain.DocumentFactory;
import com.processpuzzle.artifact.domain.PropertyView;
import com.processpuzzle.configuration.webtier.ConfigurationConstants;
import com.processpuzzle.persistence.domain.DefaultUnitOfWork;
/**
* @author zsolt.zsuffa
*/
public class ShowArtifactViewCommandTest extends BasicServletTestCaseAdapter {
private static ProcessPuzzleContext config = null;
private static DefaultArtifactRepository arepository;
private static UserRepository userRepository;
private @Mock Application mockApplication;
private UserFactory userFactory;
private DocumentFactory documentFactory;
private Artifact<?> artifact;
private User user;
public void setUp() throws Exception {
super.setUp();
DefaultUnitOfWork work = new DefaultUnitOfWork( true );
MockitoAnnotations.initMocks( ShowArtifactViewCommandTest.class );
config = ApplicationContextFactory.create( mockApplication, ConfigurationConstants.CONFIGURATION_PROPERTY_FILE );
config.setUp( Application.Action.start );
arepository = (DefaultArtifactRepository) config.getRepository( DefaultArtifactRepository.class );
userRepository = (UserRepository) config.getRepository( UserRepository.class );
userFactory = config.getEntityFactory( UserFactory.class );
documentFactory = config.getEntityFactory( DocumentFactory.class );
user = userFactory.createUser( "User", "psw" );
userRepository.addUser( work, user );
artifact = documentFactory.createDocument( "document" );
artifact.addView( "PropertyView", new PropertyView<Artifact<?>>( artifact, "PropertyView", null ) );
arepository.add( work, artifact );
createServlet( CommandControllerServlet.class );
addRequestParameter( "action", "ShowView" );
work.finish();
}
public void tearDown() throws Exception {
DefaultUnitOfWork work = new DefaultUnitOfWork( true );
arepository.delete( work, artifact );
userRepository.deleteUser( work, user );
work.finish();
super.tearDown();
}
public final void testExecute_ForArtifactObjectResponse() {
addRequestParameter( "artifactId", artifact.getId().toString() );
addRequestParameter( "viewName", "PropertyView" );
doPost();
MockHttpServletRequest mockRequest = getWebMockObjectFactory().getMockRequest();
assertNotNull( mockRequest.getAttribute( "artifactView" ) );
}
public final void testExecute_ForReletedArtifactsView() {
addRequestParameter( "artifactName", artifact.getName() );
addRequestParameter( "viewName", "RelatedArtifactsListView" );
doPost();
MockHttpServletRequest mockRequest = getWebMockObjectFactory().getMockRequest();
assertNotNull( mockRequest.getAttribute( "artifactView" ) );
}
}