/*
* Copyright 2011 JBoss Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jbpm.formbuilder.server;
import java.io.BufferedReader;
import java.io.StringReader;
import java.util.UUID;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import junit.framework.TestCase;
import org.easymock.EasyMock;
import org.jbpm.formapi.server.form.FormEncodingServerFactory;
import org.jbpm.formapi.shared.api.FormRepresentation;
import org.jbpm.formapi.shared.form.FormEncodingException;
import org.jbpm.formapi.shared.form.FormEncodingFactory;
import org.jbpm.formapi.shared.form.FormRepresentationEncoder;
import org.jbpm.formbuilder.shared.form.FormDefinitionService;
import org.jbpm.formbuilder.shared.form.FormServiceException;
import org.jbpm.formbuilder.shared.task.TaskDefinitionService;
import org.jbpm.formbuilder.shared.task.TaskRef;
import org.jbpm.formbuilder.shared.task.TaskServiceException;
public class EmbedingServletTest extends TestCase {
@Override
protected void setUp() throws Exception {
FormEncodingFactory.register(FormEncodingServerFactory.getEncoder(), FormEncodingServerFactory.getDecoder());
}
public void testInitOK() throws Exception {
EmbedingServlet servlet = new EmbedingServlet();
ServletConfig config = EasyMock.createMock(ServletConfig.class);
EasyMock.replay(config);
servlet.init(config);
EasyMock.verify(config);
}
public void testDoGetOK() throws Exception {
String uuid = UUID.randomUUID().toString();
HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
HttpServletResponse response = EasyMock.createMock(HttpServletResponse.class);
EasyMock.expect(request.getParameter(EasyMock.eq("profile"))).andReturn("guvnor").once();
EasyMock.expect(request.getParameter(EasyMock.eq("usr"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("pwd"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("uuid"))).andReturn(uuid).once();
FormDefinitionService formService = EasyMock.createMock(FormDefinitionService.class);
TaskDefinitionService taskService = EasyMock.createMock(TaskDefinitionService.class);
EasyMock.expect(taskService.getContainingPackage(EasyMock.eq(uuid))).andReturn("somePackage").once();
FormRepresentation form = RESTAbstractTest.createMockForm("myForm", "my1Param", "my2Param");
EasyMock.expect(formService.getFormByUUID(EasyMock.eq("somePackage"), EasyMock.eq(uuid))).andReturn(form).once();
request.setAttribute(EasyMock.eq("jsonData"), EasyMock.anyObject(String.class));
EasyMock.expectLastCall().once();
RequestDispatcher dispatcher = EasyMock.createMock(RequestDispatcher.class);
dispatcher.forward(request, response);
EasyMock.expectLastCall().once();
EasyMock.expect(request.getRequestDispatcher(EasyMock.eq("/FormBuilder.jsp"))).andReturn(dispatcher);
EmbedingServlet servlet = createServlet(formService, taskService);
EasyMock.replay(request, response, formService, taskService, dispatcher);
servlet.doGet(request, response);
EasyMock.verify(request, response, formService, taskService, dispatcher);
}
public void testDoGetWrongProfile() throws Exception {
HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
HttpServletResponse response = EasyMock.createMock(HttpServletResponse.class);
EasyMock.expect(request.getParameter(EasyMock.eq("profile"))).andReturn("somethingdifferentfromguvnor").once();
EasyMock.expect(request.getParameter(EasyMock.eq("usr"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("pwd"))).andReturn(null).once();
response.sendError(EasyMock.eq(HttpServletResponse.SC_INTERNAL_SERVER_ERROR), EasyMock.anyObject(String.class));
EasyMock.expectLastCall().once();
EmbedingServlet servlet = createServlet(null, null);
EasyMock.replay(request, response);
servlet.doGet(request, response);
EasyMock.verify(request, response);
}
public void testDoGetTaskServiceProblem() throws Exception {
String uuid = UUID.randomUUID().toString();
HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
HttpServletResponse response = EasyMock.createMock(HttpServletResponse.class);
EasyMock.expect(request.getParameter(EasyMock.eq("profile"))).andReturn("guvnor").once();
EasyMock.expect(request.getParameter(EasyMock.eq("usr"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("pwd"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("uuid"))).andReturn(uuid).once();
FormDefinitionService formService = EasyMock.createMock(FormDefinitionService.class);
TaskDefinitionService taskService = EasyMock.createMock(TaskDefinitionService.class);
EasyMock.expect(taskService.getContainingPackage(EasyMock.eq(uuid))).andThrow(new TaskServiceException()).once();
response.sendError(EasyMock.eq(HttpServletResponse.SC_INTERNAL_SERVER_ERROR), EasyMock.anyObject(String.class));
EasyMock.expectLastCall().once();
EmbedingServlet servlet = createServlet(formService, taskService);
EasyMock.replay(request, response, formService, taskService);
servlet.doGet(request, response);
EasyMock.verify(request, response, formService, taskService);
}
public void testDoGetFormServiceProblem() throws Exception {
String uuid = UUID.randomUUID().toString();
HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
HttpServletResponse response = EasyMock.createMock(HttpServletResponse.class);
EasyMock.expect(request.getParameter(EasyMock.eq("profile"))).andReturn("guvnor").once();
EasyMock.expect(request.getParameter(EasyMock.eq("usr"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("pwd"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("uuid"))).andReturn(uuid).once();
FormDefinitionService formService = EasyMock.createMock(FormDefinitionService.class);
TaskDefinitionService taskService = EasyMock.createMock(TaskDefinitionService.class);
EasyMock.expect(taskService.getContainingPackage(EasyMock.eq(uuid))).andReturn("somePackage").once();
EasyMock.expect(formService.getFormByUUID(EasyMock.eq("somePackage"), EasyMock.eq(uuid))).andThrow(new FormServiceException()).once();
response.sendError(EasyMock.eq(HttpServletResponse.SC_INTERNAL_SERVER_ERROR), EasyMock.anyObject(String.class));
EasyMock.expectLastCall().once();
EmbedingServlet servlet = createServlet(formService, taskService);
EasyMock.replay(request, response, formService, taskService);
servlet.doGet(request, response);
EasyMock.verify(request, response, formService, taskService);
}
public void testDoGetEncodingProblem() throws Exception {
String uuid = UUID.randomUUID().toString();
HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
HttpServletResponse response = EasyMock.createMock(HttpServletResponse.class);
EasyMock.expect(request.getParameter(EasyMock.eq("profile"))).andReturn("guvnor").once();
EasyMock.expect(request.getParameter(EasyMock.eq("usr"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("pwd"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("uuid"))).andReturn(uuid).once();
FormDefinitionService formService = EasyMock.createMock(FormDefinitionService.class);
TaskDefinitionService taskService = EasyMock.createMock(TaskDefinitionService.class);
EasyMock.expect(taskService.getContainingPackage(EasyMock.eq(uuid))).andReturn("somePackage").once();
FormRepresentation form = RESTAbstractTest.createMockForm("myForm", "my1Param", "my2Param");
EasyMock.expect(formService.getFormByUUID(EasyMock.eq("somePackage"), EasyMock.eq(uuid))).andReturn(form).once();
FormRepresentationEncoder encoder = EasyMock.createMock(FormRepresentationEncoder.class);
EasyMock.expect(encoder.encode(EasyMock.eq(form))).andThrow(new FormEncodingException()).once();
EmbedingServlet servlet = createServlet(formService, taskService);
FormEncodingFactory.register(encoder, FormEncodingFactory.getDecoder());
response.sendError(EasyMock.eq(HttpServletResponse.SC_INTERNAL_SERVER_ERROR), EasyMock.anyObject(String.class));
EasyMock.expectLastCall().once();
EasyMock.replay(request, response, formService, taskService, encoder);
servlet.doGet(request, response);
EasyMock.verify(request, response, formService, taskService, encoder);
}
public void testDoGetUnknownProblem() throws Exception {
String uuid = UUID.randomUUID().toString();
HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
HttpServletResponse response = EasyMock.createMock(HttpServletResponse.class);
EasyMock.expect(request.getParameter(EasyMock.eq("profile"))).andReturn("guvnor").once();
EasyMock.expect(request.getParameter(EasyMock.eq("usr"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("pwd"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("uuid"))).andReturn(uuid).once();
FormDefinitionService formService = EasyMock.createMock(FormDefinitionService.class);
TaskDefinitionService taskService = EasyMock.createMock(TaskDefinitionService.class);
EasyMock.expect(taskService.getContainingPackage(EasyMock.eq(uuid))).andReturn("somePackage").once();
EasyMock.expect(formService.getFormByUUID(EasyMock.eq("somePackage"), EasyMock.eq(uuid))).andThrow(new NullPointerException()).once();
response.sendError(EasyMock.eq(HttpServletResponse.SC_INTERNAL_SERVER_ERROR), EasyMock.anyObject(String.class));
EasyMock.expectLastCall().once();
EmbedingServlet servlet = createServlet(formService, taskService);
EasyMock.replay(request, response, formService, taskService);
servlet.doGet(request, response);
EasyMock.verify(request, response, formService, taskService);
}
public void testDoPostOK() throws Exception {
HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
HttpServletResponse response = EasyMock.createMock(HttpServletResponse.class);
EasyMock.expect(request.getParameter(EasyMock.eq("profile"))).andReturn("designer").once();
EasyMock.expect(request.getParameter(EasyMock.eq("usr"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("pwd"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("userTask"))).andReturn("USER_TASK").once();
EasyMock.expect(request.getParameter(EasyMock.eq("processName"))).andReturn("PROCESS_NAME").once();
String xml = "<some><bpmn2><content/></bpmn2></some>";
BufferedReader reader = new BufferedReader(new StringReader(xml));
EasyMock.expect(request.getReader()).andReturn(reader);
FormDefinitionService formService = EasyMock.createMock(FormDefinitionService.class);
TaskDefinitionService taskService = EasyMock.createMock(TaskDefinitionService.class);
TaskRef task = new TaskRef();
task.setPackageName("somePackage");
EasyMock.expect(taskService.getBPMN2Task(EasyMock.eq(xml), EasyMock.eq("PROCESS_NAME"), EasyMock.eq("USER_TASK"))).andReturn(task).once();
FormRepresentation form = RESTAbstractTest.createMockForm("myForm", "myParam");
EasyMock.expect(formService.getAssociatedForm(EasyMock.eq("somePackage"), EasyMock.eq(task))).andReturn(form).once();
EmbedingServlet servlet = createServlet(formService, taskService);
request.setAttribute(EasyMock.eq("jsonData"), EasyMock.anyObject(String.class));
EasyMock.expectLastCall().once();
RequestDispatcher dispatcher = EasyMock.createMock(RequestDispatcher.class);
EasyMock.expect(request.getRequestDispatcher(EasyMock.eq("/FormBuilder.jsp"))).andReturn(dispatcher).once();
dispatcher.forward(request, response);
EasyMock.expectLastCall().once();
EasyMock.replay(request, response, formService, taskService, dispatcher);
servlet.doPost(request, response);
EasyMock.verify(request, response, formService, taskService, dispatcher);
}
public void testDoPostWrongProfile() throws Exception {
HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
HttpServletResponse response = EasyMock.createMock(HttpServletResponse.class);
EasyMock.expect(request.getParameter(EasyMock.eq("profile"))).andReturn("somethingdifferentfromdesigner").once();
EasyMock.expect(request.getParameter(EasyMock.eq("usr"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("pwd"))).andReturn(null).once();
response.sendError(EasyMock.eq(HttpServletResponse.SC_INTERNAL_SERVER_ERROR), EasyMock.anyObject(String.class));
EasyMock.expectLastCall().once();
EmbedingServlet servlet = createServlet(null, null);
EasyMock.replay(request, response);
servlet.doPost(request, response);
EasyMock.verify(request, response);
}
public void testDoPostNoTask() throws Exception {
HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
HttpServletResponse response = EasyMock.createMock(HttpServletResponse.class);
EasyMock.expect(request.getParameter(EasyMock.eq("profile"))).andReturn("designer").once();
EasyMock.expect(request.getParameter(EasyMock.eq("usr"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("pwd"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("userTask"))).andReturn("USER_TASK").once();
EasyMock.expect(request.getParameter(EasyMock.eq("processName"))).andReturn("PROCESS_NAME").once();
String xml = "<some><bpmn2><content/></bpmn2></some>";
BufferedReader reader = new BufferedReader(new StringReader(xml));
EasyMock.expect(request.getReader()).andReturn(reader);
FormDefinitionService formService = EasyMock.createMock(FormDefinitionService.class);
TaskDefinitionService taskService = EasyMock.createMock(TaskDefinitionService.class);
EasyMock.expect(taskService.getBPMN2Task(EasyMock.eq(xml), EasyMock.eq("PROCESS_NAME"), EasyMock.eq("USER_TASK"))).andReturn(null).once();
EmbedingServlet servlet = createServlet(formService, taskService);
request.setAttribute(EasyMock.eq("jsonData"), EasyMock.anyObject(String.class));
EasyMock.expectLastCall().once();
RequestDispatcher dispatcher = EasyMock.createMock(RequestDispatcher.class);
EasyMock.expect(request.getRequestDispatcher(EasyMock.eq("/FormBuilder.jsp"))).andReturn(dispatcher).once();
dispatcher.forward(request, response);
EasyMock.expectLastCall().once();
EasyMock.replay(request, response, formService, taskService, dispatcher);
servlet.doPost(request, response);
EasyMock.verify(request, response, formService, taskService, dispatcher);
}
public void testDoPostNoForm() throws Exception {
HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
HttpServletResponse response = EasyMock.createMock(HttpServletResponse.class);
EasyMock.expect(request.getParameter(EasyMock.eq("profile"))).andReturn("designer").once();
EasyMock.expect(request.getParameter(EasyMock.eq("usr"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("pwd"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("userTask"))).andReturn("USER_TASK").once();
EasyMock.expect(request.getParameter(EasyMock.eq("processName"))).andReturn("PROCESS_NAME").once();
String xml = "<some><bpmn2><content/></bpmn2></some>";
BufferedReader reader = new BufferedReader(new StringReader(xml));
EasyMock.expect(request.getReader()).andReturn(reader);
FormDefinitionService formService = EasyMock.createMock(FormDefinitionService.class);
TaskDefinitionService taskService = EasyMock.createMock(TaskDefinitionService.class);
TaskRef task = new TaskRef();
task.setPackageName("somePackage");
EasyMock.expect(taskService.getBPMN2Task(EasyMock.eq(xml), EasyMock.eq("PROCESS_NAME"), EasyMock.eq("USER_TASK"))).andReturn(task).once();
EasyMock.expect(formService.getAssociatedForm(EasyMock.eq("somePackage"), EasyMock.eq(task))).andReturn(null).once();
EmbedingServlet servlet = createServlet(formService, taskService);
request.setAttribute(EasyMock.eq("jsonData"), EasyMock.anyObject(String.class));
EasyMock.expectLastCall().once();
RequestDispatcher dispatcher = EasyMock.createMock(RequestDispatcher.class);
EasyMock.expect(request.getRequestDispatcher(EasyMock.eq("/FormBuilder.jsp"))).andReturn(dispatcher).once();
dispatcher.forward(request, response);
EasyMock.expectLastCall().once();
EasyMock.replay(request, response, formService, taskService, dispatcher);
servlet.doPost(request, response);
EasyMock.verify(request, response, formService, taskService, dispatcher);
}
public void testDoPostTaskServiceProblem() throws Exception {
HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
HttpServletResponse response = EasyMock.createMock(HttpServletResponse.class);
EasyMock.expect(request.getParameter(EasyMock.eq("profile"))).andReturn("designer").once();
EasyMock.expect(request.getParameter(EasyMock.eq("usr"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("pwd"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("userTask"))).andReturn("USER_TASK").once();
EasyMock.expect(request.getParameter(EasyMock.eq("processName"))).andReturn("PROCESS_NAME").once();
String xml = "<some><bpmn2><content/></bpmn2></some>";
BufferedReader reader = new BufferedReader(new StringReader(xml));
EasyMock.expect(request.getReader()).andReturn(reader);
FormDefinitionService formService = EasyMock.createMock(FormDefinitionService.class);
TaskDefinitionService taskService = EasyMock.createMock(TaskDefinitionService.class);
TaskRef task = new TaskRef();
task.setPackageName("somePackage");
EasyMock.expect(taskService.getBPMN2Task(EasyMock.eq(xml), EasyMock.eq("PROCESS_NAME"), EasyMock.eq("USER_TASK"))).
andThrow(new TaskServiceException("problem")).once();
EmbedingServlet servlet = createServlet(formService, taskService);
response.sendError(EasyMock.eq(HttpServletResponse.SC_INTERNAL_SERVER_ERROR), EasyMock.anyObject(String.class));
EasyMock.expectLastCall().once();
EasyMock.replay(request, response, formService, taskService);
servlet.doPost(request, response);
EasyMock.verify(request, response, formService, taskService);
}
public void testDoPostFormServiceProblem() throws Exception {
HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
HttpServletResponse response = EasyMock.createMock(HttpServletResponse.class);
EasyMock.expect(request.getParameter(EasyMock.eq("profile"))).andReturn("designer").once();
EasyMock.expect(request.getParameter(EasyMock.eq("usr"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("pwd"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("userTask"))).andReturn("USER_TASK").once();
EasyMock.expect(request.getParameter(EasyMock.eq("processName"))).andReturn("PROCESS_NAME").once();
String xml = "<some><bpmn2><content/></bpmn2></some>";
BufferedReader reader = new BufferedReader(new StringReader(xml));
EasyMock.expect(request.getReader()).andReturn(reader);
FormDefinitionService formService = EasyMock.createMock(FormDefinitionService.class);
TaskDefinitionService taskService = EasyMock.createMock(TaskDefinitionService.class);
TaskRef task = new TaskRef();
task.setPackageName("somePackage");
EasyMock.expect(taskService.getBPMN2Task(EasyMock.eq(xml), EasyMock.eq("PROCESS_NAME"), EasyMock.eq("USER_TASK"))).andReturn(task).once();
EasyMock.expect(formService.getAssociatedForm(EasyMock.eq("somePackage"), EasyMock.eq(task))).
andThrow(new FormServiceException("problem")).once();
EmbedingServlet servlet = createServlet(formService, taskService);
response.sendError(EasyMock.eq(HttpServletResponse.SC_INTERNAL_SERVER_ERROR), EasyMock.anyObject(String.class));
EasyMock.expectLastCall().once();
EasyMock.replay(request, response, formService, taskService);
servlet.doPost(request, response);
EasyMock.verify(request, response, formService, taskService);
}
public void testDoPostEncodingProblem() throws Exception {
HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
HttpServletResponse response = EasyMock.createMock(HttpServletResponse.class);
EasyMock.expect(request.getParameter(EasyMock.eq("profile"))).andReturn("designer").once();
EasyMock.expect(request.getParameter(EasyMock.eq("usr"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("pwd"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("userTask"))).andReturn("USER_TASK").once();
EasyMock.expect(request.getParameter(EasyMock.eq("processName"))).andReturn("PROCESS_NAME").once();
String xml = "<some><bpmn2><content/></bpmn2></some>";
BufferedReader reader = new BufferedReader(new StringReader(xml));
EasyMock.expect(request.getReader()).andReturn(reader);
FormDefinitionService formService = EasyMock.createMock(FormDefinitionService.class);
TaskDefinitionService taskService = EasyMock.createMock(TaskDefinitionService.class);
TaskRef task = new TaskRef();
task.setPackageName("somePackage");
EasyMock.expect(taskService.getBPMN2Task(EasyMock.eq(xml), EasyMock.eq("PROCESS_NAME"), EasyMock.eq("USER_TASK"))).andReturn(task).once();
FormRepresentation form = RESTAbstractTest.createMockForm("myForm", "myParam");
EasyMock.expect(formService.getAssociatedForm(EasyMock.eq("somePackage"), EasyMock.eq(task))).andReturn(form).once();
FormRepresentationEncoder encoder = EasyMock.createMock(FormRepresentationEncoder.class);
EasyMock.expect(encoder.encode(EasyMock.eq(form))).andThrow(new FormEncodingException()).once();
EmbedingServlet servlet = createServlet(formService, taskService);
FormEncodingFactory.register(encoder, FormEncodingFactory.getDecoder());
response.sendError(EasyMock.eq(HttpServletResponse.SC_INTERNAL_SERVER_ERROR), EasyMock.anyObject(String.class));
EasyMock.expectLastCall().once();
EasyMock.replay(request, response, formService, taskService, encoder);
servlet.doPost(request, response);
EasyMock.verify(request, response, formService, taskService, encoder);
}
public void testDoPostUnknownProblem() throws Exception {
HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
HttpServletResponse response = EasyMock.createMock(HttpServletResponse.class);
EasyMock.expect(request.getParameter(EasyMock.eq("profile"))).andReturn("designer").once();
EasyMock.expect(request.getParameter(EasyMock.eq("usr"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("pwd"))).andReturn(null).once();
EasyMock.expect(request.getParameter(EasyMock.eq("userTask"))).andReturn("USER_TASK").once();
EasyMock.expect(request.getParameter(EasyMock.eq("processName"))).andReturn("PROCESS_NAME").once();
String xml = "<some><bpmn2><content/></bpmn2></some>";
BufferedReader reader = new BufferedReader(new StringReader(xml));
EasyMock.expect(request.getReader()).andReturn(reader);
FormDefinitionService formService = EasyMock.createMock(FormDefinitionService.class);
TaskDefinitionService taskService = EasyMock.createMock(TaskDefinitionService.class);
TaskRef task = new TaskRef();
task.setPackageName("somePackage");
EasyMock.expect(taskService.getBPMN2Task(EasyMock.eq(xml), EasyMock.eq("PROCESS_NAME"), EasyMock.eq("USER_TASK"))).
andThrow(new NullPointerException()).once();
EmbedingServlet servlet = createServlet(formService, taskService);
response.sendError(EasyMock.eq(HttpServletResponse.SC_INTERNAL_SERVER_ERROR), EasyMock.anyObject(String.class));
EasyMock.expectLastCall().once();
EasyMock.replay(request, response, formService, taskService);
servlet.doPost(request, response);
EasyMock.verify(request, response, formService, taskService);
}
private EmbedingServlet createServlet(final FormDefinitionService formService, final TaskDefinitionService taskService) {
return new EmbedingServlet() {
private static final long serialVersionUID = 1L;
@Override
protected FormDefinitionService createFormService(HttpServletRequest request, String usr, String pwd) {
return formService;
}
@Override
protected TaskDefinitionService createTaskService(HttpServletRequest request, String usr, String pwd) {
return taskService;
}
};
}
}