package org.jbpm.formbuilder.server.task; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; import javax.xml.bind.JAXBException; import junit.framework.TestCase; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.methods.DeleteMethod; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.methods.PutMethod; import org.apache.commons.io.IOUtils; import org.easymock.EasyMock; import org.jbpm.formbuilder.server.GuvnorHelper; import org.jbpm.formbuilder.server.mock.MockAnswer; import org.jbpm.formbuilder.server.mock.MockDeleteMethod; import org.jbpm.formbuilder.server.mock.MockGetMethod; import org.jbpm.formbuilder.server.mock.MockPostMethod; import org.jbpm.formbuilder.server.mock.MockPutMethod; import org.jbpm.formbuilder.shared.task.TaskRef; import org.jbpm.formbuilder.shared.task.TaskServiceException; public class GuvnorTaskDefinitionServiceTest extends TestCase { private String baseUrl = "http://www.redhat.com"; private GuvnorHelper helper = new GuvnorHelper(baseUrl, "", ""); public void testGetProcessTasks() throws Exception { GuvnorTaskDefinitionService service = createService(baseUrl, "", ""); String bpmn2Content = IOUtils.toString(getClass().getResourceAsStream("GuvnorGetProcessTasksTest.bpmn2")); List<TaskRef> tasks = service.getProcessTasks(bpmn2Content, "GuvnorGetProcessTasksTest.bpmn2"); assertNotNull("tasks shouldn't be null", tasks); assertTrue("tasks should contain 6 elements", tasks.size() == 6); } public void testQueryOK() throws Exception { GuvnorTaskDefinitionService service = createService(baseUrl, "", ""); HttpClient client = EasyMock.createMock(HttpClient.class); Map<String, String> responses = new HashMap<String, String>(); StringBuilder props = new StringBuilder(); props.append("sampleProcess1.bpmn2=AAAAA\n"); props.append("anotherThing.txt=AAAAA\n"); props.append("sampleProcess2.bpmn2=AAAAA\n"); responses.put("GET " + helper.getApiSearchUrl("somePackage"), props.toString()); String process1Content = IOUtils.toString(getClass().getResourceAsStream("GuvnorGetProcessTasksTest.bpmn2")); String process2Content = IOUtils.toString(getClass().getResourceAsStream("GuvnorGetProcessTasksTest2.bpmn2")); responses.put("GET " + helper.getApiSearchUrl("somePackage") + "sampleProcess1.bpmn2", process1Content); responses.put("GET " + helper.getApiSearchUrl("somePackage") + "sampleProcess2.bpmn2", process2Content); EasyMock.expect(client.executeMethod(EasyMock.isA(MockGetMethod.class))). andAnswer(new MockAnswer(responses, new IllegalArgumentException("unexpected call"))).times(3); service.getHelper().setClient(client); EasyMock.replay(client); List<TaskRef> tasks = service.query("somePackage", ""); EasyMock.verify(client); assertNotNull("tasks shouldn't be null", tasks); assertFalse("tasks shouldn't be empty", tasks.isEmpty()); for (TaskRef sampleTask : tasks) { assertNotNull("sampleTask shouldn't be null", sampleTask); assertNotNull("processId shouldn't be null", sampleTask.getProcessId()); assertFalse("processId shouldn't be empty", "".equals(sampleTask.getProcessId())); assertNotNull("taskId shouldn't be null", sampleTask.getTaskId()); assertFalse("taskId shouldn't be empty", "".equals(sampleTask.getTaskId())); } } public void testQueryOKEmptyProcess() throws Exception { GuvnorTaskDefinitionService service = createService(baseUrl, "", ""); HttpClient client = EasyMock.createMock(HttpClient.class); Map<String, String> responses = new HashMap<String, String>(); StringBuilder props = new StringBuilder(); props.append("sampleProcess1.bpmn2=AAAAA\n"); props.append("anotherThing.txt=AAAAA\n"); props.append("sampleProcess2.bpmn2=AAAAA\n"); responses.put("GET " + helper.getApiSearchUrl("somePackage"), props.toString()); String process2Content = IOUtils.toString(getClass().getResourceAsStream("GuvnorGetProcessTasksTest2.bpmn2")); responses.put("GET " + helper.getApiSearchUrl("somePackage") + "sampleProcess1.bpmn2", ""); responses.put("GET " + helper.getApiSearchUrl("somePackage") + "sampleProcess2.bpmn2", process2Content); EasyMock.expect(client.executeMethod(EasyMock.isA(MockGetMethod.class))). andAnswer(new MockAnswer(responses, new IllegalArgumentException("unexpected call"))).times(3); service.getHelper().setClient(client); EasyMock.replay(client); List<TaskRef> tasks = service.query("somePackage", ""); EasyMock.verify(client); assertNotNull("tasks shouldn't be null", tasks); assertFalse("tasks shouldn't be empty", tasks.isEmpty()); for (TaskRef sampleTask : tasks) { assertNotNull("sampleTask shouldn't be null", sampleTask); assertNotNull("processId shouldn't be null", sampleTask.getProcessId()); assertFalse("processId shouldn't be empty", "".equals(sampleTask.getProcessId())); assertNotNull("taskId shouldn't be null", sampleTask.getTaskId()); assertFalse("taskId shouldn't be empty", "".equals(sampleTask.getTaskId())); } } public void testQueryOKWithFilter() throws Exception { GuvnorTaskDefinitionService service = createService(baseUrl, "", ""); HttpClient client = EasyMock.createMock(HttpClient.class); Map<String, String> responses = new HashMap<String, String>(); StringBuilder props = new StringBuilder(); props.append("sampleProcess1.bpmn2=AAAAA\n"); props.append("anotherThing.txt=AAAAA\n"); props.append("sampleProcess2.bpmn2=AAAAA\n"); responses.put("GET " + helper.getApiSearchUrl("somePackage"), props.toString()); String process1Content = IOUtils.toString(getClass().getResourceAsStream("GuvnorGetProcessTasksTest.bpmn2")); String process2Content = IOUtils.toString(getClass().getResourceAsStream("GuvnorGetProcessTasksTest2.bpmn2")); responses.put("GET " + helper.getApiSearchUrl("somePackage") + "sampleProcess1.bpmn2", process1Content); responses.put("GET " + helper.getApiSearchUrl("somePackage") + "sampleProcess2.bpmn2", process2Content); EasyMock.expect(client.executeMethod(EasyMock.isA(MockGetMethod.class))). andAnswer(new MockAnswer(responses, new IllegalArgumentException("unexpected call"))).times(3); service.getHelper().setClient(client); EasyMock.replay(client); String filter = "Review"; List<TaskRef> tasks = service.query("somePackage", filter); EasyMock.verify(client); assertNotNull("tasks shouldn't be null", tasks); assertFalse("tasks shouldn't be empty", tasks.isEmpty()); for (TaskRef sampleTask : tasks) { assertNotNull("sampleTask shouldn't be null", sampleTask); assertNotNull("processId shouldn't be null", sampleTask.getProcessId()); assertFalse("processId shouldn't be empty", "".equals(sampleTask.getProcessId())); assertNotNull("taskId shouldn't be null", sampleTask.getTaskId()); assertFalse("taskId shouldn't be empty", "".equals(sampleTask.getTaskId())); assertTrue("taskId or processId should contain filter", sampleTask.getTaskId().contains(filter) || sampleTask.getProcessId().contains(filter)); } } public void testQueryIOProblem() throws Exception { GuvnorTaskDefinitionService service = createService(baseUrl, "", ""); HttpClient client = EasyMock.createMock(HttpClient.class); IOException exception = new IOException("mock io error"); EasyMock.expect(client.executeMethod(EasyMock.isA(MockGetMethod.class))).andThrow(exception).once(); service.getHelper().setClient(client); EasyMock.replay(client); try { service.query("somePackage", ""); fail ("query(...) should not succeed"); } catch (TaskServiceException e) { assertNotNull("e shouldn't be null", e); Throwable cause = e.getCause(); assertNotNull("cause shouldn't be null", cause); assertTrue("cause should be of type IOException", cause instanceof IOException); } EasyMock.verify(client); } public void testQueryUnknownProblem() throws Exception { GuvnorTaskDefinitionService service = createService(baseUrl, "", ""); HttpClient client = EasyMock.createMock(HttpClient.class); EasyMock.expect(client.executeMethod(EasyMock.isA(MockGetMethod.class))).andThrow(new NullPointerException()).once(); service.getHelper().setClient(client); EasyMock.replay(client); try { service.query("somePackage", ""); fail ("query(...) should not succeed"); } catch (TaskServiceException e) { assertNotNull("e shouldn't be null", e); Throwable cause = e.getCause(); assertNotNull("cause shouldn't be null", cause); assertTrue("cause should be of type NullPointerException", cause instanceof NullPointerException); } EasyMock.verify(client); } public void testGetTasksByNameOK() throws Exception { GuvnorTaskDefinitionService service = createService(baseUrl, "", ""); HttpClient client = EasyMock.createMock(HttpClient.class); Map<String, String> responses = new HashMap<String, String>(); String xml1 = "<collection><package><title>somePackage</title>" + "<assets>" + helper.getRestBaseUrl() + "somePackage/assets/sampleProcess1</assets>" + "<assets>" + helper.getRestBaseUrl() + "somePackage/assets/sampleProcess2</assets>" + "</package></collection>"; String xml2 = "<asset><sourceLink>" + helper.getRestBaseUrl() + "somePackage/assets/sampleProcess1/source" + "</sourceLink><metadata><format>bpmn2</format></metadata></asset>"; String xml3 = "<asset><sourceLink>" + helper.getRestBaseUrl() + "somePackage/assets/sampleProcess2/source" + "</sourceLink><metadata><format>bpmn2</format></metadata></asset>"; String process1Content = IOUtils.toString(getClass().getResourceAsStream("GuvnorGetProcessTasksTest.bpmn2")); String process2Content = IOUtils.toString(getClass().getResourceAsStream("GuvnorGetProcessTasksTest2.bpmn2")); responses.put("GET " + helper.getRestBaseUrl(), xml1); responses.put("GET " + helper.getRestBaseUrl() + "somePackage/assets/sampleProcess1", xml2); responses.put("GET " + helper.getRestBaseUrl() + "somePackage/assets/sampleProcess2", xml3); responses.put("GET " + helper.getRestBaseUrl() + "somePackage/assets/sampleProcess1/source", process1Content); responses.put("GET " + helper.getRestBaseUrl() + "somePackage/assets/sampleProcess2/source", process2Content); EasyMock.expect(client.executeMethod(EasyMock.isA(MockGetMethod.class))). andAnswer(new MockAnswer(responses, new IllegalArgumentException("unexpected call"))).times(5); service.getHelper().setClient(client); String taskId = "Review"; String processId = "com.sample.humantask"; EasyMock.replay(client); List<TaskRef> tasks = service.getTasksByName("somePackage", processId, taskId); EasyMock.verify(client); assertNotNull("tasks shouldn't be null", tasks); assertEquals("tasks should have one item", tasks.size(), 1); TaskRef task = tasks.iterator().next(); assertNotNull("sampleTask shouldn't be null", task); assertNotNull("processId shouldn't be null", task.getProcessId()); assertFalse("processId shouldn't be empty", "".equals(task.getProcessId())); assertNotNull("taskId shouldn't be null", task.getTaskId()); assertFalse("taskId shouldn't be empty", "".equals(task.getTaskId())); assertEquals("taskId should be the same as task.taskId", task.getTaskId(), taskId); assertEquals("processId should be the same as task.processId", task.getProcessId(), processId); } public void testGetTasksByNameJAXBProblem() throws Exception { GuvnorTaskDefinitionService service = createService(baseUrl, "", ""); HttpClient client = EasyMock.createMock(HttpClient.class); Map<String, String> responses = new HashMap<String, String>(); String xml1 = "<collection><package><title>somePackage</title>" + "<assets>" + helper.getRestBaseUrl() + "somePackage/assets/sampleProcess1</assetsBROKEN_XML>"; responses.put("GET " + helper.getRestBaseUrl(), xml1); EasyMock.expect(client.executeMethod(EasyMock.isA(MockGetMethod.class))). andAnswer(new MockAnswer(responses, new IllegalArgumentException("unexpected call"))).once(); service.getHelper().setClient(client); String taskId = "Review"; String processId = "com.sample.humantask"; EasyMock.replay(client); try { service.getTasksByName("somePackage", processId, taskId); fail("getTasksByName(...) should not succeed"); } catch (TaskServiceException e) { assertNotNull("e shouldn't be null", e); Throwable cause = e.getCause(); assertNotNull("cause shouldn't be null", cause); assertTrue("cause should be of type JAXBException", cause instanceof JAXBException); } EasyMock.verify(client); } public void testGetTasksByNameIOProblem() throws Exception { GuvnorTaskDefinitionService service = createService(baseUrl, "", ""); HttpClient client = EasyMock.createMock(HttpClient.class); EasyMock.expect(client.executeMethod(EasyMock.isA(MockGetMethod.class))).andThrow(new IOException("mock io error")).once(); service.getHelper().setClient(client); String taskId = "Review"; String processId = "com.sample.humantask"; EasyMock.replay(client); try { service.getTasksByName("somePackage", processId, taskId); fail("getTasksByName(...) should not succeed"); } catch (TaskServiceException e) { assertNotNull("e shouldn't be null", e); Throwable cause = e.getCause(); assertNotNull("cause shouldn't be null", cause); assertTrue("cause should be of type IOException", cause instanceof IOException); } EasyMock.verify(client); } public void testGetTasksByNameUnknownProblem() throws Exception { GuvnorTaskDefinitionService service = createService(baseUrl, "", ""); HttpClient client = EasyMock.createMock(HttpClient.class); EasyMock.expect(client.executeMethod(EasyMock.isA(MockGetMethod.class))).andThrow(new NullPointerException()).once(); service.getHelper().setClient(client); String taskId = "Review"; String processId = "com.sample.humantask"; EasyMock.replay(client); try { service.getTasksByName("somePackage", processId, taskId); fail("getTasksByName(...) should not succeed"); } catch (TaskServiceException e) { assertNotNull("e shouldn't be null", e); Throwable cause = e.getCause(); assertNotNull("cause shouldn't be null", cause); assertTrue("cause should be of type NullPointerException", cause instanceof NullPointerException); } EasyMock.verify(client); } public void testGetContainingPackageOK() throws Exception { String uuid1 = UUID.randomUUID().toString(); String uuid2 = UUID.randomUUID().toString(); GuvnorTaskDefinitionService service = createService(baseUrl, "", ""); HttpClient client = EasyMock.createMock(HttpClient.class); Map<String, String> responses = new HashMap<String, String>(); String xml1 = "<collection><package><title>somePackage</title>" + "<assets>" + helper.getRestBaseUrl() + "somePackage/assets/sampleProcess1</assets>" + "<assets>" + helper.getRestBaseUrl() + "somePackage/assets/sampleProcess2</assets>" + "<metadata><uuid>" + uuid1 + "</uuid></metadata>" + "</package></collection>"; String xml2 = "<asset><sourceLink>" + helper.getRestBaseUrl() + "somePackage/assets/sampleProcess1/source" + "</sourceLink><metadata><format>bpmn2</format><uuid>somethingelse</uuid></metadata></asset>"; String xml3 = "<asset><sourceLink>" + helper.getRestBaseUrl() + "somePackage/assets/sampleProcess2/source" + "</sourceLink><metadata><format>bpmn2</format><uuid>" + uuid2 + "</uuid></metadata></asset>"; responses.put("GET " + helper.getRestBaseUrl(), xml1); responses.put("GET " + helper.getRestBaseUrl() + "somePackage/assets/sampleProcess1", xml2); responses.put("GET " + helper.getRestBaseUrl() + "somePackage/assets/sampleProcess2", xml3); EasyMock.expect(client.executeMethod(EasyMock.isA(MockGetMethod.class))). andAnswer(new MockAnswer(responses, new IllegalArgumentException("unexpected call"))).times(3); service.getHelper().setClient(client); EasyMock.replay(client); String packageName = service.getContainingPackage(uuid2); EasyMock.verify(client); assertNotNull("packageName shouldn't be null", packageName); assertEquals("packageName should be somePackage", packageName, "somePackage"); } public void testGetContainingPackageJAXBProblem() throws Exception { String uuid1 = UUID.randomUUID().toString(); GuvnorTaskDefinitionService service = createService(baseUrl, "", ""); HttpClient client = EasyMock.createMock(HttpClient.class); Map<String, String> responses = new HashMap<String, String>(); String xml1 = "<collection><package><title>somePackage</title>" + "<assets>" + helper.getRestBaseUrl() + "somePackage/assets/sampleProcess1</assetsBROKEN_XML>"; responses.put("GET " + helper.getRestBaseUrl(), xml1); EasyMock.expect(client.executeMethod(EasyMock.isA(MockGetMethod.class))). andAnswer(new MockAnswer(responses, new IllegalArgumentException("unexpected call"))).once(); service.getHelper().setClient(client); EasyMock.replay(client); try { service.getContainingPackage(uuid1); fail("getContainingPackage(...) should not succeed"); } catch (TaskServiceException e) { assertNotNull("e shouldn't be null", e); Throwable cause = e.getCause(); assertNotNull("cause shouldn't be null", cause); assertTrue("cause should be of type JAXBException", cause instanceof JAXBException); } EasyMock.verify(client); } public void testGetContainingPackageIOProblem() throws Exception { GuvnorTaskDefinitionService service = createService(baseUrl, "", ""); HttpClient client = EasyMock.createMock(HttpClient.class); EasyMock.expect(client.executeMethod(EasyMock.isA(MockGetMethod.class))).andThrow(new IOException("mock io error")).once(); service.getHelper().setClient(client); EasyMock.replay(client); try { service.getContainingPackage(UUID.randomUUID().toString()); fail("getContainingPackage(...) should not succeed"); } catch (TaskServiceException e) { assertNotNull("e shouldn't be null", e); Throwable cause = e.getCause(); assertNotNull("cause shouldn't be null", cause); assertTrue("cause should be of type IOException", cause instanceof IOException); } EasyMock.verify(client); } public void testGetContainingPackageUnkownProblem() throws Exception { GuvnorTaskDefinitionService service = createService(baseUrl, "", ""); HttpClient client = EasyMock.createMock(HttpClient.class); EasyMock.expect(client.executeMethod(EasyMock.isA(MockGetMethod.class))).andThrow(new NullPointerException()).once(); service.getHelper().setClient(client); EasyMock.replay(client); try { service.getContainingPackage(UUID.randomUUID().toString()); fail("getContainingPackage(...) should not succeed"); } catch (TaskServiceException e) { assertNotNull("e shouldn't be null", e); Throwable cause = e.getCause(); assertNotNull("cause shouldn't be null", cause); assertTrue("cause should be of type NullPointerException", cause instanceof NullPointerException); } EasyMock.verify(client); } public void testGetTaskByUUIDOK() throws Exception { String uuid1 = UUID.randomUUID().toString(); GuvnorTaskDefinitionService service = createService(baseUrl, "", ""); HttpClient client = EasyMock.createMock(HttpClient.class); Map<String, String> responses = new HashMap<String, String>(); String xml1 = "<collection><package><title>somePackage</title>" + "<assets>" + helper.getRestBaseUrl() + "somePackage/assets/sampleProcess1</assets>" + "<assets>" + helper.getRestBaseUrl() + "somePackage/assets/sampleProcess2</assets>" + "</package></collection>"; String xml2 = "<asset><sourceLink>" + helper.getRestBaseUrl() + "somePackage/assets/sampleProcess1/source" + "</sourceLink><metadata><format>bpmn2</format><uuid>somethingelse</uuid></metadata></asset>"; String xml3 = "<asset><sourceLink>" + helper.getRestBaseUrl() + "somePackage/assets/sampleProcess2/source" + "</sourceLink><metadata><format>bpmn2</format><uuid>" + uuid1 + "</uuid></metadata></asset>"; String process2Content = IOUtils.toString(getClass().getResourceAsStream("GuvnorGetProcessTasksTest.bpmn2")); responses.put("GET " + helper.getRestBaseUrl(), xml1); responses.put("GET " + helper.getRestBaseUrl() + "somePackage/assets/sampleProcess1", xml2); responses.put("GET " + helper.getRestBaseUrl() + "somePackage/assets/sampleProcess2", xml3); responses.put("GET " + helper.getRestBaseUrl() + "somePackage/assets/sampleProcess2/source", process2Content); EasyMock.expect(client.executeMethod(EasyMock.isA(MockGetMethod.class))). andAnswer(new MockAnswer(responses, new IllegalArgumentException("unexpected call"))).times(4); service.getHelper().setClient(client); String taskId = "Review"; EasyMock.replay(client); TaskRef task = service.getTaskByUUID("somePackage", taskId, uuid1); EasyMock.verify(client); assertNotNull("task shouldn't be null", task); assertNotNull("processId shouldn't be null", task.getProcessId()); assertFalse("processId shouldn't be empty", "".equals(task.getProcessId())); assertNotNull("taskId shouldn't be null", task.getTaskId()); assertFalse("taskId shouldn't be empty", "".equals(task.getTaskId())); assertEquals("taskId should be the same as task.taskId", task.getTaskId(), taskId); } public void testGetTaskByUUIDJAXBProblem() throws Exception { String uuid1 = UUID.randomUUID().toString(); GuvnorTaskDefinitionService service = createService(baseUrl, "", ""); HttpClient client = EasyMock.createMock(HttpClient.class); Map<String, String> responses = new HashMap<String, String>(); String xml1 = "<collection><package><title>somePackage</title>" + "<assets>" + helper.getRestBaseUrl() + "somePackage/assets/sampleProcess1</assets>" + "<assets>" + helper.getRestBaseUrl() + "somePackage/assets/sampleProcess2</assetsBROKEN_XML>"; responses.put("GET " + helper.getRestBaseUrl(), xml1); EasyMock.expect(client.executeMethod(EasyMock.isA(MockGetMethod.class))). andAnswer(new MockAnswer(responses, new IllegalArgumentException("unexpected call"))).once(); service.getHelper().setClient(client); EasyMock.replay(client); try { service.getTaskByUUID("somePackage", "Review", uuid1); fail("getTaskByUUID(...) should not succeed"); } catch (TaskServiceException e) { assertNotNull("e shouldn't be null", e); Throwable cause = e.getCause(); assertNotNull("cause shouldn't be null", cause); assertTrue("cause should be of type JAXBException", cause instanceof JAXBException); } EasyMock.verify(client); } public void testGetTaskByUUIDIOProblem() throws Exception { String uuid1 = UUID.randomUUID().toString(); GuvnorTaskDefinitionService service = createService(baseUrl, "", ""); HttpClient client = EasyMock.createMock(HttpClient.class); EasyMock.expect(client.executeMethod(EasyMock.isA(MockGetMethod.class))).andThrow(new IOException("mock io error")).once(); service.getHelper().setClient(client); EasyMock.replay(client); try { service.getTaskByUUID("somePackage", "Review", uuid1); fail("getTaskByUUID(...) should not succeed"); } catch (TaskServiceException e) { assertNotNull("e shouldn't be null", e); Throwable cause = e.getCause(); assertNotNull("cause shouldn't be null", cause); assertTrue("cause should be of type IOException", cause instanceof IOException); } EasyMock.verify(client); } public void testGetTaskByUUIDUnknownProblem() throws Exception { String uuid1 = UUID.randomUUID().toString(); GuvnorTaskDefinitionService service = createService(baseUrl, "", ""); HttpClient client = EasyMock.createMock(HttpClient.class); EasyMock.expect(client.executeMethod(EasyMock.isA(MockGetMethod.class))).andThrow(new NullPointerException()).once(); service.getHelper().setClient(client); EasyMock.replay(client); try { service.getTaskByUUID("somePackage", "Review", uuid1); fail("getTaskByUUID(...) should not succeed"); } catch (TaskServiceException e) { assertNotNull("e shouldn't be null", e); Throwable cause = e.getCause(); assertNotNull("cause shouldn't be null", cause); assertTrue("cause should be of type NullPointerException", cause instanceof NullPointerException); } EasyMock.verify(client); } public void testGetBPMN2TaskOK() throws Exception { GuvnorTaskDefinitionService service = createService(baseUrl, "", ""); String process1Content = IOUtils.toString(getClass().getResourceAsStream("GuvnorGetProcessTasksTest.bpmn2")); String processName = "testProcess.bpmn2"; String taskName = "Review"; TaskRef task = service.getBPMN2Task(process1Content, processName, taskName); assertNotNull("task shouldn't be null", task); assertNotNull("task.taskId shouldn't be null", task.getTaskId()); assertNotNull("task.processId shouldn't be null", task.getProcessId()); assertEquals("task.taskName should be the same as taskName", taskName, task.getTaskName()); } public void testGetBPMN2TaskInvalidProcess() throws Exception { GuvnorTaskDefinitionService service = createService(baseUrl, "", ""); String process1Content = ""; String processId = "AFileThatDoesntBelongHere.txt"; String taskId = "Review"; TaskRef task = service.getBPMN2Task(process1Content, processId, taskId); assertNull("task should be null", task); } public void testGetBPMN2TaskNoTasks() throws Exception { GuvnorTaskDefinitionService service = createService(baseUrl, "", ""); String process1Content = IOUtils.toString(getClass().getResourceAsStream("GuvnorGetProcessTasksTest2.bpmn2")); String processId = "testProcess.bpmn2"; String taskId = "ATaskThatDoesntExist"; TaskRef task = service.getBPMN2Task(process1Content, processId, taskId); assertNull("task should be null", task); } private GuvnorTaskDefinitionService createService(String baseUrl, String user, String password) { GuvnorTaskDefinitionService service = new GuvnorTaskDefinitionService(); service.setHelper(new GuvnorHelper(baseUrl, user, password) { @Override public GetMethod createGetMethod(String url) { return new MockGetMethod(url); } @Override public PostMethod createPostMethod(String url) { return new MockPostMethod(url); } @Override public DeleteMethod createDeleteMethod(String url) { return new MockDeleteMethod(url); } @Override public PutMethod createPutMethod(String url) { return new MockPutMethod(url); } }); return service; } }