/* * Copyright 2015 Red Hat, Inc. and/or its affiliates. * * 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.kie.karaf.itest.util; import java.lang.reflect.Field; import com.github.tomakehurst.wiremock.WireMockServer; import org.junit.runner.notification.RunNotifier; import org.junit.runners.model.InitializationError; import org.ops4j.pax.exam.junit.PaxExam; import static com.github.tomakehurst.wiremock.client.WireMock.*; import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.*; /** * Special extension to PaxExam JUNit runner to allow use of static server to return fixed responses to easily test * kie server client operations instead of relying on fully configured KieServer instance to be available for the tests. * * Since actual test runs within Karaf, bootstrapping server as part of beforeClass won't work as that is already in Karaf and thus will require * lots of dependencies and bundles. * * Note: There is some code duplication for testing all supported formats (JAXB, JSON, XSTREAM) and some might think that PaxExamParameterized * would be great fix to avoid this duplication. The issue with this approach is that we use static server that returns single content * and by that we only supports one format at a time. Since PaxExamParametrized is just a wrapper on top of actual Runner we cannot get hold * of parameters that are going to be used for given test. Thus relying on default one with some test duplication that changes the format to be used. */ public class PaxExamWithWireMock extends PaxExam { private WireMockServer wireMockServer; private Class<?> clazz; private Integer port; private String host; private String type; public PaxExamWithWireMock(Class<?> klass) throws InitializationError { super(klass); this.clazz = klass; port = (Integer) getFieldValue("PORT"); host = (String) getFieldValue("HOST"); type = (String) getFieldValue("TYPE"); } @Override public void run(RunNotifier notifier) { this.wireMockServer = new WireMockServer(wireMockConfig().bindAddress(host).port(port)); this.wireMockServer.start(); if ("xstream".equals(type)) { setupMockServerXStream(); } else if ("jaxb".equals(type)) { setupMockServerXML(); } else if ("json".equals(type)) { setupMockServerJSON(); } System.out.println("WireMock server started and bound to localhost:" + port); super.run(notifier); this.wireMockServer.stop(); } protected Object getFieldValue(String name) { try { Field f = clazz.getField(name); f.setAccessible(true); return f.get(null); } catch (Exception e) { return null; } } public void setupMockServerXML() { configureFor("localhost", port); stubFor(get(urlEqualTo("/")) .withHeader("Accept", equalTo("application/xml")) .willReturn(aResponse() .withStatus(200) .withHeader("Content-Type", "application/xml") .withBody("<response type=\"SUCCESS\" msg=\"Kie Server info\">\n" + " <kie-server-info>\n" + " <capabilities>KieServer</capabilities>\n" + " <capabilities>BRM</capabilities>\n" + " <capabilities>BPM</capabilities>\n" + " <location>http://localhost:"+ port + "/kie-server/services/rest/server</location>\n" + " <name>kie-server</name>\n" + " <id>generated-id-kie-server</id>\n" + " <version>1.2.3</version>\n" + " </kie-server-info>\n" + "</response>"))); stubFor(get(urlEqualTo("/containers")) .withHeader("Accept", equalTo("application/xml")) .willReturn(aResponse() .withStatus(200) .withHeader("Content-Type", "application/xml") .withBody("<response type=\"SUCCESS\" msg=\"List of created containers\">\n" + " <kie-containers>\n" + " <kie-container container-id=\"evaluationproject\" status=\"STARTED\">\n" + " <release-id>\n" + " <artifact-id>Evaluation</artifact-id>\n" + " <group-id>org.jbpm</group-id>\n" + " <version>1.0</version>\n" + " </release-id>\n" + " <resolved-release-id>\n" + " <artifact-id>Evaluation</artifact-id>\n" + " <group-id>org.jbpm</group-id>\n" + " <version>1.0</version>\n" + " </resolved-release-id>\n" + " </kie-container>\n" + " </kie-containers>\n" + "</response>"))); stubFor(get(urlPathEqualTo("/queries/processes/definitions")) .withQueryParam("page", equalTo("0")) .withQueryParam("pageSize", equalTo("10")) .withHeader("Accept", equalTo("application/xml")) .willReturn(aResponse() .withStatus(200) .withHeader("Content-Type", "application/xml") .withBody("<process-definitions>\n" + " <processes>\n" + " <process-id>evaluation</process-id>\n" + " <process-name>Evaluation</process-name>\n" + " <process-version>1</process-version>\n" + " <package>Evaluation.src.main.resources</package>\n" + " <container-id>evaluationproject</container-id>\n" + " </processes>" + "</process-definitions>"))); stubFor(get(urlEqualTo("/containers/evaluationproject/processes/definitions/evaluation")) .withHeader("Accept", equalTo("application/xml")) .willReturn(aResponse() .withStatus(200) .withHeader("Content-Type", "application/xml") .withBody("<process-definition>\n" + " <process-id>evaluation</process-id>\n" + " <process-name>Evaluation</process-name>\n" + " <process-version>1</process-version>\n" + " <package>Evaluation.src.main.resources</package>\n" + " <container-id>evaluationproject</container-id>\n" + " <associated-entities>\n" + " <entry>\n" + " <key>PM Evaluation</key>\n" + " <value>\n" + " <item>PM</item>\n" + " </value>\n" + " </entry>\n" + " <entry>\n" + " <key>HR Evaluation</key>\n" + " <value>\n" + " <item>HR</item>\n" + " </value>\n" + " </entry>\n" + " <entry>\n" + " <key>Self Evaluation</key>\n" + " <value>\n" + " <item>#{employee}</item>\n" + " </value>\n" + " </entry>\n" + " </associated-entities>\n" + " <service-tasks/>\n" + " <process-variables>\n" + " <entry>\n" + " <key>reason</key>\n" + " <value>java.lang.String</value>\n" + " </entry>\n" + " <entry>\n" + " <key>performance</key>\n" + " <value>java.lang.String</value>\n" + " </entry>\n" + " <entry>\n" + " <key>employee</key>\n" + " <value>java.lang.String</value>\n" + " </entry>\n" + " </process-variables>\n" + " <process-subprocesses/>\n" + "</process-definition>"))); stubFor(post(urlEqualTo("/containers/evaluationproject/processes/evaluation/instances")) .withHeader("Accept", equalTo("application/xml")) .willReturn(aResponse() .withStatus(200) .withHeader("Content-Type", "application/xml") .withBody("<long-type>\n" + " <value>2</value>\n" + "</long-type>"))); stubFor(get(urlPathEqualTo("/queries/tasks/instances")) .withQueryParam("page", equalTo("0")) .withQueryParam("pageSize", equalTo("10")) .withHeader("Accept", equalTo("application/xml")) .willReturn(aResponse() .withStatus(200) .withHeader("Content-Type", "application/xml") .withBody("<task-summary-list>\n" + " <task-summary>\n" + " <task-id>4</task-id>\n" + " <task-name>Self Evaluation</task-name>\n" + " <task-description>Please perform a self-evalutation.</task-description>\n" + " <task-status>Reserved</task-status>\n" + " <task-priority>0</task-priority>\n" + " <task-actual-owner>maciek</task-actual-owner>\n" + " <task-created-by>maciek</task-created-by>\n" + " <task-created-on>2015-08-03T13:34:17.774+02:00</task-created-on>\n" + " <task-activation-time>2015-08-03T13:34:17.774+02:00</task-activation-time>\n" + " <task-proc-inst-id>2</task-proc-inst-id>\n" + " <task-proc-def-id>evaluation</task-proc-def-id>\n" + " <task-container-id>evaluationproject</task-container-id>\n" + " <task-parent-id>-1</task-parent-id>\n" + " </task-summary>" + "</task-summary-list>"))); stubFor(put(urlEqualTo("/containers/evaluationproject/tasks/4/states/started")) .withHeader("Accept", equalTo("application/xml")) .willReturn(aResponse() .withStatus(201) .withHeader("Content-Type", "application/xml") .withBody(""))); stubFor(put(urlEqualTo("/containers/evaluationproject/tasks/4/states/completed")) .withHeader("Accept", equalTo("application/xml")) .willReturn(aResponse() .withStatus(201) .withHeader("Content-Type", "application/xml") .withBody(""))); stubFor(post(urlEqualTo("/containers/instances/evaluationproject")) .withHeader("Accept", equalTo("application/xml")) .willReturn(aResponse() .withStatus(200) .withHeader("Content-Type", "application/xml") .withBody("<response type=\"SUCCESS\" msg=\"Container evaluationproject successfully called.\">\n" + " <results><?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n" + "<execution-results>\n" + " <results>\n" + " <item key=\"person\">\n" + " <value xsi:type=\"xs:string\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">john</value>\n" + " </item>\n" + " </results>\n" + " <facts>\n" + " <item key=\"person\">\n" + " <value xsi:type=\"defaultFactHandle\" external-form=\"0:2:604351499:3267851:2:DEFAULT:NON_TRAIT:java.lang.String\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"/>\n" + " </item>\n" + " </facts>\n" + "</execution-results>\n" + "</results>\n" + "</response>"))); stubFor(delete(urlEqualTo("/containers/evaluationproject/processes/instances/2")) .withHeader("Accept", equalTo("application/xml")) .willReturn(aResponse() .withStatus(204) .withHeader("Content-Type", "application/xml") .withBody(""))); stubFor(get(urlEqualTo("/queries/processes/instances/2")) .withHeader("Accept", equalTo("application/xml")) .willReturn(aResponse() .withStatus(200) .withHeader("Content-Type", "application/xml") .withBody("<process-instance>\n" + " <process-instance-id>2</process-instance-id>\n" + " <process-id>evaluation</process-id>\n" + " <process-name>Evaluation</process-name>\n" + " <process-version>1</process-version>\n" + " <process-instance-state>3</process-instance-state>\n" + " <container-id>evaluationproject</container-id>\n" + " <initiator>maciek</initiator>\n" + " <start-date>2015-08-03T13:34:17.771+02:00</start-date>\n" + " <process-instance-desc>Evaluation</process-instance-desc>\n" + " <correlation-key></correlation-key>\n" + " <parent-instance-id>-1</parent-instance-id>\n" + "</process-instance>"))); } public void setupMockServerJSON() { configureFor("localhost", port); stubFor(get(urlEqualTo("/")) .withHeader("Accept", equalTo("application/json")) .willReturn(aResponse() .withStatus(200) .withHeader("Content-Type", "application/json") .withBody("{\n" + " \"type\": \"SUCCESS\",\n" + " \"msg\": \"Kie Server info\",\n" + " \"result\": {\n" + " \"kie-server-info\": {\n" + " \"version\": \"1.2.3\",\n" + " \"name\": \"maciek-kie-server\",\n" + " \"location\": \"http://localhost:" + port +"/kie-server/services/rest/server\",\n" + " \"capabilities\": [\n" + " \"KieServer\",\n" + " \"BRM\",\n" + " \"BPM\"\n" + " ],\n" + " \"id\": \"maciek-kie-server\"\n" + " }\n" + " }\n" + "}"))); stubFor(get(urlEqualTo("/containers")) .withHeader("Accept", equalTo("application/json")) .willReturn(aResponse() .withStatus(200) .withHeader("Content-Type", "application/json") .withBody("{\n" + " \"type\": \"SUCCESS\",\n" + " \"msg\": \"List of created containers\",\n" + " \"result\": {\n" + " \"kie-containers\": {\n" + " \"kie-container\": [\n" + " {\n" + " \"status\": \"STARTED\",\n" + " \"container-id\": \"evaluationproject\",\n" + " \"release-id\": {\n" + " \"version\": \"1.0\",\n" + " \"group-id\": \"org.jbpm\",\n" + " \"artifact-id\": \"Evaluation\"\n" + " },\n" + " \"resolved-release-id\": {\n" + " \"version\": \"1.0\",\n" + " \"group-id\": \"org.jbpm\",\n" + " \"artifact-id\": \"Evaluation\"\n" + " }\n" + " }\n" + " ]\n" + " }\n" + " }\n" + "}"))); stubFor(get(urlPathEqualTo("/queries/processes/definitions")) .withQueryParam("page", equalTo("0")) .withQueryParam("pageSize", equalTo("10")) .withHeader("Accept", equalTo("application/json")) .willReturn(aResponse() .withStatus(200) .withHeader("Content-Type", "application/json") .withBody("{\n" + " \"processes\": [\n" + " {\n" + " \"process-id\": \"evaluation\",\n" + " \"process-name\": \"Evaluation\",\n" + " \"process-version\": \"1\",\n" + " \"package\": \"Evaluation.src.main.resources\",\n" + " \"container-id\": \"evaluationproject\"\n" + " }\n" + " ]\n" + "}"))); stubFor(get(urlEqualTo("/containers/evaluationproject/processes/definitions/evaluation")) .withHeader("Accept", equalTo("application/json")) .willReturn(aResponse() .withStatus(200) .withHeader("Content-Type", "application/json") .withBody("{\n" + " \"process-id\": \"evaluation\",\n" + " \"process-name\": \"Evaluation\",\n" + " \"process-version\": \"1\",\n" + " \"package\": \"Evaluation.src.main.resources\",\n" + " \"container-id\": \"evaluationproject\",\n" + " \"associated-entities\": {\n" + " \"PM Evaluation\": [\"PM\"],\n" + " \"HR Evaluation\": [\"HR\"],\n" + " \"Self Evaluation\": [\"#{employee}\"]\n" + " },\n" + " \"service-tasks\": {},\n" + " \"process-variables\": {\n" + " \"reason\": \"java.lang.String\",\n" + " \"performance\": \"java.lang.String\",\n" + " \"employee\": \"java.lang.String\"\n" + " },\n" + " \"process-subprocesses\": []\n" + "}"))); stubFor(post(urlEqualTo("/containers/evaluationproject/processes/evaluation/instances")) .withHeader("Accept", equalTo("application/json")) .willReturn(aResponse() .withStatus(200) .withHeader("Content-Type", "application/json") .withBody("2"))); stubFor(get(urlPathEqualTo("/queries/tasks/instances")) .withQueryParam("page", equalTo("0")) .withQueryParam("pageSize", equalTo("10")) .withHeader("Accept", equalTo("application/json")) .willReturn(aResponse() .withStatus(200) .withHeader("Content-Type", "application/json") .withBody("{\n" + " \"task-summary\": [\n" + " {\n" + " \"task-id\": 4,\n" + " \"task-name\": \"Self Evaluation\",\n" + " \"task-description\": \"Please perform a self-evalutation.\",\n" + " \"task-status\": \"Completed\",\n" + " \"task-priority\": 0,\n" + " \"task-actual-owner\": \"maciek\",\n" + " \"task-created-by\": \"maciek\",\n" + " \"task-created-on\": 1438601657774,\n" + " \"task-activation-time\": 1438601657774,\n" + " \"task-proc-inst-id\": 2,\n" + " \"task-proc-def-id\": \"evaluation\",\n" + " \"task-container-id\": \"evaluationproject\",\n" + " \"task-parent-id\": -1\n" + " }\n" + " ]\n" + "}"))); stubFor(put(urlEqualTo("/containers/evaluationproject/tasks/4/states/started")) .withHeader("Accept", equalTo("application/json")) .willReturn(aResponse() .withStatus(201) .withHeader("Content-Type", "application/json") .withBody(""))); stubFor(put(urlEqualTo("/containers/evaluationproject/tasks/4/states/completed")) .withHeader("Accept", equalTo("application/json")) .willReturn(aResponse() .withStatus(201) .withHeader("Content-Type", "application/json") .withBody(""))); stubFor(post(urlEqualTo("/containers/instances/evaluationproject")) .withHeader("Accept", equalTo("application/json")) .willReturn(aResponse() .withStatus(200) .withHeader("Content-Type", "application/json") .withBody("{\n" + " \"type\": \"SUCCESS\",\n" + " \"msg\": \"Container evaluationproject successfully called.\",\n" + " \"result\": \"{\\\"results\\\":[{\\\"key\\\":\\\"person\\\",\\\"value\\\":\\\"john\\\"}],\\\"facts\\\":[{\\\"key\\\":\\\"person\\\",\\\"value\\\":{\\\"external-form\\\":\\\"0:3:1546737401:3267851:3:DEFAULT:NON_TRAIT:java.lang.String\\\"}}]}\"\n" + "}"))); stubFor(delete(urlEqualTo("/containers/evaluationproject/processes/instances/2")) .withHeader("Accept", equalTo("application/json")) .willReturn(aResponse() .withStatus(204) .withHeader("Content-Type", "application/json") .withBody(""))); stubFor(get(urlEqualTo("/queries/processes/instances/2")) .withHeader("Accept", equalTo("application/json")) .willReturn(aResponse() .withStatus(200) .withHeader("Content-Type", "application/json") .withBody("{\n" + " \"initiator\": \"maciek\",\n" + " \"process-instance-id\": 3,\n" + " \"process-id\": \"evaluation\",\n" + " \"process-name\": \"Evaluation\",\n" + " \"process-version\": \"1\",\n" + " \"process-instance-state\": 3,\n" + " \"container-id\": \"evaluationproject\",\n" + " \"start-date\": 1438602985335,\n" + " \"process-instance-desc\": \"Evaluation\",\n" + " \"correlation-key\": \"\",\n" + " \"parent-instance-id\": -1\n" + "}"))); } public void setupMockServerXStream() { configureFor("localhost", port); stubFor(get(urlEqualTo("/")) .withHeader("Accept", equalTo("application/xml")) .willReturn(aResponse() .withStatus(200) .withHeader("Content-Type", "application/xml") .withBody("<org.kie.server.api.model.ServiceResponse>\n" + " <type>SUCCESS</type>\n" + " <msg>Kie Server info</msg>\n" + " <result class=\"kie-server-info\">\n" + " <serverId>maciek-kie-server</serverId>\n" + " <version>1.2.3</version>\n" + " <name>maciek-kie-server</name>\n" + " <location>http://localhost:" + port + "/kie-server/services/rest/server</location>\n" + " <capabilities>\n" + " <string>KieServer</string>\n" + " <string>BRM</string>\n" + " <string>BPM</string>\n" + " </capabilities>\n" + " </result>\n" + "</org.kie.server.api.model.ServiceResponse>"))); stubFor(get(urlEqualTo("/containers")) .withHeader("Accept", equalTo("application/xml")) .willReturn(aResponse() .withStatus(200) .withHeader("Content-Type", "application/xml") .withBody("<org.kie.server.api.model.ServiceResponse>\n" + " <type>SUCCESS</type>\n" + " <msg>List of created containers</msg>\n" + " <result class=\"kie-containers\">\n" + " <kie-container>\n" + " <container-id>evaluationproject</container-id>\n" + " <release-id>\n" + " <group-id>org.jbpm</group-id>\n" + " <artifact-id>Evaluation</artifact-id>\n" + " <version>1.0</version>\n" + " </release-id>\n" + " <resolved-release-id>\n" + " <group-id>org.jbpm</group-id>\n" + " <artifact-id>Evaluation</artifact-id>\n" + " <version>1.0</version>\n" + " </resolved-release-id>\n" + " <status>STARTED</status>\n" + " </kie-container>\n" + " </result>\n" + "</org.kie.server.api.model.ServiceResponse>"))); stubFor(get(urlPathEqualTo("/queries/processes/definitions")) .withQueryParam("page", equalTo("0")) .withQueryParam("pageSize", equalTo("10")) .withHeader("Accept", equalTo("application/xml")) .willReturn(aResponse() .withStatus(200) .withHeader("Content-Type", "application/xml") .withBody("<org.kie.server.api.model.definition.ProcessDefinitionList>\n" + " <processes>\n" + " <org.kie.server.api.model.definition.ProcessDefinition>\n" + " <id>evaluation</id>\n" + " <name>Evaluation</name>\n" + " <version>1</version>\n" + " <packageName>Evaluation.src.main.resources</packageName>\n" + " <containerId>evaluationproject</containerId>\n" + " </org.kie.server.api.model.definition.ProcessDefinition>" + " </processes>\n" + "</org.kie.server.api.model.definition.ProcessDefinitionList>"))); stubFor(get(urlEqualTo("/containers/evaluationproject/processes/definitions/evaluation")) .withHeader("Accept", equalTo("application/xml")) .willReturn(aResponse() .withStatus(200) .withHeader("Content-Type", "application/xml") .withBody("<org.kie.server.api.model.definition.ProcessDefinition>\n" + " <id>evaluation</id>\n" + " <name>Evaluation</name>\n" + " <version>1</version>\n" + " <packageName>Evaluation.src.main.resources</packageName>\n" + " <containerId>evaluationproject</containerId>\n" + " <associatedEntities>\n" + " <entry>\n" + " <string>PM Evaluation</string>\n" + " <string-array>\n" + " <string>PM</string>\n" + " </string-array>\n" + " </entry>\n" + " <entry>\n" + " <string>HR Evaluation</string>\n" + " <string-array>\n" + " <string>HR</string>\n" + " </string-array>\n" + " </entry>\n" + " <entry>\n" + " <string>Self Evaluation</string>\n" + " <string-array>\n" + " <string>#{employee}</string>\n" + " </string-array>\n" + " </entry>\n" + " </associatedEntities>\n" + " <serviceTasks/>\n" + " <processVariables>\n" + " <entry>\n" + " <string>reason</string>\n" + " <string>java.lang.String</string>\n" + " </entry>\n" + " <entry>\n" + " <string>performance</string>\n" + " <string>java.lang.String</string>\n" + " </entry>\n" + " <entry>\n" + " <string>employee</string>\n" + " <string>java.lang.String</string>\n" + " </entry>\n" + " </processVariables>\n" + " <reusableSubProcesses class=\"set\"/>\n" + "</org.kie.server.api.model.definition.ProcessDefinition>"))); stubFor(post(urlEqualTo("/containers/evaluationproject/processes/evaluation/instances")) .withHeader("Accept", equalTo("application/xml")) .willReturn(aResponse() .withStatus(200) .withHeader("Content-Type", "application/xml") .withBody("<long>2</long>"))); stubFor(get(urlPathEqualTo("/queries/tasks/instances")) .withQueryParam("page", equalTo("0")) .withQueryParam("pageSize", equalTo("10")) .withHeader("Accept", equalTo("application/xml")) .willReturn(aResponse() .withStatus(200) .withHeader("Content-Type", "application/xml") .withBody("<org.kie.server.api.model.instance.TaskSummaryList>\n" + "<tasks>\n" + "<org.kie.server.api.model.instance.TaskSummary>\n" + "<id>4</id>\n" + "<name>Self Evaluation</name>\n" + "<description>Please perform a self-evalutation.</description>\n" + "<status>Completed</status>\n" + "<priority>0</priority>\n" + "<actualOwner>maciek</actualOwner>\n" + "<createdBy>maciek</createdBy>\n" + "<createdOn class=\"sql-timestamp\">2015-08-03 11:34:17.774</createdOn>\n" + "<activationTime class=\"sql-timestamp\">2015-08-03 11:34:17.774</activationTime>\n" + "<processInstanceId>2</processInstanceId>\n" + "<processId>evaluation</processId>\n" + "<containerId>evaluationproject</containerId>\n" + "<parentId>-1</parentId>\n" + "</org.kie.server.api.model.instance.TaskSummary>\n" + "</tasks>\n" + "</org.kie.server.api.model.instance.TaskSummaryList>"))); stubFor(put(urlEqualTo("/containers/evaluationproject/tasks/4/states/started")) .withHeader("Accept", equalTo("application/xml")) .willReturn(aResponse() .withStatus(201) .withHeader("Content-Type", "application/xml") .withBody(""))); stubFor(put(urlEqualTo("/containers/evaluationproject/tasks/4/states/completed")) .withHeader("Accept", equalTo("application/xml")) .willReturn(aResponse() .withStatus(201) .withHeader("Content-Type", "application/xml") .withBody(""))); stubFor(post(urlEqualTo("/containers/instances/evaluationproject")) .withHeader("Accept", equalTo("application/xml")) .willReturn(aResponse() .withStatus(200) .withHeader("Content-Type", "application/xml") .withBody("<org.kie.server.api.model.ServiceResponse>\n" + " <type>SUCCESS</type>\n" + " <msg>Container evaluationproject successfully called.</msg>\n" + " <result class=\"string\"><execution-results>\n" + " <result identifier="person">\n" + " <string>john</string>\n" + " </result>\n" + " <fact-handle identifier="person" external-form="0:4:2135026172:3267851:4:DEFAULT:NON_TRAIT:java.lang.String"/>\n" + "</execution-results></result>\n" + "</org.kie.server.api.model.ServiceResponse>"))); stubFor(delete(urlEqualTo("/containers/evaluationproject/processes/instances/2")) .withHeader("Accept", equalTo("application/xml")) .willReturn(aResponse() .withStatus(204) .withHeader("Content-Type", "application/xml") .withBody(""))); stubFor(get(urlEqualTo("/queries/processes/instances/2")) .withHeader("Accept", equalTo("application/xml")) .willReturn(aResponse() .withStatus(200) .withHeader("Content-Type", "application/xml") .withBody("<org.kie.server.api.model.instance.ProcessInstance>\n" + " <id>4</id>\n" + " <processId>evaluation</processId>\n" + " <processName>Evaluation</processName>\n" + " <processVersion>1</processVersion>\n" + " <state>3</state>\n" + " <containerId>evaluationproject</containerId>\n" + " <initiator>maciek</initiator>\n" + " <date class=\"sql-timestamp\">2015-08-03 12:09:56.79</date>\n" + " <processInstanceDescription>Evaluation</processInstanceDescription>\n" + " <correlationKey></correlationKey>\n" + " <parentId>-1</parentId>\n" + "</org.kie.server.api.model.instance.ProcessInstance>"))); } }