You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2021/05/26 16:25:02 UTC
[camel-quarkus] 04/04: Increase Jira extension test coverage
This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit 58aab303ff0da5aff74fc15aea3fe1d17dae938b
Author: James Netherton <ja...@gmail.com>
AuthorDate: Tue May 25 13:14:16 2021 +0100
Increase Jira extension test coverage
---
integration-tests/jira/README.adoc | 25 +-
integration-tests/jira/pom.xml | 31 ++
.../component/jira/it/FakeJiraResource.java | 56 ---
.../quarkus/component/jira/it/JiraResource.java | 208 +++++++++-
.../quarkus/component/jira/it/JiraRoutes.java | 48 +++
.../jira/src/main/resources/application.properties | 27 --
.../jira/src/main/resources/mock/createIssue.json | 5 -
.../jira/src/main/resources/mock/getIssue.json | 38 --
.../jira/src/main/resources/mock/issueType.json | 11 -
.../camel/quarkus/component/jira/it/JiraTest.java | 452 ++++++++++++++++++++-
.../component/jira/it/JiraTestResource.java | 88 ++++
...st-67-0e1e85c8-d0b1-42b3-9a7d-2aa604b82ac7.json | 1 +
...st-67-940c0b21-7d1a-4963-9cbf-cc9d1f607dbd.json | 1 +
...st-67-be652193-8a26-42ec-bb0d-7115cd37f3cd.json | 1 +
...st-67-c56637eb-f7dc-4d5b-8471-e518046ed496.json | 1 +
...st-68-15047dda-1b77-48f5-97c7-79c43e0a3665.json | 1 +
...st-68-17c49ae9-16b4-48d6-abfd-7e2ace597a08.json | 1 +
...st-68-28c61bd1-5321-4eb4-8aee-1056001b18a6.json | 1 +
...st-68-c09a3e23-4fee-4ee5-9d8b-426c0aa1004c.json | 1 +
...st-69-a114dae3-19a3-486d-8c6a-18fd26d9a80f.json | 1 +
...st-69-a8c98e7e-0414-4b4e-8fae-bb248a8feab8.json | 1 +
...st-69-b577e1c5-cc4e-436b-9c57-50a8d0d605c1.json | 1 +
...st-69-ebe35966-c69e-453f-af61-b7d1fd5407c9.json | 1 +
...st-70-288f33f8-ff30-42e6-91cc-27469a454c1f.json | 1 +
...st-71-09b7636c-39fa-4cb3-8fe1-43afb1034924.json | 1 +
...st-71-0e6a77cf-578a-4421-b0e6-9e75f9015ffc.json | 1 +
...st-71-2470cded-eff1-4696-b664-c6a6afb48352.json | 1 +
...st-71-95392d7a-cee3-4493-808c-f7db7b8c5f9b.json | 1 +
...st-71-b6cc2884-c9ed-4161-a671-3413813b4db2.json | 1 +
...st-72-baa1260a-1c45-43aa-b4d1-9a5a2f296d7a.json | 1 +
...st-72-bb4bde6d-b387-4cd6-a308-aacf38d6fd5d.json | 1 +
...st-73-97967053-b459-441a-9f03-b603ca69c22e.json | 1 +
...st-74-75c0d24d-5575-490f-a590-020bd992afe4.json | 1 +
...st-74-920e8e36-2afc-438d-bca6-d1d28116988c.json | 1 +
...st-74-a9022ea4-4500-4fa8-9638-b8ac76464b4f.json | 1 +
...earch-2eb3eb45-a63a-4655-9d1f-ef82f4d3b825.json | 1 +
...earch-4dc289c5-0522-4632-813f-295f4be67eaf.json | 1 +
...earch-5a3ae50c-9eee-45ea-bb4e-28b2864e392d.json | 1 +
...earch-a8497662-b947-4b46-9815-9e04995588c8.json | 1 +
...earch-ce09e8e1-0c2f-4646-a58a-dcf55e4de092.json | 1 +
...earch-ea789be6-5899-46e7-ab02-8ec3692596f5.json | 1 +
...issue-467257d0-dc2a-4066-8eb8-1e91b1a95cc4.json | 39 ++
...issue-4846b302-a78c-4342-9770-fe311569d92d.json | 39 ++
...issue-6d80c43a-e688-4e0c-a26f-6b44a32b3ba3.json | 39 ++
...issue-956a8664-2312-4fdd-b9db-978df0bd8595.json | 38 ++
...issue-bae70b60-36da-4aef-954f-0d8dfc2230b5.json | 39 ++
...issue-bd873ed1-07bb-44e7-b0b9-2030420211aa.json | 39 ++
...issue-c2c8d72a-625e-4759-9878-5bc9babfca2e.json | 39 ++
...issue-d88f3854-1abc-4c19-a94b-faefb8e119a1.json | 39 ++
...st-67-0e1e85c8-d0b1-42b3-9a7d-2aa604b82ac7.json | 33 ++
...st-67-7b93fd68-1f69-4005-ae76-056af9123977.json | 30 ++
...st-67-940c0b21-7d1a-4963-9cbf-cc9d1f607dbd.json | 35 ++
...st-67-be652193-8a26-42ec-bb0d-7115cd37f3cd.json | 34 ++
...st-67-c56637eb-f7dc-4d5b-8471-e518046ed496.json | 35 ++
...st-68-05a2b7b2-8906-433a-a35d-02d96bacf022.json | 30 ++
...st-68-15047dda-1b77-48f5-97c7-79c43e0a3665.json | 35 ++
...st-68-17c49ae9-16b4-48d6-abfd-7e2ace597a08.json | 34 ++
...st-68-28c61bd1-5321-4eb4-8aee-1056001b18a6.json | 33 ++
...st-68-c09a3e23-4fee-4ee5-9d8b-426c0aa1004c.json | 34 ++
...st-69-450baa09-6b3f-4c51-8f58-a69e72aedb41.json | 30 ++
...st-69-a114dae3-19a3-486d-8c6a-18fd26d9a80f.json | 34 ++
...st-69-a8c98e7e-0414-4b4e-8fae-bb248a8feab8.json | 33 ++
...st-69-b577e1c5-cc4e-436b-9c57-50a8d0d605c1.json | 34 ++
...st-69-ebe35966-c69e-453f-af61-b7d1fd5407c9.json | 35 ++
...st-70-288f33f8-ff30-42e6-91cc-27469a454c1f.json | 34 ++
...st-70-4d938ceb-5f17-4574-bfde-bb47eea5bb59.json | 36 ++
...st-70-f2ab1813-65c5-494f-a5ac-da9e340b3d94.json | 31 ++
...st-71-09b7636c-39fa-4cb3-8fe1-43afb1034924.json | 35 ++
...st-71-0e6a77cf-578a-4421-b0e6-9e75f9015ffc.json | 34 ++
...st-71-2470cded-eff1-4696-b664-c6a6afb48352.json | 33 ++
...st-71-95392d7a-cee3-4493-808c-f7db7b8c5f9b.json | 34 ++
...st-71-993fe3b6-a347-4014-b3a7-a182c1fa25ed.json | 30 ++
...st-71-b6cc2884-c9ed-4161-a671-3413813b4db2.json | 34 ++
...st-72-baa1260a-1c45-43aa-b4d1-9a5a2f296d7a.json | 34 ++
...st-72-bb4bde6d-b387-4cd6-a308-aacf38d6fd5d.json | 33 ++
...st-72-c3063e9e-b57a-4de5-8d84-b458a8f7f0fe.json | 30 ++
...st-73-786cfa20-75d3-43f7-b5b8-8ea926dce7c2.json | 30 ++
...st-73-97967053-b459-441a-9f03-b603ca69c22e.json | 31 ++
...st-74-75c0d24d-5575-490f-a590-020bd992afe4.json | 33 ++
...st-74-920e8e36-2afc-438d-bca6-d1d28116988c.json | 34 ++
...st-74-a9022ea4-4500-4fa8-9638-b8ac76464b4f.json | 35 ++
...st-74-ab1fb946-6445-448d-a80f-f67165920733.json | 30 ++
...elink-b86486cf-179d-4eff-ab59-fd2621cd2fe2.json | 36 ++
...etype-1a4dffb2-212a-4e5c-a6ed-b07e6c22df97.json | 33 ++
...etype-3c28d7c5-48e0-4e10-9c33-2b7302766869.json | 34 ++
...etype-5862081c-2012-4240-835c-cf0ce937c567.json | 34 ++
...etype-65c3b34b-0095-416f-9667-9fe5996560bf.json | 34 ++
...etype-9a5ac9eb-f82e-4b5e-8372-729815645934.json | 34 ++
...etype-b97e3430-3397-4d6c-9782-b572d203f785.json | 34 ++
...etype-bb895fc4-8785-45cd-93f3-24f74ff8bef8.json | 34 ++
...etype-deb1fb17-f060-4866-bc5b-af2464195e25.json | 35 ++
...earch-2eb3eb45-a63a-4655-9d1f-ef82f4d3b825.json | 34 ++
...earch-4dc289c5-0522-4632-813f-295f4be67eaf.json | 35 ++
...earch-5a3ae50c-9eee-45ea-bb4e-28b2864e392d.json | 33 ++
...earch-a8497662-b947-4b46-9815-9e04995588c8.json | 31 ++
...earch-ce09e8e1-0c2f-4646-a58a-dcf55e4de092.json | 35 ++
...earch-ea789be6-5899-46e7-ab02-8ec3692596f5.json | 32 ++
...rinfo-5384f8bb-181d-41ae-bc02-2c13a4c67e15.json | 34 ++
...rinfo-94c1f66d-8a68-4485-8669-fbd75b55c45a.json | 34 ++
...rinfo-dd1a6803-f1ea-4002-a959-356e8d642920.json | 34 ++
...rinfo-ec14f05b-707b-4a51-a6a1-64b462a2c020.json | 34 ++
...ssion-ff621014-dbe1-499a-88cb-e659bec3ffa9.json | 31 ++
102 files changed, 2932 insertions(+), 163 deletions(-)
diff --git a/integration-tests/jira/README.adoc b/integration-tests/jira/README.adoc
index 6118143..d183308 100644
--- a/integration-tests/jira/README.adoc
+++ b/integration-tests/jira/README.adoc
@@ -1,6 +1,6 @@
== Camel Quarkus Jira Integration Tests
-By default integration tests are performed against a mock Jira JAX-RS endpoint which is defined in class `FakeJiraResource`.
+By default integration tests use WireMock to stub the Jira API interactions.
To run `camel-quarkus-jira` integration tests against a real Jira instance, set the environment variables described below.
@@ -8,8 +8,31 @@ To run `camel-quarkus-jira` integration tests against a real Jira instance, set
----
export JIRA_ISSUES_PROJECT_KEY=TEST
export JIRA_URL=http://localhost:8080/
+
+# If your Jira server requires basic authentication
export JIRA_USERNAME=my-jira-username
export JIRA_PASSWORD=my-jira-password
+
+# If your Jira server requires OAuth authentication
+export JIRA_OAUTH_ACCESS_TOKEN=your-access-token
+export JIRA_OAUTH_CONSUMER_KEY=your-consumer-key
+export JIRA_OAUTH_PRIVATE_KEY=your-private-key
+export JIRA_OAUTH_VERIFICATION_CODE=your-code
+----
+
+If you want to test the issue transition producer, you may need to override the default a workflow transition id for your Jira instance.
+
+[source,shell]
+----
+export JIRA_TRANSITION_ID=10
----
A simple way of setting up a Jira server is to use the https://hub.docker.com/r/atlassian/jira-software[Jira Docker image].
+
+If the WireMock stub recordings need updating, then remove the existing files from `src/test/resources/mappings` and run tests with either:
+
+System property `-Dwiremock.record=true`
+
+Or
+
+Set environment variable `WIREMOCK_RECORD=true`
diff --git a/integration-tests/jira/pom.xml b/integration-tests/jira/pom.xml
index d0f0d35..bc79e67 100644
--- a/integration-tests/jira/pom.xml
+++ b/integration-tests/jira/pom.xml
@@ -35,9 +35,17 @@
<artifactId>camel-quarkus-jira</artifactId>
</dependency>
<dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-seda</artifactId>
+ </dependency>
+ <dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy</artifactId>
</dependency>
+ <dependency>
+ <groupId>io.quarkus</groupId>
+ <artifactId>quarkus-resteasy-jsonb</artifactId>
+ </dependency>
<!-- test dependencies -->
<dependency>
@@ -56,6 +64,16 @@
<artifactId>rest-assured</artifactId>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-integration-wiremock-support</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.awaitility</groupId>
+ <artifactId>awaitility</artifactId>
+ <scope>test</scope>
+ </dependency>
<!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory -->
<dependency>
@@ -71,6 +89,19 @@
</exclusion>
</exclusions>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-seda-deployment</artifactId>
+ <version>${project.version}</version>
+ <type>pom</type>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
</dependencies>
diff --git a/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/FakeJiraResource.java b/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/FakeJiraResource.java
deleted file mode 100644
index add3bde..0000000
--- a/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/FakeJiraResource.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.apache.camel.quarkus.component.jira.it;
-
-import java.io.InputStream;
-import java.net.URI;
-import java.net.URISyntaxException;
-
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.Response;
-
-/**
- * A set of stubbed service endpoints for the Jira REST API
- */
-@Path("/jira/rest/api/latest")
-public class FakeJiraResource {
-
- @Path("/issuetype")
- @GET
- public Response getIssueType() {
- return Response.ok(getResource("issueType.json")).build();
- }
-
- @Path("/issue")
- @POST
- public Response createIssue() throws URISyntaxException {
- return Response.created(new URI("/rest/api/latest/issue/1")).entity(getResource("createIssue.json")).build();
- }
-
- @Path("/issue/{id}")
- @GET
- public Response getIssue(@PathParam("id") String id) throws URISyntaxException {
- return Response.created(new URI("/rest/api/latest/issue/1")).entity(getResource("getIssue.json")).build();
- }
-
- private InputStream getResource(String name) {
- return getClass().getResourceAsStream("/mock/" + name);
- }
-}
diff --git a/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraResource.java b/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraResource.java
index de9fa52..75e2e74 100644
--- a/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraResource.java
+++ b/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraResource.java
@@ -17,54 +17,234 @@
package org.apache.camel.quarkus.component.jira.it;
import java.net.URI;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.util.Collections;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import javax.inject.Inject;
+import javax.json.Json;
+import javax.json.JsonObject;
+import javax.json.JsonObjectBuilder;
import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.PATCH;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
+import com.atlassian.jira.rest.client.api.domain.Comment;
import com.atlassian.jira.rest.client.api.domain.Issue;
+import org.apache.camel.CamelContext;
+import org.apache.camel.ConsumerTemplate;
import org.apache.camel.ProducerTemplate;
-import org.apache.camel.component.jira.JiraConstants;
import org.eclipse.microprofile.config.inject.ConfigProperty;
-import org.jboss.logging.Logger;
+
+import static org.apache.camel.component.jira.JiraConstants.CHILD_ISSUE_KEY;
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_KEY;
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_PROJECT_KEY;
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_SUMMARY;
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_TRANSITION_ID;
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_TYPE_NAME;
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_WATCHERS_ADD;
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_WATCHERS_REMOVE;
+import static org.apache.camel.component.jira.JiraConstants.LINK_TYPE;
+import static org.apache.camel.component.jira.JiraConstants.MINUTES_SPENT;
+import static org.apache.camel.component.jira.JiraConstants.PARENT_ISSUE_KEY;
@Path("/jira")
public class JiraResource {
- private static final Logger log = Logger.getLogger(JiraResource.class);
+ @Inject
+ ConsumerTemplate consumerTemplate;
@Inject
ProducerTemplate producerTemplate;
+ @Inject
+ CamelContext context;
+
@ConfigProperty(name = "jira.issues.project-key")
String projectKey;
- @Path("/post")
+ @Path("/issue")
@POST
@Consumes(MediaType.TEXT_PLAIN)
- @Produces(MediaType.TEXT_PLAIN)
- public Response post(@QueryParam("jiraUrl") String jiraUrl, String message) throws Exception {
+ @Produces(MediaType.APPLICATION_JSON)
+ public Response createIssue(
+ @QueryParam("type") String type,
+ @QueryParam("summary") String summary,
+ String description) throws Exception {
Map<String, Object> headers = new HashMap<>();
- headers.put(JiraConstants.ISSUE_PROJECT_KEY, projectKey);
- headers.put(JiraConstants.ISSUE_TYPE_NAME, "Task");
- headers.put(JiraConstants.ISSUE_SUMMARY, "Demo Bug");
-
- log.infof("Sending to jira: %s", message);
+ headers.put(ISSUE_PROJECT_KEY, projectKey);
+ headers.put(ISSUE_TYPE_NAME, type);
+ headers.put(ISSUE_SUMMARY, summary);
- Issue issue = producerTemplate.requestBodyAndHeaders("jira:addIssue?jiraUrl=" + jiraUrl, message, headers, Issue.class);
+ Issue issue = producerTemplate.requestBodyAndHeaders("jira:addIssue", description, headers, Issue.class);
- log.infof("Created new issue: %s", issue.getKey());
return Response
.created(new URI("https://camel.apache.org/"))
- .entity(issue.getKey())
+ .entity(issueToJson(issue))
.status(201)
.build();
}
+
+ @Path("/issue/{key}")
+ @GET
+ @Produces(MediaType.APPLICATION_JSON)
+ public Response readIssueByKey(@PathParam("key") String key) {
+ try {
+ Issue issue = producerTemplate.requestBodyAndHeader("jira:fetchIssue", null, ISSUE_KEY, key, Issue.class);
+ return Response.ok(issueToJson(issue)).build();
+ } catch (Exception e) {
+ return Response.status(404).build();
+ }
+ }
+
+ @Path("/issue")
+ @GET
+ @Produces(MediaType.APPLICATION_JSON)
+ public Response readIssue(@QueryParam("source") String source) {
+ String uriSuffix = "jiraIssues";
+ if (source.equals("update")) {
+ uriSuffix = "jiraUpdates";
+ }
+
+ Issue issue = consumerTemplate.receiveBody("seda:" + uriSuffix, 10000L, Issue.class);
+ if (issue == null) {
+ return Response.noContent().build();
+ }
+ return Response.ok(issueToJson(issue)).build();
+ }
+
+ @Path("/issue/{key}")
+ @PATCH
+ public Response updateIssue(@PathParam("key") String key, String issueSummary) {
+ Map<String, Object> headers = new HashMap<>();
+ headers.put(ISSUE_KEY, key);
+ headers.put(ISSUE_SUMMARY, issueSummary);
+ producerTemplate.requestBodyAndHeaders("jira:updateIssue", null, headers);
+ return Response.ok().build();
+ }
+
+ @Path("/issue/{key}")
+ @DELETE
+ public Response deleteIssue(@PathParam("key") String key) {
+ producerTemplate.requestBodyAndHeader("jira:deleteIssue", null, ISSUE_KEY, key);
+ return Response.noContent().build();
+ }
+
+ @Path("/issue/{key}/comment")
+ @POST
+ @Consumes(MediaType.TEXT_PLAIN)
+ public Response createIssueComment(@PathParam("key") String key, String comment) throws Exception {
+ producerTemplate.requestBodyAndHeader("jira:addComment", comment, ISSUE_KEY, key);
+ return Response.created(new URI("https://camel.apache.org/")).build();
+ }
+
+ @Path("/issue/comment")
+ @GET
+ @Produces(MediaType.TEXT_PLAIN)
+ public Response getIssueComment() {
+ Comment comment = consumerTemplate.receiveBody("seda:jiraComments", 10000L, Comment.class);
+ if (comment == null) {
+ return Response.noContent().build();
+ }
+ return Response.ok(comment.getBody()).build();
+ }
+
+ @Path("/issue/{key}/attach")
+ @POST
+ @Consumes(MediaType.TEXT_PLAIN)
+ public Response createIssueAttachment(@PathParam("key") String key, String content) throws Exception {
+ java.nio.file.Path tempFile = Files.createTempFile("cq-jira", ".txt");
+ Files.write(tempFile, content.getBytes(StandardCharsets.UTF_8));
+ producerTemplate.requestBodyAndHeader("jira:attach", tempFile.toFile(), ISSUE_KEY, key);
+ return Response.created(new URI("https://camel.apache.org/")).build();
+ }
+
+ @Path("/issue/{key}/watch")
+ @POST
+ @Consumes(MediaType.TEXT_PLAIN)
+ public Response watchIssue(@PathParam("key") String key, @QueryParam("action") String action, String watchers) {
+ List<String> watchList = Collections.singletonList(watchers);
+ Map<String, Object> headers = new HashMap<>();
+ headers.put(ISSUE_KEY, key);
+ if (action.equals("watch")) {
+ headers.put(ISSUE_WATCHERS_ADD, watchList);
+ } else if (action.equals("unwatch")) {
+ headers.put(ISSUE_WATCHERS_REMOVE, watchList);
+ } else {
+ throw new IllegalArgumentException("Unknown watch action: " + action);
+ }
+ producerTemplate.requestBodyAndHeaders("jira:watchers", null, headers);
+ return Response.ok().build();
+ }
+
+ @Path("/issue/link")
+ @POST
+ public Response linkIssues(@QueryParam("parentKey") String parentKey, @QueryParam("childKey") String childKey) {
+ Map<String, Object> headers = new HashMap<>();
+ headers.put(PARENT_ISSUE_KEY, parentKey);
+ headers.put(CHILD_ISSUE_KEY, childKey);
+ headers.put(LINK_TYPE, "Relates");
+
+ producerTemplate.requestBodyAndHeaders("jira:addIssueLink", null, headers);
+
+ return Response.ok().build();
+ }
+
+ @Path("/issue/{key}/log/work")
+ @POST
+ @Consumes(MediaType.TEXT_PLAIN)
+ public Response logWork(@PathParam("key") String key, String minutes) {
+ Map<String, Object> headers = new HashMap<>();
+ headers.put(ISSUE_KEY, key);
+ headers.put(MINUTES_SPENT, Integer.valueOf(minutes));
+
+ producerTemplate.requestBodyAndHeaders("jira:addWorkLog", "Work logged: " + minutes, headers);
+
+ return Response.ok().build();
+ }
+
+ @Path("/issue/{key}/transition")
+ @POST
+ @Consumes(MediaType.TEXT_PLAIN)
+ public Response transition(@PathParam("key") String key, String workflowId) {
+ Map<String, Object> headers = new HashMap<>();
+ headers.put(ISSUE_KEY, key);
+ headers.put(ISSUE_TRANSITION_ID, Integer.valueOf(workflowId));
+
+ producerTemplate.requestBodyAndHeaders("jira:transitionIssue", null, headers);
+
+ return Response.ok().build();
+ }
+
+ @Path("/route/{routeId}/{action}")
+ @POST
+ public void manageRoute(@PathParam("routeId") String routeId, @PathParam("action") String action) throws Exception {
+ if (action.equals("start")) {
+ context.getRouteController().startRoute(routeId);
+ } else if (action.equals("stop")) {
+ context.getRouteController().stopRoute(routeId);
+ } else {
+ throw new IllegalArgumentException("Unknown action: " + action);
+ }
+ }
+
+ private JsonObject issueToJson(Issue issue) {
+ JsonObjectBuilder builder = Json.createObjectBuilder();
+ builder.add("description", issue.getDescription());
+ builder.add("key", issue.getKey());
+ builder.add("summary", issue.getSummary());
+ builder.add("type", issue.getIssueType().getName());
+ return builder.build();
+ }
}
diff --git a/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraRoutes.java b/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraRoutes.java
new file mode 100644
index 0000000..fce4d5d
--- /dev/null
+++ b/integration-tests/jira/src/main/java/org/apache/camel/quarkus/component/jira/it/JiraRoutes.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.camel.quarkus.component.jira.it;
+
+import javax.enterprise.context.ApplicationScoped;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.eclipse.microprofile.config.inject.ConfigProperty;
+
+@ApplicationScoped
+public class JiraRoutes extends RouteBuilder {
+
+ @ConfigProperty(name = "jira.issues.project-key")
+ String projectKey;
+
+ @Override
+ public void configure() throws Exception {
+ from("jira:newIssues?jql=RAW(project=" + projectKey + ")&maxResults=1")
+ .id("jiraIssues")
+ .autoStartup(false)
+ .to("seda:jiraIssues");
+
+ from("jira:watchUpdates?jql=RAW(project=" + projectKey
+ + ")&watchedFields=Summary&sendOnlyUpdatedField=false&maxResults=1")
+ .id("jiraUpdates")
+ .autoStartup(false)
+ .to("seda:jiraUpdates");
+
+ from("jira:newComments?jql=RAW(project=" + projectKey + ")&maxResults=1")
+ .id("jiraComments")
+ .autoStartup(false)
+ .to("seda:jiraComments");
+ }
+}
diff --git a/integration-tests/jira/src/main/resources/application.properties b/integration-tests/jira/src/main/resources/application.properties
deleted file mode 100644
index 4917a9f..0000000
--- a/integration-tests/jira/src/main/resources/application.properties
+++ /dev/null
@@ -1,27 +0,0 @@
-## ---------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements. See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You 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.
-## ---------------------------------------------------------------------------
-
-#
-# Camel :: Jira
-#
-jira.issues.project-key={{env:JIRA_ISSUES_PROJECT_KEY:TEST}}
-
-camel.component.jira.username={{env:JIRA_USERNAME:testing}}
-camel.component.jira.password={{env:JIRA_PASSWORD:s3cr3t}}
-
-# Mock responses for integration tests
-quarkus.camel.native.resources.include-patterns = mock/*.json
diff --git a/integration-tests/jira/src/main/resources/mock/createIssue.json b/integration-tests/jira/src/main/resources/mock/createIssue.json
deleted file mode 100644
index 1f95896..0000000
--- a/integration-tests/jira/src/main/resources/mock/createIssue.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "id": "1",
- "key": "TEST-01",
- "self": ""
-}
diff --git a/integration-tests/jira/src/main/resources/mock/getIssue.json b/integration-tests/jira/src/main/resources/mock/getIssue.json
deleted file mode 100644
index eb3540d..0000000
--- a/integration-tests/jira/src/main/resources/mock/getIssue.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "expand": "",
- "id": "1",
- "self": "",
- "key": "TEST-01",
- "fields": {
- "summary": "Demo bug",
- "description": "Demo issue body",
- "issuetype": {
- "id": 1,
- "name": "Task",
- "subtask": false,
- "description": "Task",
- "self": ""
- },
- "created": "2020-03-19T15:29:21.773+0000",
- "project": {
- "self": "",
- "id": "1",
- "key": "TEST",
- "name": "Test"
- },
- "status": {
- "self": "",
- "id": "1",
- "description": "Open",
- "name": "Open",
- "iconUrl": ""
- },
- "updated": "2020-03-19T15:29:21.773+0000"
- },
- "names": {
- "description": "description",
- "project": "project",
- "updated": "updated"
- },
- "schema": {}
-}
diff --git a/integration-tests/jira/src/main/resources/mock/issueType.json b/integration-tests/jira/src/main/resources/mock/issueType.json
deleted file mode 100644
index 1ac3903..0000000
--- a/integration-tests/jira/src/main/resources/mock/issueType.json
+++ /dev/null
@@ -1,11 +0,0 @@
-[
- {
- "self": "",
- "id": "1",
- "description": "A task that needs to be done.",
- "iconUrl": "",
- "name": "Task",
- "subtask": false,
- "avatarId": 1
- }
-]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTest.java b/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTest.java
index e34fdd6..b008422 100644
--- a/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTest.java
+++ b/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTest.java
@@ -16,33 +16,463 @@
*/
package org.apache.camel.quarkus.component.jira.it;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+import java.util.concurrent.TimeUnit;
+
+import com.atlassian.jira.rest.client.api.JiraRestClient;
+import com.atlassian.jira.rest.client.api.JiraRestClientFactory;
+import com.atlassian.jira.rest.client.api.domain.Attachment;
+import com.atlassian.jira.rest.client.api.domain.BasicWatchers;
+import com.atlassian.jira.rest.client.api.domain.Issue;
+import com.atlassian.jira.rest.client.api.domain.IssueLink;
+import com.atlassian.jira.rest.client.api.domain.Resolution;
+import com.atlassian.jira.rest.client.api.domain.Worklog;
+import io.quarkus.test.common.QuarkusTestResource;
import io.quarkus.test.junit.QuarkusTest;
import io.restassured.RestAssured;
import io.restassured.http.ContentType;
+import io.restassured.path.json.JsonPath;
+import org.apache.camel.component.jira.oauth.JiraOAuthAuthenticationHandler;
+import org.apache.camel.component.jira.oauth.OAuthAsynchronousJiraRestClientFactory;
+import org.eclipse.microprofile.config.Config;
+import org.eclipse.microprofile.config.ConfigProvider;
+import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
+import static org.awaitility.Awaitility.await;
+import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.matchesPattern;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
@QuarkusTest
+@QuarkusTestResource(JiraTestResource.class)
public class JiraTest {
+ private static final String ISSUE_ATTACHMENT = "Camel Quarkus Test Issue Attachment";
+ private static final String ISSUE_COMMENT = "Camel Quarkus Test Issue Comment";
+ private static final String ISSUE_DESCRIPTION = "Camel Quarkus Test Issue Description";
+ private static final String ISSUE_SUMMARY = "Camel Quarkus Test Issue Summary";
+ private static final String ISSUE_TYPE = "Task";
+ private static final String UPDATED_ISSUE_SUMMARY = "Updated summary";
+ private static JiraRestClient REST_CLIENT;
+
+ @BeforeAll
+ public static void beforeAll() {
+ Config config = ConfigProvider.getConfig();
+ String jiraUrl = config.getValue("camel.component.jira.jira-url", String.class);
+ Optional<String> username = config.getOptionalValue("camel.component.jira.username", String.class);
+ Optional<String> password = config.getOptionalValue("camel.component.jira.password", String.class);
+ Optional<String> accessToken = config.getOptionalValue("camel.component.jira.access-token", String.class);
+ Optional<String> consumerKey = config.getOptionalValue("camel.component.jira.consumer-key", String.class);
+ Optional<String> privateKey = config.getOptionalValue("camel.component.jira.private-key", String.class);
+ Optional<String> verificationCode = config.getOptionalValue("camel.component.jira.verification-code", String.class);
+
+ JiraRestClientFactory factory = new OAuthAsynchronousJiraRestClientFactory();
+ URI jiraServerUri = URI.create(jiraUrl);
+ if (username.isPresent() && password.isPresent()) {
+ REST_CLIENT = factory.createWithBasicHttpAuthentication(jiraServerUri, username.get(), password.get());
+ } else if (accessToken.isPresent() && consumerKey.isPresent() && privateKey.isPresent()
+ && verificationCode.isPresent()) {
+ JiraOAuthAuthenticationHandler oAuthHandler = new JiraOAuthAuthenticationHandler(
+ consumerKey.get(),
+ verificationCode.get(),
+ privateKey.get(),
+ accessToken.get(),
+ jiraUrl);
+ REST_CLIENT = factory.create(jiraServerUri, oAuthHandler);
+ } else {
+ throw new IllegalStateException("Unable to create Jira client");
+ }
+ }
+
+ @Test
+ public void issueCrud() {
+ // Start issue consumer
+ RestAssured.given()
+ .pathParam("routeId", "jiraIssues")
+ .pathParam("action", "start")
+ .post("/jira/route/{routeId}/{action}")
+ .then()
+ .statusCode(204);
+
+ // Create issue
+ RestAssured.given()
+ .contentType(ContentType.TEXT)
+ .queryParam("summary", ISSUE_SUMMARY)
+ .queryParam("type", ISSUE_TYPE)
+ .body(ISSUE_DESCRIPTION)
+ .when()
+ .post("/jira/issue")
+ .then()
+ .statusCode(201)
+ .body(
+ "description", equalTo(ISSUE_DESCRIPTION),
+ "key", matchesPattern("[A-Z]+-[0-9]+"),
+ "summary", equalTo(ISSUE_SUMMARY),
+ "type", equalTo(ISSUE_TYPE));
+
+ // Read issue
+ JsonPath issueJson = RestAssured.given()
+ .queryParam("source", "new")
+ .get("/jira/issue")
+ .then()
+ .statusCode(200)
+ .body(
+ "description", equalTo(ISSUE_DESCRIPTION),
+ "key", matchesPattern("[A-Z]+-[0-9]+"),
+ "summary", equalTo(ISSUE_SUMMARY),
+ "type", equalTo(ISSUE_TYPE))
+ .extract()
+ .jsonPath();
+
+ String issueKey = issueJson.getString("key");
+
+ // Stop issue consumer
+ RestAssured.given()
+ .pathParam("routeId", "jiraIssues")
+ .pathParam("action", "stop")
+ .post("/jira/route/{routeId}/{action}")
+ .then()
+ .statusCode(204);
+
+ // Start updates consumer
+ RestAssured.given()
+ .pathParam("routeId", "jiraUpdates")
+ .pathParam("action", "start")
+ .post("/jira/route/{routeId}/{action}")
+ .then()
+ .statusCode(204);
+
+ // Update issue summary
+ RestAssured.given()
+ .pathParam("key", issueKey)
+ .body(UPDATED_ISSUE_SUMMARY)
+ .patch("/jira/issue/{key}")
+ .then()
+ .statusCode(200);
+
+ // Verify update
+ RestAssured.given()
+ .queryParam("source", "update")
+ .get("/jira/issue")
+ .then()
+ .statusCode(200)
+ .body(
+ "description", equalTo(ISSUE_DESCRIPTION),
+ "key", matchesPattern("[A-Z]+-[0-9]+"),
+ "summary", equalTo(UPDATED_ISSUE_SUMMARY),
+ "type", equalTo(ISSUE_TYPE));
+
+ // Stop updates consumer
+ RestAssured.given()
+ .pathParam("routeId", "jiraUpdates")
+ .pathParam("action", "stop")
+ .post("/jira/route/{routeId}/{action}")
+ .then()
+ .statusCode(204);
+
+ // Delete issue
+ RestAssured.given()
+ .pathParam("key", issueKey)
+ .delete("/jira/issue/{key}")
+ .then()
+ .statusCode(204);
+
+ // Verify deletion
+ await().atMost(10, TimeUnit.SECONDS).pollDelay(1, TimeUnit.SECONDS).until(() -> {
+ return RestAssured.given()
+ .pathParam("key", issueKey)
+ .get("/jira/issue/{key}")
+ .then()
+ .extract()
+ .statusCode() == 404;
+ });
+ }
+
+ @Test
+ public void comments() {
+ // Create issue
+ String issueKey = createIssue();
+ try {
+ // Start comments consumer
+ RestAssured.given()
+ .pathParam("routeId", "jiraComments")
+ .pathParam("action", "start")
+ .post("/jira/route/{routeId}/{action}")
+ .then()
+ .statusCode(204);
+
+ // Add comment
+ RestAssured.given()
+ .pathParam("key", issueKey)
+ .body(ISSUE_COMMENT)
+ .post("/jira/issue/{key}/comment")
+ .then()
+ .statusCode(201);
+
+ // Verify comment
+ RestAssured.get("/jira/issue/comment")
+ .then()
+ .statusCode(200)
+ .body(equalTo(ISSUE_COMMENT));
+
+ // Stop comments consumer
+ RestAssured.given()
+ .pathParam("routeId", "jiraComments")
+ .pathParam("action", "stop")
+ .post("/jira/route/{routeId}/{action}")
+ .then()
+ .statusCode(204);
+ } finally {
+ deleteIssue(issueKey);
+ }
+ }
+
+ @Test
+ public void attachments() {
+ // Create issue
+ String issueKey = createIssue();
+ try {
+ // Create attachment
+ RestAssured.given()
+ .contentType(ContentType.TEXT)
+ .pathParam("key", issueKey)
+ .body(ISSUE_ATTACHMENT)
+ .when()
+ .post("/jira/issue/{key}/attach")
+ .then()
+ .statusCode(201);
+
+ // Verify attachment
+ await().atMost(10, TimeUnit.SECONDS).pollDelay(1, TimeUnit.SECONDS).until(() -> {
+ Issue issue = getClient().getIssueClient().getIssue(issueKey).claim();
+ assertNotNull(issue);
+
+ Iterable<Attachment> iterable = issue.getAttachments();
+ return iterable != null && iterable.iterator().hasNext();
+ });
+
+ Issue issue = getClient().getIssueClient().getIssue(issueKey).claim();
+ Attachment attachment = issue.getAttachments().iterator().next();
+ assertTrue(attachment.getFilename().startsWith("cq-jira"));
+ } finally {
+ deleteIssue(issueKey);
+ }
+ }
+
+ @Test
+ public void watchers() {
+ // Create issue
+ String issueKey = createIssue();
+ try {
+ // Unwatch issue
+ JiraRestClient client = getClient();
+ String username = client.getSessionClient().getCurrentSession().claim().getUsername();
+ RestAssured.given()
+ .contentType(ContentType.TEXT)
+ .pathParam("key", issueKey)
+ .queryParam("action", "unwatch")
+ .body(username)
+ .when()
+ .post("/jira/issue/{key}/watch")
+ .then()
+ .statusCode(200);
+
+ // Verify unwatch
+ await().atMost(10, TimeUnit.SECONDS).pollDelay(1, TimeUnit.SECONDS).until(() -> {
+ Issue issue = getClient().getIssueClient().getIssue(issueKey).claim();
+ assertNotNull(issue);
+
+ BasicWatchers watchers = issue.getWatchers();
+ return watchers != null && !watchers.isWatching();
+ });
+
+ // Watch issue
+ RestAssured.given()
+ .contentType(ContentType.TEXT)
+ .pathParam("key", issueKey)
+ .queryParam("action", "watch")
+ .body(username)
+ .when()
+ .post("/jira/issue/{key}/watch")
+ .then()
+ .statusCode(200);
+
+ // Verify unwatch
+ await().atMost(10, TimeUnit.SECONDS).pollDelay(1, TimeUnit.SECONDS).until(() -> {
+ Issue issue = getClient().getIssueClient().getIssue(issueKey).claim();
+ assertNotNull(issue);
+
+ BasicWatchers watchers = issue.getWatchers();
+ return watchers != null && watchers.isWatching();
+ });
+ } finally {
+ deleteIssue(issueKey);
+ }
+ }
+
@Test
- public void testJiraComponent() {
- String jiraUrl = System.getenv("JIRA_URL");
- if (jiraUrl == null) {
- jiraUrl = String.format("http://localhost:%s/jira",
- System.getProperty("quarkus.http.test-port", System.getProperty("quarkus.http.port")));
+ public void issueLinks() {
+ List<String> issueKeys = new ArrayList<>();
+
+ // Create issues
+ for (int i = 0; i < 2; i++) {
+ issueKeys.add(createIssue());
}
- RestAssured
- .given()
+ try {
+ // Link issues
+ String parentKey = issueKeys.get(0);
+ String childKey = issueKeys.get(1);
+ RestAssured.given()
+ .contentType(ContentType.TEXT)
+ .queryParam("parentKey", parentKey)
+ .queryParam("childKey", childKey)
+ .when()
+ .post("/jira/issue/link")
+ .then()
+ .statusCode(200);
+
+ // Verify link
+ await().atMost(10, TimeUnit.SECONDS).pollDelay(1, TimeUnit.SECONDS).until(() -> {
+ Issue parent = getClient().getIssueClient().getIssue(parentKey).claim();
+ assertNotNull(parent);
+
+ Iterable<IssueLink> issueLinks = parent.getIssueLinks();
+ assertNotNull(issueLinks);
+
+ IssueLink link = issueLinks.iterator().next();
+ assertNotNull(link);
+
+ return childKey.equals(link.getTargetIssueKey());
+ });
+ } finally {
+ issueKeys.forEach(this::deleteIssue);
+ }
+ }
+
+ @Test
+ public void workLog() {
+ // Create issue
+ String issueKey = createIssue();
+ try {
+ // Log work
+ RestAssured.given()
+ .contentType(ContentType.TEXT)
+ .pathParam("key", issueKey)
+ .body("30")
+ .when()
+ .post("/jira/issue/{key}/log/work")
+ .then()
+ .statusCode(200);
+
+ // Verify logged work
+ await().atMost(10, TimeUnit.SECONDS).pollDelay(1, TimeUnit.SECONDS).until(() -> {
+ Issue issue = getClient().getIssueClient().getIssue(issueKey).claim();
+ assertNotNull(issue);
+
+ Iterable<Worklog> workLogs = issue.getWorklogs();
+ assertNotNull(workLogs);
+
+ Worklog workLog = workLogs.iterator().next();
+ assertNotNull(workLog);
+
+ return workLog.getMinutesSpent() == 30 && workLog.getComment().equals("Work logged: 30");
+ });
+ } finally {
+ deleteIssue(issueKey);
+ }
+ }
+
+ @Test
+ public void workflowTransition() {
+ // Create issue
+ String issueKey = createIssue();
+ try {
+ Issue originalIssue = getClient().getIssueClient().getIssue(issueKey).claim();
+ assertNotNull(originalIssue);
+
+ Resolution originalResolution = originalIssue.getResolution();
+ assertNull(originalResolution);
+
+ String transitionId = System.getenv("JIRA_TRANSITION_ID");
+ if (transitionId == null) {
+ // The default for the Jira docker server
+ transitionId = "31";
+ }
+
+ // Transition issue
+ RestAssured.given()
+ .contentType(ContentType.TEXT)
+ .pathParam("key", issueKey)
+ .body(transitionId)
+ .when()
+ .post("/jira/issue/{key}/transition")
+ .then()
+ .statusCode(200);
+
+ // Verify issue workflow transition
+ await().atMost(10, TimeUnit.SECONDS).pollDelay(1, TimeUnit.SECONDS).until(() -> {
+ Issue issue = getClient().getIssueClient().getIssue(issueKey).claim();
+ assertNotNull(issue);
+
+ Resolution resolution = issue.getResolution();
+ return resolution != null;
+ });
+ } finally {
+ deleteIssue(issueKey);
+ }
+ }
+
+ private String createIssue() {
+ return RestAssured.given()
.contentType(ContentType.TEXT)
- .queryParam("jiraUrl", jiraUrl)
- .body("Demo issue body")
+ .queryParam("summary", ISSUE_SUMMARY)
+ .queryParam("type", ISSUE_TYPE)
+ .body(ISSUE_DESCRIPTION)
.when()
- .post("/jira/post")
+ .post("/jira/issue")
.then()
.statusCode(201)
- .body(matchesPattern("[A-Z]+-[0-9]+"));
+ .body(
+ "description", equalTo(ISSUE_DESCRIPTION),
+ "key", matchesPattern("[A-Z]+-[0-9]+"),
+ "summary", equalTo(ISSUE_SUMMARY),
+ "type", equalTo(ISSUE_TYPE))
+ .extract()
+ .jsonPath()
+ .getString("key");
+ }
+
+ private void deleteIssue(String issueKey) {
+ try {
+ getClient().getIssueClient()
+ .deleteIssue(issueKey, true)
+ .claim();
+ } catch (Exception e) {
+ // Ignore - issue may not exist
+ }
+ }
+
+ private static JiraRestClient getClient() {
+ if (REST_CLIENT == null) {
+ Config config = ConfigProvider.getConfig();
+ String jiraUrl = config.getValue("camel.component.jira.jira-url", String.class);
+ Optional<String> username = config.getOptionalValue("camel.component.jira.username", String.class);
+ Optional<String> password = config.getOptionalValue("camel.component.jira.password", String.class);
+
+ JiraRestClientFactory factory = new OAuthAsynchronousJiraRestClientFactory();
+ URI jiraServerUri = URI.create(jiraUrl);
+ if (username.isPresent() && password.isPresent()) {
+ return factory.createWithBasicHttpAuthentication(jiraServerUri, username.get(), password.get());
+ }
+ throw new IllegalStateException("Unable to create Jira client");
+ }
+ return REST_CLIENT;
}
}
diff --git a/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTestResource.java b/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTestResource.java
new file mode 100644
index 0000000..ba66759
--- /dev/null
+++ b/integration-tests/jira/src/test/java/org/apache/camel/quarkus/component/jira/it/JiraTestResource.java
@@ -0,0 +1,88 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.camel.quarkus.component.jira.it;
+
+import java.util.Map;
+
+import org.apache.camel.quarkus.test.wiremock.WireMockTestResourceLifecycleManager;
+
+public class JiraTestResource extends WireMockTestResourceLifecycleManager {
+
+ private static final String JIRA_ENV_URL = "JIRA_URL";
+ private static final String JIRA_ENV_USERNAME = "JIRA_USERNAME";
+ private static final String JIRA_ENV_PASSWORD = "JIRA_PASSWORD";
+ private static final String JIRA_ENV_ISSUES_PROJECT_KEY = "JIRA_ISSUES_PROJECT_KEY";
+ private static final String JIRA_ENV_OAUTH_ACCESS_TOKEN = "JIRA_OAUTH_ACCESS_TOKEN";
+ private static final String JIRA_ENV_OAUTH_CONSUMER_KEY = "JIRA_OAUTH_CONSUMER_KEY";
+ private static final String JIRA_ENV_OAUTH_PRIVATE_KEY = "JIRA_OAUTH_PRIVATE_KEY";
+ private static final String JIRA_ENV_OAUTH_VERIFICATION_CODE = "JIRA_OAUTH_VERIFICATION_CODE";
+
+ @Override
+ public Map<String, String> start() {
+ Map<String, String> options = super.start();
+ String jiraUrl = envOrDefault(JIRA_ENV_URL, "http://localhost:8080");
+ if (options.containsKey("wiremock.url")) {
+ jiraUrl = options.get("wiremock.url");
+ }
+
+ options.put("jira.issues.project-key", envOrDefault(JIRA_ENV_ISSUES_PROJECT_KEY, "TEST"));
+ options.put("camel.component.jira.jira-url", jiraUrl);
+
+ if (isOauth()) {
+ options.put("camel.component.jira.access-token", envOrDefault(JIRA_ENV_OAUTH_ACCESS_TOKEN, ""));
+ options.put("camel.component.jira.consumer-key", envOrDefault(JIRA_ENV_OAUTH_CONSUMER_KEY, ""));
+ options.put("camel.component.jira.private-key", envOrDefault(JIRA_ENV_OAUTH_PRIVATE_KEY, ""));
+ options.put("camel.component.jira.verification-code", envOrDefault(JIRA_ENV_OAUTH_VERIFICATION_CODE, ""));
+ } else {
+ options.put("camel.component.jira.username", envOrDefault(JIRA_ENV_USERNAME, "jiratester"));
+ options.put("camel.component.jira.password", envOrDefault(JIRA_ENV_PASSWORD, "tester123"));
+ }
+
+ return options;
+ }
+
+ @Override
+ protected String getRecordTargetBaseUrl() {
+ return envOrDefault(JIRA_ENV_URL, null);
+ }
+
+ @Override
+ protected boolean isMockingEnabled() {
+ if (isOauth()) {
+ return !envVarsPresent(
+ JIRA_ENV_URL,
+ JIRA_ENV_ISSUES_PROJECT_KEY,
+ JIRA_ENV_OAUTH_ACCESS_TOKEN,
+ JIRA_ENV_OAUTH_CONSUMER_KEY,
+ JIRA_ENV_OAUTH_PRIVATE_KEY,
+ JIRA_ENV_OAUTH_VERIFICATION_CODE);
+ }
+ return !envVarsPresent(
+ JIRA_ENV_URL,
+ JIRA_ENV_USERNAME,
+ JIRA_ENV_PASSWORD,
+ JIRA_ENV_ISSUES_PROJECT_KEY);
+ }
+
+ private boolean isOauth() {
+ return envVarsPresent(
+ JIRA_ENV_OAUTH_ACCESS_TOKEN,
+ JIRA_ENV_OAUTH_CONSUMER_KEY,
+ JIRA_ENV_OAUTH_PRIVATE_KEY,
+ JIRA_ENV_OAUTH_VERIFICATION_CODE);
+ }
+}
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-67-0e1e85c8-d0b1-42b3-9a7d-2aa604b82ac7.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-67-0e1e85c8-d0b1-42b3-9a7d-2aa604b82ac7.json
new file mode 100644
index 0000000..37d3d50
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-67-0e1e85c8-d0b1-42b3-9a7d-2aa604b82ac7.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10348","self":"http://localhost:8080/rest/api/latest/issue/10348","key":"TEST-67","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-67-940c0b21-7d1a-4963-9cbf-cc9d1f607dbd.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-67-940c0b21-7d1a-4963-9cbf-cc9d1f607dbd.json
new file mode 100644
index 0000000..5b1056b
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-67-940c0b21-7d1a-4963-9cbf-cc9d1f607dbd.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10348","self":"http://localhost:8080/rest/api/latest/issue/10348","key":"TEST-67","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-67-be652193-8a26-42ec-bb0d-7115cd37f3cd.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-67-be652193-8a26-42ec-bb0d-7115cd37f3cd.json
new file mode 100644
index 0000000..926dbc0
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-67-be652193-8a26-42ec-bb0d-7115cd37f3cd.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10348","self":"http://localhost:8080/rest/api/latest/issue/10348","key":"TEST-67","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-67-c56637eb-f7dc-4d5b-8471-e518046ed496.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-67-c56637eb-f7dc-4d5b-8471-e518046ed496.json
new file mode 100644
index 0000000..f8f8a41
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-67-c56637eb-f7dc-4d5b-8471-e518046ed496.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10348","self":"http://localhost:8080/rest/api/latest/issue/10348","key":"TEST-67","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-68-15047dda-1b77-48f5-97c7-79c43e0a3665.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-68-15047dda-1b77-48f5-97c7-79c43e0a3665.json
new file mode 100644
index 0000000..a3035f2
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-68-15047dda-1b77-48f5-97c7-79c43e0a3665.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10349","self":"http://localhost:8080/rest/api/latest/issue/10349","key":"TEST-68","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-68-17c49ae9-16b4-48d6-abfd-7e2ace597a08.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-68-17c49ae9-16b4-48d6-abfd-7e2ace597a08.json
new file mode 100644
index 0000000..baa5cf8
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-68-17c49ae9-16b4-48d6-abfd-7e2ace597a08.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10349","self":"http://localhost:8080/rest/api/latest/issue/10349","key":"TEST-68","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-68-28c61bd1-5321-4eb4-8aee-1056001b18a6.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-68-28c61bd1-5321-4eb4-8aee-1056001b18a6.json
new file mode 100644
index 0000000..ab5157d
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-68-28c61bd1-5321-4eb4-8aee-1056001b18a6.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10349","self":"http://localhost:8080/rest/api/latest/issue/10349","key":"TEST-68","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-68-c09a3e23-4fee-4ee5-9d8b-426c0aa1004c.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-68-c09a3e23-4fee-4ee5-9d8b-426c0aa1004c.json
new file mode 100644
index 0000000..8814d46
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-68-c09a3e23-4fee-4ee5-9d8b-426c0aa1004c.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10349","self":"http://localhost:8080/rest/api/latest/issue/10349","key":"TEST-68","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-69-a114dae3-19a3-486d-8c6a-18fd26d9a80f.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-69-a114dae3-19a3-486d-8c6a-18fd26d9a80f.json
new file mode 100644
index 0000000..d7a135d
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-69-a114dae3-19a3-486d-8c6a-18fd26d9a80f.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10350","self":"http://localhost:8080/rest/api/latest/issue/10350","key":"TEST-69","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-69-a8c98e7e-0414-4b4e-8fae-bb248a8feab8.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-69-a8c98e7e-0414-4b4e-8fae-bb248a8feab8.json
new file mode 100644
index 0000000..3ed17b3
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-69-a8c98e7e-0414-4b4e-8fae-bb248a8feab8.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10350","self":"http://localhost:8080/rest/api/latest/issue/10350","key":"TEST-69","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-69-b577e1c5-cc4e-436b-9c57-50a8d0d605c1.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-69-b577e1c5-cc4e-436b-9c57-50a8d0d605c1.json
new file mode 100644
index 0000000..7cf07de
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-69-b577e1c5-cc4e-436b-9c57-50a8d0d605c1.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10350","self":"http://localhost:8080/rest/api/latest/issue/10350","key":"TEST-69","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-69-ebe35966-c69e-453f-af61-b7d1fd5407c9.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-69-ebe35966-c69e-453f-af61-b7d1fd5407c9.json
new file mode 100644
index 0000000..7d2a4e3
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-69-ebe35966-c69e-453f-af61-b7d1fd5407c9.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10350","self":"http://localhost:8080/rest/api/latest/issue/10350","key":"TEST-69","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-70-288f33f8-ff30-42e6-91cc-27469a454c1f.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-70-288f33f8-ff30-42e6-91cc-27469a454c1f.json
new file mode 100644
index 0000000..5b951a1
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-70-288f33f8-ff30-42e6-91cc-27469a454c1f.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10351","self":"http://localhost:8080/rest/api/latest/issue/10351","key":"TEST-70","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-09b7636c-39fa-4cb3-8fe1-43afb1034924.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-09b7636c-39fa-4cb3-8fe1-43afb1034924.json
new file mode 100644
index 0000000..e21d409
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-09b7636c-39fa-4cb3-8fe1-43afb1034924.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10352","self":"http://localhost:8080/rest/api/latest/issue/10352","key":"TEST-71","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-0e6a77cf-578a-4421-b0e6-9e75f9015ffc.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-0e6a77cf-578a-4421-b0e6-9e75f9015ffc.json
new file mode 100644
index 0000000..19c7298
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-0e6a77cf-578a-4421-b0e6-9e75f9015ffc.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10352","self":"http://localhost:8080/rest/api/latest/issue/10352","key":"TEST-71","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-2470cded-eff1-4696-b664-c6a6afb48352.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-2470cded-eff1-4696-b664-c6a6afb48352.json
new file mode 100644
index 0000000..22001c0
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-2470cded-eff1-4696-b664-c6a6afb48352.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10352","self":"http://localhost:8080/rest/api/latest/issue/10352","key":"TEST-71","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-95392d7a-cee3-4493-808c-f7db7b8c5f9b.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-95392d7a-cee3-4493-808c-f7db7b8c5f9b.json
new file mode 100644
index 0000000..5764755
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-95392d7a-cee3-4493-808c-f7db7b8c5f9b.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10352","self":"http://localhost:8080/rest/api/latest/issue/10352","key":"TEST-71","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-b6cc2884-c9ed-4161-a671-3413813b4db2.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-b6cc2884-c9ed-4161-a671-3413813b4db2.json
new file mode 100644
index 0000000..7e99ea7
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-71-b6cc2884-c9ed-4161-a671-3413813b4db2.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10352","self":"http://localhost:8080/rest/api/latest/issue/10352","key":"TEST-71","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-72-baa1260a-1c45-43aa-b4d1-9a5a2f296d7a.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-72-baa1260a-1c45-43aa-b4d1-9a5a2f296d7a.json
new file mode 100644
index 0000000..f4302f1
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-72-baa1260a-1c45-43aa-b4d1-9a5a2f296d7a.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10353","self":"http://localhost:8080/rest/api/latest/issue/10353","key":"TEST-72","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-72-bb4bde6d-b387-4cd6-a308-aacf38d6fd5d.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-72-bb4bde6d-b387-4cd6-a308-aacf38d6fd5d.json
new file mode 100644
index 0000000..c61ead4
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-72-bb4bde6d-b387-4cd6-a308-aacf38d6fd5d.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10353","self":"http://localhost:8080/rest/api/latest/issue/10353","key":"TEST-72","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-73-97967053-b459-441a-9f03-b603ca69c22e.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-73-97967053-b459-441a-9f03-b603ca69c22e.json
new file mode 100644
index 0000000..5f2aabc
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-73-97967053-b459-441a-9f03-b603ca69c22e.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10354","self":"http://localhost:8080/rest/api/latest/issue/10354","key":"TEST-73","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-74-75c0d24d-5575-490f-a590-020bd992afe4.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-74-75c0d24d-5575-490f-a590-020bd992afe4.json
new file mode 100644
index 0000000..ab62657
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-74-75c0d24d-5575-490f-a590-020bd992afe4.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10355","self":"http://localhost:8080/rest/api/latest/issue/10355","key":"TEST-74","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-74-920e8e36-2afc-438d-bca6-d1d28116988c.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-74-920e8e36-2afc-438d-bca6-d1d28116988c.json
new file mode 100644
index 0000000..7061e40
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-74-920e8e36-2afc-438d-bca6-d1d28116988c.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10355","self":"http://localhost:8080/rest/api/latest/issue/10355","key":"TEST-74","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-74-a9022ea4-4500-4fa8-9638-b8ac76464b4f.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-74-a9022ea4-4500-4fa8-9638-b8ac76464b4f.json
new file mode 100644
index 0000000..66d91f1
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_issue_test-74-a9022ea4-4500-4fa8-9638-b8ac76464b4f.json
@@ -0,0 +1 @@
+{"expand":"renderedFields,names,schema,transitions,operations,editmeta,changelog,versionedRepresentations","id":"10355","self":"http://localhost:8080/rest/api/latest/issue/10355","key":"TEST-74","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Task","subtask":false,"avatarId":10318},"timespen [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-2eb3eb45-a63a-4655-9d1f-ef82f4d3b825.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-2eb3eb45-a63a-4655-9d1f-ef82f4d3b825.json
new file mode 100644
index 0000000..23cbaf8
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-2eb3eb45-a63a-4655-9d1f-ef82f4d3b825.json
@@ -0,0 +1 @@
+{"expand":"names,schema","startAt":0,"maxResults":1,"total":2,"issues":[{"expand":"operations,versionedRepresentations,editmeta,changelog,renderedFields","id":"10350","self":"http://localhost:8080/rest/api/latest/issue/10350","key":"TEST-69","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Ta [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-4dc289c5-0522-4632-813f-295f4be67eaf.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-4dc289c5-0522-4632-813f-295f4be67eaf.json
new file mode 100644
index 0000000..e7b38c0
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-4dc289c5-0522-4632-813f-295f4be67eaf.json
@@ -0,0 +1 @@
+{"expand":"names,schema","startAt":0,"maxResults":1,"total":2,"issues":[{"expand":"operations,versionedRepresentations,editmeta,changelog,renderedFields","id":"10350","self":"http://localhost:8080/rest/api/latest/issue/10350","key":"TEST-69","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Ta [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-5a3ae50c-9eee-45ea-bb4e-28b2864e392d.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-5a3ae50c-9eee-45ea-bb4e-28b2864e392d.json
new file mode 100644
index 0000000..6177532
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-5a3ae50c-9eee-45ea-bb4e-28b2864e392d.json
@@ -0,0 +1 @@
+{"expand":"names,schema","startAt":0,"maxResults":1,"total":2,"issues":[{"expand":"operations,versionedRepresentations,editmeta,changelog,renderedFields","id":"10351","self":"http://localhost:8080/rest/api/latest/issue/10351","key":"TEST-70","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Ta [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-a8497662-b947-4b46-9815-9e04995588c8.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-a8497662-b947-4b46-9815-9e04995588c8.json
new file mode 100644
index 0000000..74480ba
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-a8497662-b947-4b46-9815-9e04995588c8.json
@@ -0,0 +1 @@
+{"expand":"names,schema","startAt":0,"maxResults":1,"total":1,"issues":[{"expand":"operations,versionedRepresentations,editmeta,changelog,renderedFields","id":"10351","self":"http://localhost:8080/rest/api/latest/issue/10351","key":"TEST-70","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Ta [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-ce09e8e1-0c2f-4646-a58a-dcf55e4de092.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-ce09e8e1-0c2f-4646-a58a-dcf55e4de092.json
new file mode 100644
index 0000000..ecb6893
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-ce09e8e1-0c2f-4646-a58a-dcf55e4de092.json
@@ -0,0 +1 @@
+{"expand":"names,schema","startAt":0,"maxResults":1,"total":2,"issues":[{"expand":"operations,versionedRepresentations,editmeta,changelog,renderedFields","id":"10351","self":"http://localhost:8080/rest/api/latest/issue/10351","key":"TEST-70","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10003","id":"10003","description":"A task that needs to be done.","iconUrl":"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype","name":"Ta [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-ea789be6-5899-46e7-ab02-8ec3692596f5.json b/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-ea789be6-5899-46e7-ab02-8ec3692596f5.json
new file mode 100644
index 0000000..d7c54dc
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/__files/rest_api_latest_search-ea789be6-5899-46e7-ab02-8ec3692596f5.json
@@ -0,0 +1 @@
+{"expand":"names,schema","startAt":0,"maxResults":1,"total":1,"issues":[{"expand":"operations,versionedRepresentations,editmeta,changelog,renderedFields","id":"10304","self":"http://localhost:8080/rest/api/latest/issue/10304","key":"TEST-23","fields":{"issuetype":{"self":"http://localhost:8080/rest/api/2/issuetype/10002","id":"10002","description":"Created by Jira Software - do not edit or delete. Issue type for a user story.","iconUrl":"http://localhost:8080/images/icons/issuetypes/stor [...]
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-467257d0-dc2a-4066-8eb8-1e91b1a95cc4.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-467257d0-dc2a-4066-8eb8-1e91b1a95cc4.json
new file mode 100644
index 0000000..e21ba40
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-467257d0-dc2a-4066-8eb8-1e91b1a95cc4.json
@@ -0,0 +1,39 @@
+{
+ "id" : "467257d0-dc2a-4066-8eb8-1e91b1a95cc4",
+ "name" : "rest_api_latest_issue",
+ "request" : {
+ "url" : "/rest/api/latest/issue",
+ "method" : "POST",
+ "bodyPatterns" : [ {
+ "equalToJson" : "{\"fields\":{\"summary\":\"Camel Quarkus Test Issue Summary\",\"issuetype\":{\"id\":\"10003\"},\"project\":{\"key\":\"TEST\"},\"description\":\"Camel Quarkus Test Issue Description\"},\"properties\":[]}",
+ "ignoreArrayOrder" : true,
+ "ignoreExtraElements" : true
+ } ]
+ },
+ "response" : {
+ "status" : 201,
+ "body" : "{\"id\":\"10353\",\"key\":\"TEST-72\",\"self\":\"http://localhost:8080/rest/api/latest/issue/10353\"}",
+ "headers" : {
+ "X-AREQUESTID" : "667x2745x1",
+ "X-ASESSIONID" : "2te3mh",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:54 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "467257d0-dc2a-4066-8eb8-1e91b1a95cc4",
+ "persistent" : true,
+ "scenarioName" : "scenario-2-rest-api-latest-issue",
+ "requiredScenarioState" : "scenario-2-rest-api-latest-issue-6",
+ "newScenarioState" : "scenario-2-rest-api-latest-issue-7",
+ "insertionIndex" : 47
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-4846b302-a78c-4342-9770-fe311569d92d.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-4846b302-a78c-4342-9770-fe311569d92d.json
new file mode 100644
index 0000000..be8627a
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-4846b302-a78c-4342-9770-fe311569d92d.json
@@ -0,0 +1,39 @@
+{
+ "id" : "4846b302-a78c-4342-9770-fe311569d92d",
+ "name" : "rest_api_latest_issue",
+ "request" : {
+ "url" : "/rest/api/latest/issue",
+ "method" : "POST",
+ "bodyPatterns" : [ {
+ "equalToJson" : "{\"fields\":{\"summary\":\"Camel Quarkus Test Issue Summary\",\"issuetype\":{\"id\":\"10003\"},\"project\":{\"key\":\"TEST\"},\"description\":\"Camel Quarkus Test Issue Description\"},\"properties\":[]}",
+ "ignoreArrayOrder" : true,
+ "ignoreExtraElements" : true
+ } ]
+ },
+ "response" : {
+ "status" : 201,
+ "body" : "{\"id\":\"10351\",\"key\":\"TEST-70\",\"self\":\"http://localhost:8080/rest/api/latest/issue/10351\"}",
+ "headers" : {
+ "X-AREQUESTID" : "667x2724x1",
+ "X-ASESSIONID" : "2te3mh",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:48 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "4846b302-a78c-4342-9770-fe311569d92d",
+ "persistent" : true,
+ "scenarioName" : "scenario-2-rest-api-latest-issue",
+ "requiredScenarioState" : "scenario-2-rest-api-latest-issue-4",
+ "newScenarioState" : "scenario-2-rest-api-latest-issue-5",
+ "insertionIndex" : 28
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-6d80c43a-e688-4e0c-a26f-6b44a32b3ba3.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-6d80c43a-e688-4e0c-a26f-6b44a32b3ba3.json
new file mode 100644
index 0000000..f9170c4
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-6d80c43a-e688-4e0c-a26f-6b44a32b3ba3.json
@@ -0,0 +1,39 @@
+{
+ "id" : "6d80c43a-e688-4e0c-a26f-6b44a32b3ba3",
+ "name" : "rest_api_latest_issue",
+ "request" : {
+ "url" : "/rest/api/latest/issue",
+ "method" : "POST",
+ "bodyPatterns" : [ {
+ "equalToJson" : "{\"fields\":{\"summary\":\"Camel Quarkus Test Issue Summary\",\"issuetype\":{\"id\":\"10003\"},\"project\":{\"key\":\"TEST\"},\"description\":\"Camel Quarkus Test Issue Description\"},\"properties\":[]}",
+ "ignoreArrayOrder" : true,
+ "ignoreExtraElements" : true
+ } ]
+ },
+ "response" : {
+ "status" : 201,
+ "body" : "{\"id\":\"10348\",\"key\":\"TEST-67\",\"self\":\"http://localhost:8080/rest/api/latest/issue/10348\"}",
+ "headers" : {
+ "X-AREQUESTID" : "667x2695x1",
+ "X-ASESSIONID" : "2te3mh",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:43 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "6d80c43a-e688-4e0c-a26f-6b44a32b3ba3",
+ "persistent" : true,
+ "scenarioName" : "scenario-2-rest-api-latest-issue",
+ "requiredScenarioState" : "Started",
+ "newScenarioState" : "scenario-2-rest-api-latest-issue-2",
+ "insertionIndex" : 2
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-956a8664-2312-4fdd-b9db-978df0bd8595.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-956a8664-2312-4fdd-b9db-978df0bd8595.json
new file mode 100644
index 0000000..96b68ad
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-956a8664-2312-4fdd-b9db-978df0bd8595.json
@@ -0,0 +1,38 @@
+{
+ "id" : "956a8664-2312-4fdd-b9db-978df0bd8595",
+ "name" : "rest_api_latest_issue",
+ "request" : {
+ "url" : "/rest/api/latest/issue",
+ "method" : "POST",
+ "bodyPatterns" : [ {
+ "equalToJson" : "{\"fields\":{\"summary\":\"Camel Quarkus Test Issue Summary\",\"issuetype\":{\"id\":\"10003\"},\"project\":{\"key\":\"TEST\"},\"description\":\"Camel Quarkus Test Issue Description\"},\"properties\":[]}",
+ "ignoreArrayOrder" : true,
+ "ignoreExtraElements" : true
+ } ]
+ },
+ "response" : {
+ "status" : 201,
+ "body" : "{\"id\":\"10355\",\"key\":\"TEST-74\",\"self\":\"http://localhost:8080/rest/api/latest/issue/10355\"}",
+ "headers" : {
+ "X-AREQUESTID" : "667x2756x1",
+ "X-ASESSIONID" : "2te3mh",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:55 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "956a8664-2312-4fdd-b9db-978df0bd8595",
+ "persistent" : true,
+ "scenarioName" : "scenario-2-rest-api-latest-issue",
+ "requiredScenarioState" : "scenario-2-rest-api-latest-issue-8",
+ "insertionIndex" : 58
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-bae70b60-36da-4aef-954f-0d8dfc2230b5.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-bae70b60-36da-4aef-954f-0d8dfc2230b5.json
new file mode 100644
index 0000000..19d344a
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-bae70b60-36da-4aef-954f-0d8dfc2230b5.json
@@ -0,0 +1,39 @@
+{
+ "id" : "bae70b60-36da-4aef-954f-0d8dfc2230b5",
+ "name" : "rest_api_latest_issue",
+ "request" : {
+ "url" : "/rest/api/latest/issue",
+ "method" : "POST",
+ "bodyPatterns" : [ {
+ "equalToJson" : "{\"fields\":{\"summary\":\"Camel Quarkus Test Issue Summary\",\"issuetype\":{\"id\":\"10003\"},\"project\":{\"key\":\"TEST\"},\"description\":\"Camel Quarkus Test Issue Description\"},\"properties\":[]}",
+ "ignoreArrayOrder" : true,
+ "ignoreExtraElements" : true
+ } ]
+ },
+ "response" : {
+ "status" : 201,
+ "body" : "{\"id\":\"10354\",\"key\":\"TEST-73\",\"self\":\"http://localhost:8080/rest/api/latest/issue/10354\"}",
+ "headers" : {
+ "X-AREQUESTID" : "667x2748x1",
+ "X-ASESSIONID" : "2te3mh",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:54 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "bae70b60-36da-4aef-954f-0d8dfc2230b5",
+ "persistent" : true,
+ "scenarioName" : "scenario-2-rest-api-latest-issue",
+ "requiredScenarioState" : "scenario-2-rest-api-latest-issue-7",
+ "newScenarioState" : "scenario-2-rest-api-latest-issue-8",
+ "insertionIndex" : 50
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-bd873ed1-07bb-44e7-b0b9-2030420211aa.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-bd873ed1-07bb-44e7-b0b9-2030420211aa.json
new file mode 100644
index 0000000..6a8cccc
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-bd873ed1-07bb-44e7-b0b9-2030420211aa.json
@@ -0,0 +1,39 @@
+{
+ "id" : "bd873ed1-07bb-44e7-b0b9-2030420211aa",
+ "name" : "rest_api_latest_issue",
+ "request" : {
+ "url" : "/rest/api/latest/issue",
+ "method" : "POST",
+ "bodyPatterns" : [ {
+ "equalToJson" : "{\"fields\":{\"summary\":\"Camel Quarkus Test Issue Summary\",\"issuetype\":{\"id\":\"10003\"},\"project\":{\"key\":\"TEST\"},\"description\":\"Camel Quarkus Test Issue Description\"},\"properties\":[]}",
+ "ignoreArrayOrder" : true,
+ "ignoreExtraElements" : true
+ } ]
+ },
+ "response" : {
+ "status" : 201,
+ "body" : "{\"id\":\"10349\",\"key\":\"TEST-68\",\"self\":\"http://localhost:8080/rest/api/latest/issue/10349\"}",
+ "headers" : {
+ "X-AREQUESTID" : "667x2704x1",
+ "X-ASESSIONID" : "2te3mh",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:45 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "bd873ed1-07bb-44e7-b0b9-2030420211aa",
+ "persistent" : true,
+ "scenarioName" : "scenario-2-rest-api-latest-issue",
+ "requiredScenarioState" : "scenario-2-rest-api-latest-issue-2",
+ "newScenarioState" : "scenario-2-rest-api-latest-issue-3",
+ "insertionIndex" : 10
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-c2c8d72a-625e-4759-9878-5bc9babfca2e.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-c2c8d72a-625e-4759-9878-5bc9babfca2e.json
new file mode 100644
index 0000000..acadb74
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-c2c8d72a-625e-4759-9878-5bc9babfca2e.json
@@ -0,0 +1,39 @@
+{
+ "id" : "c2c8d72a-625e-4759-9878-5bc9babfca2e",
+ "name" : "rest_api_latest_issue",
+ "request" : {
+ "url" : "/rest/api/latest/issue",
+ "method" : "POST",
+ "bodyPatterns" : [ {
+ "equalToJson" : "{\"fields\":{\"summary\":\"Camel Quarkus Test Issue Summary\",\"issuetype\":{\"id\":\"10003\"},\"project\":{\"key\":\"TEST\"},\"description\":\"Camel Quarkus Test Issue Description\"},\"properties\":[]}",
+ "ignoreArrayOrder" : true,
+ "ignoreExtraElements" : true
+ } ]
+ },
+ "response" : {
+ "status" : 201,
+ "body" : "{\"id\":\"10350\",\"key\":\"TEST-69\",\"self\":\"http://localhost:8080/rest/api/latest/issue/10350\"}",
+ "headers" : {
+ "X-AREQUESTID" : "667x2712x1",
+ "X-ASESSIONID" : "2te3mh",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:46 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "c2c8d72a-625e-4759-9878-5bc9babfca2e",
+ "persistent" : true,
+ "scenarioName" : "scenario-2-rest-api-latest-issue",
+ "requiredScenarioState" : "scenario-2-rest-api-latest-issue-3",
+ "newScenarioState" : "scenario-2-rest-api-latest-issue-4",
+ "insertionIndex" : 17
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-d88f3854-1abc-4c19-a94b-faefb8e119a1.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-d88f3854-1abc-4c19-a94b-faefb8e119a1.json
new file mode 100644
index 0000000..76f16d2
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue-d88f3854-1abc-4c19-a94b-faefb8e119a1.json
@@ -0,0 +1,39 @@
+{
+ "id" : "d88f3854-1abc-4c19-a94b-faefb8e119a1",
+ "name" : "rest_api_latest_issue",
+ "request" : {
+ "url" : "/rest/api/latest/issue",
+ "method" : "POST",
+ "bodyPatterns" : [ {
+ "equalToJson" : "{\"fields\":{\"summary\":\"Camel Quarkus Test Issue Summary\",\"issuetype\":{\"id\":\"10003\"},\"project\":{\"key\":\"TEST\"},\"description\":\"Camel Quarkus Test Issue Description\"},\"properties\":[]}",
+ "ignoreArrayOrder" : true,
+ "ignoreExtraElements" : true
+ } ]
+ },
+ "response" : {
+ "status" : 201,
+ "body" : "{\"id\":\"10352\",\"key\":\"TEST-71\",\"self\":\"http://localhost:8080/rest/api/latest/issue/10352\"}",
+ "headers" : {
+ "X-AREQUESTID" : "667x2733x1",
+ "X-ASESSIONID" : "2te3mh",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:51 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "d88f3854-1abc-4c19-a94b-faefb8e119a1",
+ "persistent" : true,
+ "scenarioName" : "scenario-2-rest-api-latest-issue",
+ "requiredScenarioState" : "scenario-2-rest-api-latest-issue-5",
+ "newScenarioState" : "scenario-2-rest-api-latest-issue-6",
+ "insertionIndex" : 37
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-0e1e85c8-d0b1-42b3-9a7d-2aa604b82ac7.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-0e1e85c8-d0b1-42b3-9a7d-2aa604b82ac7.json
new file mode 100644
index 0000000..f0da67a
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-0e1e85c8-d0b1-42b3-9a7d-2aa604b82ac7.json
@@ -0,0 +1,33 @@
+{
+ "id" : "0e1e85c8-d0b1-42b3-9a7d-2aa604b82ac7",
+ "name" : "rest_api_latest_issue_test-67",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-67?expand=schema%2Cnames%2Ctransitions",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_issue_test-67-0e1e85c8-d0b1-42b3-9a7d-2aa604b82ac7.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2701x1",
+ "X-ASESSIONID" : "kpb0b3",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:45 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "0e1e85c8-d0b1-42b3-9a7d-2aa604b82ac7",
+ "persistent" : true,
+ "scenarioName" : "scenario-3-rest-api-latest-issue-TEST-67",
+ "requiredScenarioState" : "scenario-3-rest-api-latest-issue-TEST-67-4",
+ "insertionIndex" : 7
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-7b93fd68-1f69-4005-ae76-056af9123977.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-7b93fd68-1f69-4005-ae76-056af9123977.json
new file mode 100644
index 0000000..61ecf40
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-7b93fd68-1f69-4005-ae76-056af9123977.json
@@ -0,0 +1,30 @@
+{
+ "id" : "7b93fd68-1f69-4005-ae76-056af9123977",
+ "name" : "rest_api_latest_issue_test-67",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-67?deleteSubtasks=true",
+ "method" : "DELETE"
+ },
+ "response" : {
+ "status" : 204,
+ "headers" : {
+ "X-AREQUESTID" : "667x2702x1",
+ "X-ASESSIONID" : "kpb0b3",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:45 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "7b93fd68-1f69-4005-ae76-056af9123977",
+ "persistent" : true,
+ "insertionIndex" : 8
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-940c0b21-7d1a-4963-9cbf-cc9d1f607dbd.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-940c0b21-7d1a-4963-9cbf-cc9d1f607dbd.json
new file mode 100644
index 0000000..90c3035
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-940c0b21-7d1a-4963-9cbf-cc9d1f607dbd.json
@@ -0,0 +1,35 @@
+{
+ "id" : "940c0b21-7d1a-4963-9cbf-cc9d1f607dbd",
+ "name" : "rest_api_latest_issue_test-67",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-67?expand=schema%2Cnames%2Ctransitions",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_issue_test-67-940c0b21-7d1a-4963-9cbf-cc9d1f607dbd.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2698x1",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "Set-Cookie" : [ "JSESSIONID=0A1BA17702F331A1131F88F0A9670C53; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_6785f3cf7ba44e8a23f1bd918f70b845333cab65_lin; Path=/" ],
+ "X-Seraph-LoginReason" : "OK",
+ "X-ASESSIONID" : "1lz67bf",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:44 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "940c0b21-7d1a-4963-9cbf-cc9d1f607dbd",
+ "persistent" : true,
+ "scenarioName" : "scenario-3-rest-api-latest-issue-TEST-67",
+ "requiredScenarioState" : "scenario-3-rest-api-latest-issue-TEST-67-3",
+ "newScenarioState" : "scenario-3-rest-api-latest-issue-TEST-67-4",
+ "insertionIndex" : 5
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-be652193-8a26-42ec-bb0d-7115cd37f3cd.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-be652193-8a26-42ec-bb0d-7115cd37f3cd.json
new file mode 100644
index 0000000..0b3aa0d
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-be652193-8a26-42ec-bb0d-7115cd37f3cd.json
@@ -0,0 +1,34 @@
+{
+ "id" : "be652193-8a26-42ec-bb0d-7115cd37f3cd",
+ "name" : "rest_api_latest_issue_test-67",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-67?expand=schema%2Cnames%2Ctransitions",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_issue_test-67-be652193-8a26-42ec-bb0d-7115cd37f3cd.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2696x1",
+ "X-ASESSIONID" : "2te3mh",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:43 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "be652193-8a26-42ec-bb0d-7115cd37f3cd",
+ "persistent" : true,
+ "scenarioName" : "scenario-3-rest-api-latest-issue-TEST-67",
+ "requiredScenarioState" : "Started",
+ "newScenarioState" : "scenario-3-rest-api-latest-issue-TEST-67-2",
+ "insertionIndex" : 3
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-c56637eb-f7dc-4d5b-8471-e518046ed496.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-c56637eb-f7dc-4d5b-8471-e518046ed496.json
new file mode 100644
index 0000000..79f223d
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-67-c56637eb-f7dc-4d5b-8471-e518046ed496.json
@@ -0,0 +1,35 @@
+{
+ "id" : "c56637eb-f7dc-4d5b-8471-e518046ed496",
+ "name" : "rest_api_latest_issue_test-67",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-67?expand=schema%2Cnames%2Ctransitions",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_issue_test-67-c56637eb-f7dc-4d5b-8471-e518046ed496.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2697x1",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "Set-Cookie" : [ "JSESSIONID=6A722810FDCCEAD61563CBBF01E373D0; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_25f2bebc3af1e6c714d079c7f05acfc0e53013b2_lin; Path=/" ],
+ "X-Seraph-LoginReason" : "OK",
+ "X-ASESSIONID" : "kpb0b3",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:43 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "c56637eb-f7dc-4d5b-8471-e518046ed496",
+ "persistent" : true,
+ "scenarioName" : "scenario-3-rest-api-latest-issue-TEST-67",
+ "requiredScenarioState" : "scenario-3-rest-api-latest-issue-TEST-67-2",
+ "newScenarioState" : "scenario-3-rest-api-latest-issue-TEST-67-3",
+ "insertionIndex" : 4
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-05a2b7b2-8906-433a-a35d-02d96bacf022.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-05a2b7b2-8906-433a-a35d-02d96bacf022.json
new file mode 100644
index 0000000..28f2a0e
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-05a2b7b2-8906-433a-a35d-02d96bacf022.json
@@ -0,0 +1,30 @@
+{
+ "id" : "05a2b7b2-8906-433a-a35d-02d96bacf022",
+ "name" : "rest_api_latest_issue_test-68",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-68?deleteSubtasks=true",
+ "method" : "DELETE"
+ },
+ "response" : {
+ "status" : 204,
+ "headers" : {
+ "X-AREQUESTID" : "667x2710x1",
+ "X-ASESSIONID" : "kpb0b3",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:46 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "05a2b7b2-8906-433a-a35d-02d96bacf022",
+ "persistent" : true,
+ "insertionIndex" : 15
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-15047dda-1b77-48f5-97c7-79c43e0a3665.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-15047dda-1b77-48f5-97c7-79c43e0a3665.json
new file mode 100644
index 0000000..c7e0d61
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-15047dda-1b77-48f5-97c7-79c43e0a3665.json
@@ -0,0 +1,35 @@
+{
+ "id" : "15047dda-1b77-48f5-97c7-79c43e0a3665",
+ "name" : "rest_api_latest_issue_test-68",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-68?expand=schema%2Cnames%2Ctransitions",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_issue_test-68-15047dda-1b77-48f5-97c7-79c43e0a3665.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2706x1",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "Set-Cookie" : [ "JSESSIONID=C37E464FF373B9685137588546070B5A; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_6ae8dfb9f968afa891e6cae36068469a0cf762da_lin; Path=/" ],
+ "X-Seraph-LoginReason" : "OK",
+ "X-ASESSIONID" : "1mivwiw",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:45 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "15047dda-1b77-48f5-97c7-79c43e0a3665",
+ "persistent" : true,
+ "scenarioName" : "scenario-5-rest-api-latest-issue-TEST-68",
+ "requiredScenarioState" : "scenario-5-rest-api-latest-issue-TEST-68-2",
+ "newScenarioState" : "scenario-5-rest-api-latest-issue-TEST-68-3",
+ "insertionIndex" : 12
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-17c49ae9-16b4-48d6-abfd-7e2ace597a08.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-17c49ae9-16b4-48d6-abfd-7e2ace597a08.json
new file mode 100644
index 0000000..f4715a8
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-17c49ae9-16b4-48d6-abfd-7e2ace597a08.json
@@ -0,0 +1,34 @@
+{
+ "id" : "17c49ae9-16b4-48d6-abfd-7e2ace597a08",
+ "name" : "rest_api_latest_issue_test-68",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-68?expand=schema%2Cnames%2Ctransitions",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_issue_test-68-17c49ae9-16b4-48d6-abfd-7e2ace597a08.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2708x1",
+ "X-ASESSIONID" : "kpb0b3",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:46 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "17c49ae9-16b4-48d6-abfd-7e2ace597a08",
+ "persistent" : true,
+ "scenarioName" : "scenario-5-rest-api-latest-issue-TEST-68",
+ "requiredScenarioState" : "scenario-5-rest-api-latest-issue-TEST-68-3",
+ "newScenarioState" : "scenario-5-rest-api-latest-issue-TEST-68-4",
+ "insertionIndex" : 13
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-28c61bd1-5321-4eb4-8aee-1056001b18a6.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-28c61bd1-5321-4eb4-8aee-1056001b18a6.json
new file mode 100644
index 0000000..d4b9359
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-28c61bd1-5321-4eb4-8aee-1056001b18a6.json
@@ -0,0 +1,33 @@
+{
+ "id" : "28c61bd1-5321-4eb4-8aee-1056001b18a6",
+ "name" : "rest_api_latest_issue_test-68",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-68?expand=schema%2Cnames%2Ctransitions",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_issue_test-68-28c61bd1-5321-4eb4-8aee-1056001b18a6.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2709x1",
+ "X-ASESSIONID" : "kpb0b3",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:46 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "28c61bd1-5321-4eb4-8aee-1056001b18a6",
+ "persistent" : true,
+ "scenarioName" : "scenario-5-rest-api-latest-issue-TEST-68",
+ "requiredScenarioState" : "scenario-5-rest-api-latest-issue-TEST-68-4",
+ "insertionIndex" : 14
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-c09a3e23-4fee-4ee5-9d8b-426c0aa1004c.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-c09a3e23-4fee-4ee5-9d8b-426c0aa1004c.json
new file mode 100644
index 0000000..4a564a4
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-68-c09a3e23-4fee-4ee5-9d8b-426c0aa1004c.json
@@ -0,0 +1,34 @@
+{
+ "id" : "c09a3e23-4fee-4ee5-9d8b-426c0aa1004c",
+ "name" : "rest_api_latest_issue_test-68",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-68?expand=schema%2Cnames%2Ctransitions",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_issue_test-68-c09a3e23-4fee-4ee5-9d8b-426c0aa1004c.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2705x1",
+ "X-ASESSIONID" : "2te3mh",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:45 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "c09a3e23-4fee-4ee5-9d8b-426c0aa1004c",
+ "persistent" : true,
+ "scenarioName" : "scenario-5-rest-api-latest-issue-TEST-68",
+ "requiredScenarioState" : "Started",
+ "newScenarioState" : "scenario-5-rest-api-latest-issue-TEST-68-2",
+ "insertionIndex" : 11
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-450baa09-6b3f-4c51-8f58-a69e72aedb41.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-450baa09-6b3f-4c51-8f58-a69e72aedb41.json
new file mode 100644
index 0000000..8a61d6e
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-450baa09-6b3f-4c51-8f58-a69e72aedb41.json
@@ -0,0 +1,30 @@
+{
+ "id" : "450baa09-6b3f-4c51-8f58-a69e72aedb41",
+ "name" : "rest_api_latest_issue_test-69",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-69?deleteSubtasks=true",
+ "method" : "DELETE"
+ },
+ "response" : {
+ "status" : 204,
+ "headers" : {
+ "X-AREQUESTID" : "667x2721x1",
+ "X-ASESSIONID" : "kpb0b3",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:48 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "450baa09-6b3f-4c51-8f58-a69e72aedb41",
+ "persistent" : true,
+ "insertionIndex" : 25
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-a114dae3-19a3-486d-8c6a-18fd26d9a80f.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-a114dae3-19a3-486d-8c6a-18fd26d9a80f.json
new file mode 100644
index 0000000..cb0dd0f
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-a114dae3-19a3-486d-8c6a-18fd26d9a80f.json
@@ -0,0 +1,34 @@
+{
+ "id" : "a114dae3-19a3-486d-8c6a-18fd26d9a80f",
+ "name" : "rest_api_latest_issue_test-69",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-69?expand=schema%2Cnames%2Ctransitions",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_issue_test-69-a114dae3-19a3-486d-8c6a-18fd26d9a80f.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2713x1",
+ "X-ASESSIONID" : "2te3mh",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:46 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "a114dae3-19a3-486d-8c6a-18fd26d9a80f",
+ "persistent" : true,
+ "scenarioName" : "scenario-6-rest-api-latest-issue-TEST-69",
+ "requiredScenarioState" : "Started",
+ "newScenarioState" : "scenario-6-rest-api-latest-issue-TEST-69-2",
+ "insertionIndex" : 18
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-a8c98e7e-0414-4b4e-8fae-bb248a8feab8.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-a8c98e7e-0414-4b4e-8fae-bb248a8feab8.json
new file mode 100644
index 0000000..d79f2a0
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-a8c98e7e-0414-4b4e-8fae-bb248a8feab8.json
@@ -0,0 +1,33 @@
+{
+ "id" : "a8c98e7e-0414-4b4e-8fae-bb248a8feab8",
+ "name" : "rest_api_latest_issue_test-69",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-69?expand=schema%2Cnames%2Ctransitions",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_issue_test-69-a8c98e7e-0414-4b4e-8fae-bb248a8feab8.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2720x1",
+ "X-ASESSIONID" : "r44kdk",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:48 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "a8c98e7e-0414-4b4e-8fae-bb248a8feab8",
+ "persistent" : true,
+ "scenarioName" : "scenario-6-rest-api-latest-issue-TEST-69",
+ "requiredScenarioState" : "scenario-6-rest-api-latest-issue-TEST-69-4",
+ "insertionIndex" : 24
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-b577e1c5-cc4e-436b-9c57-50a8d0d605c1.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-b577e1c5-cc4e-436b-9c57-50a8d0d605c1.json
new file mode 100644
index 0000000..4769a3b
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-b577e1c5-cc4e-436b-9c57-50a8d0d605c1.json
@@ -0,0 +1,34 @@
+{
+ "id" : "b577e1c5-cc4e-436b-9c57-50a8d0d605c1",
+ "name" : "rest_api_latest_issue_test-69",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-69?expand=schema%2Cnames%2Ctransitions",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_issue_test-69-b577e1c5-cc4e-436b-9c57-50a8d0d605c1.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2715x1",
+ "X-ASESSIONID" : "r44kdk",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:46 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "b577e1c5-cc4e-436b-9c57-50a8d0d605c1",
+ "persistent" : true,
+ "scenarioName" : "scenario-6-rest-api-latest-issue-TEST-69",
+ "requiredScenarioState" : "scenario-6-rest-api-latest-issue-TEST-69-2",
+ "newScenarioState" : "scenario-6-rest-api-latest-issue-TEST-69-3",
+ "insertionIndex" : 20
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-ebe35966-c69e-453f-af61-b7d1fd5407c9.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-ebe35966-c69e-453f-af61-b7d1fd5407c9.json
new file mode 100644
index 0000000..2b0717d
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-69-ebe35966-c69e-453f-af61-b7d1fd5407c9.json
@@ -0,0 +1,35 @@
+{
+ "id" : "ebe35966-c69e-453f-af61-b7d1fd5407c9",
+ "name" : "rest_api_latest_issue_test-69",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-69?expand=schema%2Cnames%2Ctransitions",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_issue_test-69-ebe35966-c69e-453f-af61-b7d1fd5407c9.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2716x1",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "Set-Cookie" : [ "JSESSIONID=6D701B098688AA4ADEEC713530F899AF; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_fee522b47ca21f10b3320d5b25bb93c8c6105cf7_lin; Path=/" ],
+ "X-Seraph-LoginReason" : "OK",
+ "X-ASESSIONID" : "179pd4f",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:46 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "ebe35966-c69e-453f-af61-b7d1fd5407c9",
+ "persistent" : true,
+ "scenarioName" : "scenario-6-rest-api-latest-issue-TEST-69",
+ "requiredScenarioState" : "scenario-6-rest-api-latest-issue-TEST-69-3",
+ "newScenarioState" : "scenario-6-rest-api-latest-issue-TEST-69-4",
+ "insertionIndex" : 21
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-70-288f33f8-ff30-42e6-91cc-27469a454c1f.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-70-288f33f8-ff30-42e6-91cc-27469a454c1f.json
new file mode 100644
index 0000000..16af962
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-70-288f33f8-ff30-42e6-91cc-27469a454c1f.json
@@ -0,0 +1,34 @@
+{
+ "id" : "288f33f8-ff30-42e6-91cc-27469a454c1f",
+ "name" : "rest_api_latest_issue_test-70",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-70?expand=schema%2Cnames%2Ctransitions",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_issue_test-70-288f33f8-ff30-42e6-91cc-27469a454c1f.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2725x1",
+ "X-ASESSIONID" : "2te3mh",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:48 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "288f33f8-ff30-42e6-91cc-27469a454c1f",
+ "persistent" : true,
+ "scenarioName" : "scenario-8-rest-api-latest-issue-TEST-70",
+ "requiredScenarioState" : "Started",
+ "newScenarioState" : "scenario-8-rest-api-latest-issue-TEST-70-2",
+ "insertionIndex" : 29
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-70-4d938ceb-5f17-4574-bfde-bb47eea5bb59.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-70-4d938ceb-5f17-4574-bfde-bb47eea5bb59.json
new file mode 100644
index 0000000..96a1a82
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-70-4d938ceb-5f17-4574-bfde-bb47eea5bb59.json
@@ -0,0 +1,36 @@
+{
+ "id" : "4d938ceb-5f17-4574-bfde-bb47eea5bb59",
+ "name" : "rest_api_latest_issue_test-70",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-70",
+ "method" : "PUT",
+ "bodyPatterns" : [ {
+ "equalToJson" : "{\"fields\":{\"summary\":\"Updated summary\"},\"properties\":[]}",
+ "ignoreArrayOrder" : true,
+ "ignoreExtraElements" : true
+ } ]
+ },
+ "response" : {
+ "status" : 204,
+ "headers" : {
+ "X-AREQUESTID" : "667x2728x1",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "Set-Cookie" : [ "JSESSIONID=CBDA5E31358010134C7571D26044A12E; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_23f86beb2b668eca49fbe9e6bd307cf445552a6a_lin; Path=/" ],
+ "X-Seraph-LoginReason" : "OK",
+ "X-ASESSIONID" : "1ocfnpn",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:49 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "4d938ceb-5f17-4574-bfde-bb47eea5bb59",
+ "persistent" : true,
+ "insertionIndex" : 32
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-70-f2ab1813-65c5-494f-a5ac-da9e340b3d94.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-70-f2ab1813-65c5-494f-a5ac-da9e340b3d94.json
new file mode 100644
index 0000000..e39fc6f
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-70-f2ab1813-65c5-494f-a5ac-da9e340b3d94.json
@@ -0,0 +1,31 @@
+{
+ "id" : "f2ab1813-65c5-494f-a5ac-da9e340b3d94",
+ "name" : "rest_api_latest_issue_test-70",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-70?deleteSubtasks=true",
+ "method" : "DELETE"
+ },
+ "response" : {
+ "status" : 204,
+ "headers" : {
+ "X-AREQUESTID" : "667x2730x1",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "Set-Cookie" : [ "JSESSIONID=7F03072CA15D0722C0BB6D475C467A2B; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_b308717a587a80414390630b0468a1d76a98f5cd_lin; Path=/" ],
+ "X-Seraph-LoginReason" : "OK",
+ "X-ASESSIONID" : "yuhl16",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:50 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "f2ab1813-65c5-494f-a5ac-da9e340b3d94",
+ "persistent" : true,
+ "insertionIndex" : 34
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-09b7636c-39fa-4cb3-8fe1-43afb1034924.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-09b7636c-39fa-4cb3-8fe1-43afb1034924.json
new file mode 100644
index 0000000..83c5494
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-09b7636c-39fa-4cb3-8fe1-43afb1034924.json
@@ -0,0 +1,35 @@
+{
+ "id" : "09b7636c-39fa-4cb3-8fe1-43afb1034924",
+ "name" : "rest_api_latest_issue_test-71",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-71?expand=schema%2Cnames%2Ctransitions",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_issue_test-71-09b7636c-39fa-4cb3-8fe1-43afb1034924.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2736x1",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "Set-Cookie" : [ "JSESSIONID=B2405E53FD9A2836F2C704515701A1F3; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_53ccddf323419625044139ad0f9d21bb985d9c0d_lin; Path=/" ],
+ "X-Seraph-LoginReason" : "OK",
+ "X-ASESSIONID" : "q6uf1d",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:51 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "09b7636c-39fa-4cb3-8fe1-43afb1034924",
+ "persistent" : true,
+ "scenarioName" : "scenario-9-rest-api-latest-issue-TEST-71",
+ "requiredScenarioState" : "scenario-9-rest-api-latest-issue-TEST-71-2",
+ "newScenarioState" : "scenario-9-rest-api-latest-issue-TEST-71-3",
+ "insertionIndex" : 40
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-0e6a77cf-578a-4421-b0e6-9e75f9015ffc.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-0e6a77cf-578a-4421-b0e6-9e75f9015ffc.json
new file mode 100644
index 0000000..cceb596
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-0e6a77cf-578a-4421-b0e6-9e75f9015ffc.json
@@ -0,0 +1,34 @@
+{
+ "id" : "0e6a77cf-578a-4421-b0e6-9e75f9015ffc",
+ "name" : "rest_api_latest_issue_test-71",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-71?expand=schema%2Cnames%2Ctransitions",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_issue_test-71-0e6a77cf-578a-4421-b0e6-9e75f9015ffc.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2739x1",
+ "X-ASESSIONID" : "kpb0b3",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:53 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "0e6a77cf-578a-4421-b0e6-9e75f9015ffc",
+ "persistent" : true,
+ "scenarioName" : "scenario-9-rest-api-latest-issue-TEST-71",
+ "requiredScenarioState" : "scenario-9-rest-api-latest-issue-TEST-71-3",
+ "newScenarioState" : "scenario-9-rest-api-latest-issue-TEST-71-4",
+ "insertionIndex" : 42
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-2470cded-eff1-4696-b664-c6a6afb48352.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-2470cded-eff1-4696-b664-c6a6afb48352.json
new file mode 100644
index 0000000..cb4780b
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-2470cded-eff1-4696-b664-c6a6afb48352.json
@@ -0,0 +1,33 @@
+{
+ "id" : "2470cded-eff1-4696-b664-c6a6afb48352",
+ "name" : "rest_api_latest_issue_test-71",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-71?expand=schema%2Cnames%2Ctransitions",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_issue_test-71-2470cded-eff1-4696-b664-c6a6afb48352.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2742x1",
+ "X-ASESSIONID" : "kpb0b3",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:54 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "2470cded-eff1-4696-b664-c6a6afb48352",
+ "persistent" : true,
+ "scenarioName" : "scenario-9-rest-api-latest-issue-TEST-71",
+ "requiredScenarioState" : "scenario-9-rest-api-latest-issue-TEST-71-5",
+ "insertionIndex" : 44
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-95392d7a-cee3-4493-808c-f7db7b8c5f9b.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-95392d7a-cee3-4493-808c-f7db7b8c5f9b.json
new file mode 100644
index 0000000..55e3f7f
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-95392d7a-cee3-4493-808c-f7db7b8c5f9b.json
@@ -0,0 +1,34 @@
+{
+ "id" : "95392d7a-cee3-4493-808c-f7db7b8c5f9b",
+ "name" : "rest_api_latest_issue_test-71",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-71?expand=schema%2Cnames%2Ctransitions",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_issue_test-71-95392d7a-cee3-4493-808c-f7db7b8c5f9b.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2740x1",
+ "X-ASESSIONID" : "q6uf1d",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:53 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "95392d7a-cee3-4493-808c-f7db7b8c5f9b",
+ "persistent" : true,
+ "scenarioName" : "scenario-9-rest-api-latest-issue-TEST-71",
+ "requiredScenarioState" : "scenario-9-rest-api-latest-issue-TEST-71-4",
+ "newScenarioState" : "scenario-9-rest-api-latest-issue-TEST-71-5",
+ "insertionIndex" : 43
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-993fe3b6-a347-4014-b3a7-a182c1fa25ed.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-993fe3b6-a347-4014-b3a7-a182c1fa25ed.json
new file mode 100644
index 0000000..80f5880
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-993fe3b6-a347-4014-b3a7-a182c1fa25ed.json
@@ -0,0 +1,30 @@
+{
+ "id" : "993fe3b6-a347-4014-b3a7-a182c1fa25ed",
+ "name" : "rest_api_latest_issue_test-71",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-71?deleteSubtasks=true",
+ "method" : "DELETE"
+ },
+ "response" : {
+ "status" : 204,
+ "headers" : {
+ "X-AREQUESTID" : "667x2743x1",
+ "X-ASESSIONID" : "kpb0b3",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:54 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "993fe3b6-a347-4014-b3a7-a182c1fa25ed",
+ "persistent" : true,
+ "insertionIndex" : 45
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-b6cc2884-c9ed-4161-a671-3413813b4db2.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-b6cc2884-c9ed-4161-a671-3413813b4db2.json
new file mode 100644
index 0000000..90bc9af
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-71-b6cc2884-c9ed-4161-a671-3413813b4db2.json
@@ -0,0 +1,34 @@
+{
+ "id" : "b6cc2884-c9ed-4161-a671-3413813b4db2",
+ "name" : "rest_api_latest_issue_test-71",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-71?expand=schema%2Cnames%2Ctransitions",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_issue_test-71-b6cc2884-c9ed-4161-a671-3413813b4db2.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2734x1",
+ "X-ASESSIONID" : "2te3mh",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:51 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "b6cc2884-c9ed-4161-a671-3413813b4db2",
+ "persistent" : true,
+ "scenarioName" : "scenario-9-rest-api-latest-issue-TEST-71",
+ "requiredScenarioState" : "Started",
+ "newScenarioState" : "scenario-9-rest-api-latest-issue-TEST-71-2",
+ "insertionIndex" : 38
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-72-baa1260a-1c45-43aa-b4d1-9a5a2f296d7a.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-72-baa1260a-1c45-43aa-b4d1-9a5a2f296d7a.json
new file mode 100644
index 0000000..1c07e6e
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-72-baa1260a-1c45-43aa-b4d1-9a5a2f296d7a.json
@@ -0,0 +1,34 @@
+{
+ "id" : "baa1260a-1c45-43aa-b4d1-9a5a2f296d7a",
+ "name" : "rest_api_latest_issue_test-72",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-72?expand=schema%2Cnames%2Ctransitions",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_issue_test-72-baa1260a-1c45-43aa-b4d1-9a5a2f296d7a.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2746x1",
+ "X-ASESSIONID" : "2te3mh",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:54 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "baa1260a-1c45-43aa-b4d1-9a5a2f296d7a",
+ "persistent" : true,
+ "scenarioName" : "scenario-10-rest-api-latest-issue-TEST-72",
+ "requiredScenarioState" : "Started",
+ "newScenarioState" : "scenario-10-rest-api-latest-issue-TEST-72-2",
+ "insertionIndex" : 48
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-72-bb4bde6d-b387-4cd6-a308-aacf38d6fd5d.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-72-bb4bde6d-b387-4cd6-a308-aacf38d6fd5d.json
new file mode 100644
index 0000000..abf56a5
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-72-bb4bde6d-b387-4cd6-a308-aacf38d6fd5d.json
@@ -0,0 +1,33 @@
+{
+ "id" : "bb4bde6d-b387-4cd6-a308-aacf38d6fd5d",
+ "name" : "rest_api_latest_issue_test-72",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-72?expand=schema%2Cnames%2Ctransitions",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_issue_test-72-bb4bde6d-b387-4cd6-a308-aacf38d6fd5d.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2752x1",
+ "X-ASESSIONID" : "kpb0b3",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:55 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "bb4bde6d-b387-4cd6-a308-aacf38d6fd5d",
+ "persistent" : true,
+ "scenarioName" : "scenario-10-rest-api-latest-issue-TEST-72",
+ "requiredScenarioState" : "scenario-10-rest-api-latest-issue-TEST-72-2",
+ "insertionIndex" : 54
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-72-c3063e9e-b57a-4de5-8d84-b458a8f7f0fe.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-72-c3063e9e-b57a-4de5-8d84-b458a8f7f0fe.json
new file mode 100644
index 0000000..6b8b928
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-72-c3063e9e-b57a-4de5-8d84-b458a8f7f0fe.json
@@ -0,0 +1,30 @@
+{
+ "id" : "c3063e9e-b57a-4de5-8d84-b458a8f7f0fe",
+ "name" : "rest_api_latest_issue_test-72",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-72?deleteSubtasks=true",
+ "method" : "DELETE"
+ },
+ "response" : {
+ "status" : 204,
+ "headers" : {
+ "X-AREQUESTID" : "667x2753x1",
+ "X-ASESSIONID" : "kpb0b3",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:55 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "c3063e9e-b57a-4de5-8d84-b458a8f7f0fe",
+ "persistent" : true,
+ "insertionIndex" : 55
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-73-786cfa20-75d3-43f7-b5b8-8ea926dce7c2.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-73-786cfa20-75d3-43f7-b5b8-8ea926dce7c2.json
new file mode 100644
index 0000000..b244750
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-73-786cfa20-75d3-43f7-b5b8-8ea926dce7c2.json
@@ -0,0 +1,30 @@
+{
+ "id" : "786cfa20-75d3-43f7-b5b8-8ea926dce7c2",
+ "name" : "rest_api_latest_issue_test-73",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-73?deleteSubtasks=true",
+ "method" : "DELETE"
+ },
+ "response" : {
+ "status" : 204,
+ "headers" : {
+ "X-AREQUESTID" : "667x2754x1",
+ "X-ASESSIONID" : "kpb0b3",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:55 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "786cfa20-75d3-43f7-b5b8-8ea926dce7c2",
+ "persistent" : true,
+ "insertionIndex" : 56
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-73-97967053-b459-441a-9f03-b603ca69c22e.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-73-97967053-b459-441a-9f03-b603ca69c22e.json
new file mode 100644
index 0000000..8199622
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-73-97967053-b459-441a-9f03-b603ca69c22e.json
@@ -0,0 +1,31 @@
+{
+ "id" : "97967053-b459-441a-9f03-b603ca69c22e",
+ "name" : "rest_api_latest_issue_test-73",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-73?expand=schema%2Cnames%2Ctransitions",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_issue_test-73-97967053-b459-441a-9f03-b603ca69c22e.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2749x1",
+ "X-ASESSIONID" : "2te3mh",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:54 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "97967053-b459-441a-9f03-b603ca69c22e",
+ "persistent" : true,
+ "insertionIndex" : 51
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-74-75c0d24d-5575-490f-a590-020bd992afe4.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-74-75c0d24d-5575-490f-a590-020bd992afe4.json
new file mode 100644
index 0000000..b3a9796
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-74-75c0d24d-5575-490f-a590-020bd992afe4.json
@@ -0,0 +1,33 @@
+{
+ "id" : "75c0d24d-5575-490f-a590-020bd992afe4",
+ "name" : "rest_api_latest_issue_test-74",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-74?expand=schema%2Cnames%2Ctransitions",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_issue_test-74-75c0d24d-5575-490f-a590-020bd992afe4.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2760x1",
+ "X-ASESSIONID" : "kpb0b3",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:56 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "75c0d24d-5575-490f-a590-020bd992afe4",
+ "persistent" : true,
+ "scenarioName" : "scenario-11-rest-api-latest-issue-TEST-74",
+ "requiredScenarioState" : "scenario-11-rest-api-latest-issue-TEST-74-3",
+ "insertionIndex" : 61
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-74-920e8e36-2afc-438d-bca6-d1d28116988c.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-74-920e8e36-2afc-438d-bca6-d1d28116988c.json
new file mode 100644
index 0000000..f5708cd
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-74-920e8e36-2afc-438d-bca6-d1d28116988c.json
@@ -0,0 +1,34 @@
+{
+ "id" : "920e8e36-2afc-438d-bca6-d1d28116988c",
+ "name" : "rest_api_latest_issue_test-74",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-74?expand=schema%2Cnames%2Ctransitions",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_issue_test-74-920e8e36-2afc-438d-bca6-d1d28116988c.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2757x1",
+ "X-ASESSIONID" : "2te3mh",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:55 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "920e8e36-2afc-438d-bca6-d1d28116988c",
+ "persistent" : true,
+ "scenarioName" : "scenario-11-rest-api-latest-issue-TEST-74",
+ "requiredScenarioState" : "Started",
+ "newScenarioState" : "scenario-11-rest-api-latest-issue-TEST-74-2",
+ "insertionIndex" : 59
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-74-a9022ea4-4500-4fa8-9638-b8ac76464b4f.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-74-a9022ea4-4500-4fa8-9638-b8ac76464b4f.json
new file mode 100644
index 0000000..5c38323
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-74-a9022ea4-4500-4fa8-9638-b8ac76464b4f.json
@@ -0,0 +1,35 @@
+{
+ "id" : "a9022ea4-4500-4fa8-9638-b8ac76464b4f",
+ "name" : "rest_api_latest_issue_test-74",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-74?expand=schema%2Cnames%2Ctransitions",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_issue_test-74-a9022ea4-4500-4fa8-9638-b8ac76464b4f.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2758x1",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "Set-Cookie" : [ "JSESSIONID=8620FC628DE65F006AE1ADAB379D1827; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_b94f0b96df765fe07c7353b0ffff8781f25a08a0_lin; Path=/" ],
+ "X-Seraph-LoginReason" : "OK",
+ "X-ASESSIONID" : "4owfuq",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:55 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "a9022ea4-4500-4fa8-9638-b8ac76464b4f",
+ "persistent" : true,
+ "scenarioName" : "scenario-11-rest-api-latest-issue-TEST-74",
+ "requiredScenarioState" : "scenario-11-rest-api-latest-issue-TEST-74-2",
+ "newScenarioState" : "scenario-11-rest-api-latest-issue-TEST-74-3",
+ "insertionIndex" : 60
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-74-ab1fb946-6445-448d-a80f-f67165920733.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-74-ab1fb946-6445-448d-a80f-f67165920733.json
new file mode 100644
index 0000000..42e8eba
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issue_test-74-ab1fb946-6445-448d-a80f-f67165920733.json
@@ -0,0 +1,30 @@
+{
+ "id" : "ab1fb946-6445-448d-a80f-f67165920733",
+ "name" : "rest_api_latest_issue_test-74",
+ "request" : {
+ "url" : "/rest/api/latest/issue/TEST-74?deleteSubtasks=true",
+ "method" : "DELETE"
+ },
+ "response" : {
+ "status" : 204,
+ "headers" : {
+ "X-AREQUESTID" : "667x2761x1",
+ "X-ASESSIONID" : "kpb0b3",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:56 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "ab1fb946-6445-448d-a80f-f67165920733",
+ "persistent" : true,
+ "insertionIndex" : 62
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuelink-b86486cf-179d-4eff-ab59-fd2621cd2fe2.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuelink-b86486cf-179d-4eff-ab59-fd2621cd2fe2.json
new file mode 100644
index 0000000..865b9a6
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuelink-b86486cf-179d-4eff-ab59-fd2621cd2fe2.json
@@ -0,0 +1,36 @@
+{
+ "id" : "b86486cf-179d-4eff-ab59-fd2621cd2fe2",
+ "name" : "rest_api_latest_issuelink",
+ "request" : {
+ "url" : "/rest/api/latest/issueLink",
+ "method" : "POST",
+ "bodyPatterns" : [ {
+ "equalToJson" : "{\"type\":{\"name\":\"Relates\"},\"inwardIssue\":{\"key\":\"TEST-72\"},\"outwardIssue\":{\"key\":\"TEST-73\"}}",
+ "ignoreArrayOrder" : true,
+ "ignoreExtraElements" : true
+ } ]
+ },
+ "response" : {
+ "status" : 201,
+ "headers" : {
+ "X-AREQUESTID" : "667x2751x1",
+ "X-ASESSIONID" : "1jfxsvw",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Location" : "http://localhost:8080/rest/api/2/issueLink/10304",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:54 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "b86486cf-179d-4eff-ab59-fd2621cd2fe2",
+ "persistent" : true,
+ "insertionIndex" : 53
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-1a4dffb2-212a-4e5c-a6ed-b07e6c22df97.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-1a4dffb2-212a-4e5c-a6ed-b07e6c22df97.json
new file mode 100644
index 0000000..ae906a9
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-1a4dffb2-212a-4e5c-a6ed-b07e6c22df97.json
@@ -0,0 +1,33 @@
+{
+ "id" : "1a4dffb2-212a-4e5c-a6ed-b07e6c22df97",
+ "name" : "rest_api_latest_issuetype",
+ "request" : {
+ "url" : "/rest/api/latest/issuetype",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "body" : "[{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10003\",\"id\":\"10003\",\"description\":\"A task that needs to be done.\",\"iconUrl\":\"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype\",\"name\":\"Task\",\"subtask\":false,\"avatarId\":10318},{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10000\",\"id\":\"10000\",\"description\":\"The sub-task of the issue\",\"iconUrl\":\"http://localhost:8080/images/icons/is [...]
+ "headers" : {
+ "X-AREQUESTID" : "667x2755x1",
+ "X-ASESSIONID" : "2te3mh",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:55 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "1a4dffb2-212a-4e5c-a6ed-b07e6c22df97",
+ "persistent" : true,
+ "scenarioName" : "scenario-1-rest-api-latest-issuetype",
+ "requiredScenarioState" : "scenario-1-rest-api-latest-issuetype-8",
+ "insertionIndex" : 57
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-3c28d7c5-48e0-4e10-9c33-2b7302766869.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-3c28d7c5-48e0-4e10-9c33-2b7302766869.json
new file mode 100644
index 0000000..a5df437
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-3c28d7c5-48e0-4e10-9c33-2b7302766869.json
@@ -0,0 +1,34 @@
+{
+ "id" : "3c28d7c5-48e0-4e10-9c33-2b7302766869",
+ "name" : "rest_api_latest_issuetype",
+ "request" : {
+ "url" : "/rest/api/latest/issuetype",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "body" : "[{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10003\",\"id\":\"10003\",\"description\":\"A task that needs to be done.\",\"iconUrl\":\"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype\",\"name\":\"Task\",\"subtask\":false,\"avatarId\":10318},{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10000\",\"id\":\"10000\",\"description\":\"The sub-task of the issue\",\"iconUrl\":\"http://localhost:8080/images/icons/is [...]
+ "headers" : {
+ "X-AREQUESTID" : "667x2723x1",
+ "X-ASESSIONID" : "2te3mh",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:48 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "3c28d7c5-48e0-4e10-9c33-2b7302766869",
+ "persistent" : true,
+ "scenarioName" : "scenario-1-rest-api-latest-issuetype",
+ "requiredScenarioState" : "scenario-1-rest-api-latest-issuetype-4",
+ "newScenarioState" : "scenario-1-rest-api-latest-issuetype-5",
+ "insertionIndex" : 27
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-5862081c-2012-4240-835c-cf0ce937c567.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-5862081c-2012-4240-835c-cf0ce937c567.json
new file mode 100644
index 0000000..85dad3a
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-5862081c-2012-4240-835c-cf0ce937c567.json
@@ -0,0 +1,34 @@
+{
+ "id" : "5862081c-2012-4240-835c-cf0ce937c567",
+ "name" : "rest_api_latest_issuetype",
+ "request" : {
+ "url" : "/rest/api/latest/issuetype",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "body" : "[{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10003\",\"id\":\"10003\",\"description\":\"A task that needs to be done.\",\"iconUrl\":\"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype\",\"name\":\"Task\",\"subtask\":false,\"avatarId\":10318},{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10000\",\"id\":\"10000\",\"description\":\"The sub-task of the issue\",\"iconUrl\":\"http://localhost:8080/images/icons/is [...]
+ "headers" : {
+ "X-AREQUESTID" : "667x2747x1",
+ "X-ASESSIONID" : "2te3mh",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:54 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "5862081c-2012-4240-835c-cf0ce937c567",
+ "persistent" : true,
+ "scenarioName" : "scenario-1-rest-api-latest-issuetype",
+ "requiredScenarioState" : "scenario-1-rest-api-latest-issuetype-7",
+ "newScenarioState" : "scenario-1-rest-api-latest-issuetype-8",
+ "insertionIndex" : 49
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-65c3b34b-0095-416f-9667-9fe5996560bf.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-65c3b34b-0095-416f-9667-9fe5996560bf.json
new file mode 100644
index 0000000..829ff57
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-65c3b34b-0095-416f-9667-9fe5996560bf.json
@@ -0,0 +1,34 @@
+{
+ "id" : "65c3b34b-0095-416f-9667-9fe5996560bf",
+ "name" : "rest_api_latest_issuetype",
+ "request" : {
+ "url" : "/rest/api/latest/issuetype",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "body" : "[{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10003\",\"id\":\"10003\",\"description\":\"A task that needs to be done.\",\"iconUrl\":\"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype\",\"name\":\"Task\",\"subtask\":false,\"avatarId\":10318},{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10000\",\"id\":\"10000\",\"description\":\"The sub-task of the issue\",\"iconUrl\":\"http://localhost:8080/images/icons/is [...]
+ "headers" : {
+ "X-AREQUESTID" : "667x2703x1",
+ "X-ASESSIONID" : "2te3mh",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:45 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "65c3b34b-0095-416f-9667-9fe5996560bf",
+ "persistent" : true,
+ "scenarioName" : "scenario-1-rest-api-latest-issuetype",
+ "requiredScenarioState" : "scenario-1-rest-api-latest-issuetype-2",
+ "newScenarioState" : "scenario-1-rest-api-latest-issuetype-3",
+ "insertionIndex" : 9
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-9a5ac9eb-f82e-4b5e-8372-729815645934.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-9a5ac9eb-f82e-4b5e-8372-729815645934.json
new file mode 100644
index 0000000..a2030cc
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-9a5ac9eb-f82e-4b5e-8372-729815645934.json
@@ -0,0 +1,34 @@
+{
+ "id" : "9a5ac9eb-f82e-4b5e-8372-729815645934",
+ "name" : "rest_api_latest_issuetype",
+ "request" : {
+ "url" : "/rest/api/latest/issuetype",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "body" : "[{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10003\",\"id\":\"10003\",\"description\":\"A task that needs to be done.\",\"iconUrl\":\"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype\",\"name\":\"Task\",\"subtask\":false,\"avatarId\":10318},{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10000\",\"id\":\"10000\",\"description\":\"The sub-task of the issue\",\"iconUrl\":\"http://localhost:8080/images/icons/is [...]
+ "headers" : {
+ "X-AREQUESTID" : "667x2732x1",
+ "X-ASESSIONID" : "2te3mh",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:51 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "9a5ac9eb-f82e-4b5e-8372-729815645934",
+ "persistent" : true,
+ "scenarioName" : "scenario-1-rest-api-latest-issuetype",
+ "requiredScenarioState" : "scenario-1-rest-api-latest-issuetype-5",
+ "newScenarioState" : "scenario-1-rest-api-latest-issuetype-6",
+ "insertionIndex" : 36
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-b97e3430-3397-4d6c-9782-b572d203f785.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-b97e3430-3397-4d6c-9782-b572d203f785.json
new file mode 100644
index 0000000..e6b1706
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-b97e3430-3397-4d6c-9782-b572d203f785.json
@@ -0,0 +1,34 @@
+{
+ "id" : "b97e3430-3397-4d6c-9782-b572d203f785",
+ "name" : "rest_api_latest_issuetype",
+ "request" : {
+ "url" : "/rest/api/latest/issuetype",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "body" : "[{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10003\",\"id\":\"10003\",\"description\":\"A task that needs to be done.\",\"iconUrl\":\"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype\",\"name\":\"Task\",\"subtask\":false,\"avatarId\":10318},{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10000\",\"id\":\"10000\",\"description\":\"The sub-task of the issue\",\"iconUrl\":\"http://localhost:8080/images/icons/is [...]
+ "headers" : {
+ "X-AREQUESTID" : "667x2711x1",
+ "X-ASESSIONID" : "2te3mh",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:46 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "b97e3430-3397-4d6c-9782-b572d203f785",
+ "persistent" : true,
+ "scenarioName" : "scenario-1-rest-api-latest-issuetype",
+ "requiredScenarioState" : "scenario-1-rest-api-latest-issuetype-3",
+ "newScenarioState" : "scenario-1-rest-api-latest-issuetype-4",
+ "insertionIndex" : 16
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-bb895fc4-8785-45cd-93f3-24f74ff8bef8.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-bb895fc4-8785-45cd-93f3-24f74ff8bef8.json
new file mode 100644
index 0000000..d0343d0
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-bb895fc4-8785-45cd-93f3-24f74ff8bef8.json
@@ -0,0 +1,34 @@
+{
+ "id" : "bb895fc4-8785-45cd-93f3-24f74ff8bef8",
+ "name" : "rest_api_latest_issuetype",
+ "request" : {
+ "url" : "/rest/api/latest/issuetype",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "body" : "[{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10003\",\"id\":\"10003\",\"description\":\"A task that needs to be done.\",\"iconUrl\":\"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype\",\"name\":\"Task\",\"subtask\":false,\"avatarId\":10318},{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10000\",\"id\":\"10000\",\"description\":\"The sub-task of the issue\",\"iconUrl\":\"http://localhost:8080/images/icons/is [...]
+ "headers" : {
+ "X-AREQUESTID" : "667x2744x1",
+ "X-ASESSIONID" : "2te3mh",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:54 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "bb895fc4-8785-45cd-93f3-24f74ff8bef8",
+ "persistent" : true,
+ "scenarioName" : "scenario-1-rest-api-latest-issuetype",
+ "requiredScenarioState" : "scenario-1-rest-api-latest-issuetype-6",
+ "newScenarioState" : "scenario-1-rest-api-latest-issuetype-7",
+ "insertionIndex" : 46
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-deb1fb17-f060-4866-bc5b-af2464195e25.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-deb1fb17-f060-4866-bc5b-af2464195e25.json
new file mode 100644
index 0000000..1afac0b
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_issuetype-deb1fb17-f060-4866-bc5b-af2464195e25.json
@@ -0,0 +1,35 @@
+{
+ "id" : "deb1fb17-f060-4866-bc5b-af2464195e25",
+ "name" : "rest_api_latest_issuetype",
+ "request" : {
+ "url" : "/rest/api/latest/issuetype",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "body" : "[{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10003\",\"id\":\"10003\",\"description\":\"A task that needs to be done.\",\"iconUrl\":\"http://localhost:8080/secure/viewavatar?size=xsmall&avatarId=10318&avatarType=issuetype\",\"name\":\"Task\",\"subtask\":false,\"avatarId\":10318},{\"self\":\"http://localhost:8080/rest/api/latest/issuetype/10000\",\"id\":\"10000\",\"description\":\"The sub-task of the issue\",\"iconUrl\":\"http://localhost:8080/images/icons/is [...]
+ "headers" : {
+ "X-AREQUESTID" : "667x2694x1",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "Set-Cookie" : [ "JSESSIONID=5A5921832B2665948FD9067A082D34F2; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_1ab4f7f9be5bd536dc69942f55e989f1f14a4ceb_lin; Path=/" ],
+ "X-Seraph-LoginReason" : "OK",
+ "X-ASESSIONID" : "2te3mh",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:43 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "deb1fb17-f060-4866-bc5b-af2464195e25",
+ "persistent" : true,
+ "scenarioName" : "scenario-1-rest-api-latest-issuetype",
+ "requiredScenarioState" : "Started",
+ "newScenarioState" : "scenario-1-rest-api-latest-issuetype-2",
+ "insertionIndex" : 1
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-2eb3eb45-a63a-4655-9d1f-ef82f4d3b825.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-2eb3eb45-a63a-4655-9d1f-ef82f4d3b825.json
new file mode 100644
index 0000000..41139a3
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-2eb3eb45-a63a-4655-9d1f-ef82f4d3b825.json
@@ -0,0 +1,34 @@
+{
+ "id" : "2eb3eb45-a63a-4655-9d1f-ef82f4d3b825",
+ "name" : "rest_api_latest_search",
+ "request" : {
+ "url" : "/rest/api/latest/search?jql=project%3DTEST&expand=schema%2Cnames&maxResults=1&startAt=0",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_search-2eb3eb45-a63a-4655-9d1f-ef82f4d3b825.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2719x1",
+ "X-ASESSIONID" : "r44kdk",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:48 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "2eb3eb45-a63a-4655-9d1f-ef82f4d3b825",
+ "persistent" : true,
+ "scenarioName" : "scenario-7-rest-api-latest-search",
+ "requiredScenarioState" : "scenario-7-rest-api-latest-search-2",
+ "newScenarioState" : "scenario-7-rest-api-latest-search-3",
+ "insertionIndex" : 23
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-4dc289c5-0522-4632-813f-295f4be67eaf.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-4dc289c5-0522-4632-813f-295f4be67eaf.json
new file mode 100644
index 0000000..990b710
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-4dc289c5-0522-4632-813f-295f4be67eaf.json
@@ -0,0 +1,35 @@
+{
+ "id" : "4dc289c5-0522-4632-813f-295f4be67eaf",
+ "name" : "rest_api_latest_search",
+ "request" : {
+ "url" : "/rest/api/latest/search?jql=project%3DTEST&expand=schema%2Cnames&maxResults=1&startAt=0",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_search-4dc289c5-0522-4632-813f-295f4be67eaf.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2714x1",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "Set-Cookie" : [ "JSESSIONID=4A92FC8ACC9A9727A81DCBA8CCC52F70; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_a40b2e5c2a38ebe2567858fcdfb195a7fcd8114c_lin; Path=/" ],
+ "X-Seraph-LoginReason" : "OK",
+ "X-ASESSIONID" : "r44kdk",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:46 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "4dc289c5-0522-4632-813f-295f4be67eaf",
+ "persistent" : true,
+ "scenarioName" : "scenario-7-rest-api-latest-search",
+ "requiredScenarioState" : "Started",
+ "newScenarioState" : "scenario-7-rest-api-latest-search-2",
+ "insertionIndex" : 19
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-5a3ae50c-9eee-45ea-bb4e-28b2864e392d.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-5a3ae50c-9eee-45ea-bb4e-28b2864e392d.json
new file mode 100644
index 0000000..bbf66dc
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-5a3ae50c-9eee-45ea-bb4e-28b2864e392d.json
@@ -0,0 +1,33 @@
+{
+ "id" : "5a3ae50c-9eee-45ea-bb4e-28b2864e392d",
+ "name" : "rest_api_latest_search",
+ "request" : {
+ "url" : "/rest/api/latest/search?jql=project%3DTEST&expand=schema%2Cnames&maxResults=1&startAt=0",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_search-5a3ae50c-9eee-45ea-bb4e-28b2864e392d.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2729x1",
+ "X-ASESSIONID" : "1of798p",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:50 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "5a3ae50c-9eee-45ea-bb4e-28b2864e392d",
+ "persistent" : true,
+ "scenarioName" : "scenario-7-rest-api-latest-search",
+ "requiredScenarioState" : "scenario-7-rest-api-latest-search-4",
+ "insertionIndex" : 33
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-a8497662-b947-4b46-9815-9e04995588c8.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-a8497662-b947-4b46-9815-9e04995588c8.json
new file mode 100644
index 0000000..3cc3b05
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-a8497662-b947-4b46-9815-9e04995588c8.json
@@ -0,0 +1,31 @@
+{
+ "id" : "a8497662-b947-4b46-9815-9e04995588c8",
+ "name" : "rest_api_latest_search",
+ "request" : {
+ "url" : "/rest/api/latest/search?jql=id+%3E+10304+AND+project%3DTEST+ORDER+BY+key+desc&expand=schema%2Cnames&maxResults=1&startAt=0",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_search-a8497662-b947-4b46-9815-9e04995588c8.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2726x1",
+ "X-ASESSIONID" : "13zh262",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:49 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "a8497662-b947-4b46-9815-9e04995588c8",
+ "persistent" : true,
+ "insertionIndex" : 30
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-ce09e8e1-0c2f-4646-a58a-dcf55e4de092.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-ce09e8e1-0c2f-4646-a58a-dcf55e4de092.json
new file mode 100644
index 0000000..5538762
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-ce09e8e1-0c2f-4646-a58a-dcf55e4de092.json
@@ -0,0 +1,35 @@
+{
+ "id" : "ce09e8e1-0c2f-4646-a58a-dcf55e4de092",
+ "name" : "rest_api_latest_search",
+ "request" : {
+ "url" : "/rest/api/latest/search?jql=project%3DTEST&expand=schema%2Cnames&maxResults=1&startAt=0",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_search-ce09e8e1-0c2f-4646-a58a-dcf55e4de092.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2727x1",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "Set-Cookie" : [ "JSESSIONID=5A800B66C4BCD7F01AB2299217F62E10; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_fa1210bf53037e90e7424f47ee8791fb67eb9fc7_lin; Path=/" ],
+ "X-Seraph-LoginReason" : "OK",
+ "X-ASESSIONID" : "1of798p",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:49 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "ce09e8e1-0c2f-4646-a58a-dcf55e4de092",
+ "persistent" : true,
+ "scenarioName" : "scenario-7-rest-api-latest-search",
+ "requiredScenarioState" : "scenario-7-rest-api-latest-search-3",
+ "newScenarioState" : "scenario-7-rest-api-latest-search-4",
+ "insertionIndex" : 31
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-ea789be6-5899-46e7-ab02-8ec3692596f5.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-ea789be6-5899-46e7-ab02-8ec3692596f5.json
new file mode 100644
index 0000000..393a705
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_search-ea789be6-5899-46e7-ab02-8ec3692596f5.json
@@ -0,0 +1,32 @@
+{
+ "id" : "ea789be6-5899-46e7-ab02-8ec3692596f5",
+ "name" : "rest_api_latest_search",
+ "request" : {
+ "url" : "/rest/api/latest/search?jql=project%3DTEST+ORDER+BY+key+desc&expand=schema%2Cnames&maxResults=1&startAt=0",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "bodyFileName" : "rest_api_latest_search-ea789be6-5899-46e7-ab02-8ec3692596f5.json",
+ "headers" : {
+ "X-AREQUESTID" : "667x2722x1",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "Set-Cookie" : [ "JSESSIONID=8D102110989B0B2BC50F5AE7DCC0C9D4; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_f82de5a467787ea86ef342fa609275fc1cf8181f_lin; Path=/" ],
+ "X-Seraph-LoginReason" : "OK",
+ "X-ASESSIONID" : "13zh262",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:48 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "ea789be6-5899-46e7-ab02-8ec3692596f5",
+ "persistent" : true,
+ "insertionIndex" : 26
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_serverinfo-5384f8bb-181d-41ae-bc02-2c13a4c67e15.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_serverinfo-5384f8bb-181d-41ae-bc02-2c13a4c67e15.json
new file mode 100644
index 0000000..805c159
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_serverinfo-5384f8bb-181d-41ae-bc02-2c13a4c67e15.json
@@ -0,0 +1,34 @@
+{
+ "id" : "5384f8bb-181d-41ae-bc02-2c13a4c67e15",
+ "name" : "rest_api_latest_serverinfo",
+ "request" : {
+ "url" : "/rest/api/latest/serverInfo",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "body" : "{\"baseUrl\":\"http://localhost:8080\",\"version\":\"8.17.0\",\"versionNumbers\":[8,17,0],\"deploymentType\":\"Server\",\"buildNumber\":817000,\"buildDate\":\"2021-05-18T00:00:00.000+0000\",\"databaseBuildNumber\":817000,\"serverTime\":\"2021-05-26T11:07:54.550+0000\",\"scmInfo\":\"a507a62ee263f31d253569e578e747c4fedadad0\",\"serverTitle\":\"JIRA\"}",
+ "headers" : {
+ "X-AREQUESTID" : "667x2750x1",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "Set-Cookie" : [ "JSESSIONID=327F02105E5E32DA5F12C337C13FB80F; Path=/; HttpOnly", "atlassian.xsrf.token=BXSA-CBM7-RWE1-JM9A_ad3b712260bdd7d68dacfa7f045833daa48364e1_lin; Path=/" ],
+ "X-Seraph-LoginReason" : "OK",
+ "X-ASESSIONID" : "1jfxsvw",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:54 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "5384f8bb-181d-41ae-bc02-2c13a4c67e15",
+ "persistent" : true,
+ "scenarioName" : "scenario-4-rest-api-latest-serverInfo",
+ "requiredScenarioState" : "scenario-4-rest-api-latest-serverInfo-4",
+ "insertionIndex" : 52
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_serverinfo-94c1f66d-8a68-4485-8669-fbd75b55c45a.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_serverinfo-94c1f66d-8a68-4485-8669-fbd75b55c45a.json
new file mode 100644
index 0000000..d62665d
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_serverinfo-94c1f66d-8a68-4485-8669-fbd75b55c45a.json
@@ -0,0 +1,34 @@
+{
+ "id" : "94c1f66d-8a68-4485-8669-fbd75b55c45a",
+ "name" : "rest_api_latest_serverinfo",
+ "request" : {
+ "url" : "/rest/api/latest/serverInfo",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "body" : "{\"baseUrl\":\"http://localhost:8080\",\"version\":\"8.17.0\",\"versionNumbers\":[8,17,0],\"deploymentType\":\"Server\",\"buildNumber\":817000,\"buildDate\":\"2021-05-18T00:00:00.000+0000\",\"databaseBuildNumber\":817000,\"serverTime\":\"2021-05-26T11:07:47.349+0000\",\"scmInfo\":\"a507a62ee263f31d253569e578e747c4fedadad0\",\"serverTitle\":\"JIRA\"}",
+ "headers" : {
+ "X-AREQUESTID" : "667x2717x1",
+ "X-ASESSIONID" : "179pd4f",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:46 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "94c1f66d-8a68-4485-8669-fbd75b55c45a",
+ "persistent" : true,
+ "scenarioName" : "scenario-4-rest-api-latest-serverInfo",
+ "requiredScenarioState" : "scenario-4-rest-api-latest-serverInfo-2",
+ "newScenarioState" : "scenario-4-rest-api-latest-serverInfo-3",
+ "insertionIndex" : 22
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_serverinfo-dd1a6803-f1ea-4002-a959-356e8d642920.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_serverinfo-dd1a6803-f1ea-4002-a959-356e8d642920.json
new file mode 100644
index 0000000..5b2c856
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_serverinfo-dd1a6803-f1ea-4002-a959-356e8d642920.json
@@ -0,0 +1,34 @@
+{
+ "id" : "dd1a6803-f1ea-4002-a959-356e8d642920",
+ "name" : "rest_api_latest_serverinfo",
+ "request" : {
+ "url" : "/rest/api/latest/serverInfo",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "body" : "{\"baseUrl\":\"http://localhost:8080\",\"version\":\"8.17.0\",\"versionNumbers\":[8,17,0],\"deploymentType\":\"Server\",\"buildNumber\":817000,\"buildDate\":\"2021-05-18T00:00:00.000+0000\",\"databaseBuildNumber\":817000,\"serverTime\":\"2021-05-26T11:07:51.966+0000\",\"scmInfo\":\"a507a62ee263f31d253569e578e747c4fedadad0\",\"serverTitle\":\"JIRA\"}",
+ "headers" : {
+ "X-AREQUESTID" : "667x2737x1",
+ "X-ASESSIONID" : "q6uf1d",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:51 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "dd1a6803-f1ea-4002-a959-356e8d642920",
+ "persistent" : true,
+ "scenarioName" : "scenario-4-rest-api-latest-serverInfo",
+ "requiredScenarioState" : "scenario-4-rest-api-latest-serverInfo-3",
+ "newScenarioState" : "scenario-4-rest-api-latest-serverInfo-4",
+ "insertionIndex" : 41
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_api_latest_serverinfo-ec14f05b-707b-4a51-a6a1-64b462a2c020.json b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_serverinfo-ec14f05b-707b-4a51-a6a1-64b462a2c020.json
new file mode 100644
index 0000000..c9d4c57
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_api_latest_serverinfo-ec14f05b-707b-4a51-a6a1-64b462a2c020.json
@@ -0,0 +1,34 @@
+{
+ "id" : "ec14f05b-707b-4a51-a6a1-64b462a2c020",
+ "name" : "rest_api_latest_serverinfo",
+ "request" : {
+ "url" : "/rest/api/latest/serverInfo",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "body" : "{\"baseUrl\":\"http://localhost:8080\",\"version\":\"8.17.0\",\"versionNumbers\":[8,17,0],\"deploymentType\":\"Server\",\"buildNumber\":817000,\"buildDate\":\"2021-05-18T00:00:00.000+0000\",\"databaseBuildNumber\":817000,\"serverTime\":\"2021-05-26T11:07:44.411+0000\",\"scmInfo\":\"a507a62ee263f31d253569e578e747c4fedadad0\",\"serverTitle\":\"JIRA\"}",
+ "headers" : {
+ "X-AREQUESTID" : "667x2699x1",
+ "X-ASESSIONID" : "1lz67bf",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:44 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "ec14f05b-707b-4a51-a6a1-64b462a2c020",
+ "persistent" : true,
+ "scenarioName" : "scenario-4-rest-api-latest-serverInfo",
+ "requiredScenarioState" : "Started",
+ "newScenarioState" : "scenario-4-rest-api-latest-serverInfo-2",
+ "insertionIndex" : 6
+}
\ No newline at end of file
diff --git a/integration-tests/jira/src/test/resources/mappings/rest_auth_latest_session-ff621014-dbe1-499a-88cb-e659bec3ffa9.json b/integration-tests/jira/src/test/resources/mappings/rest_auth_latest_session-ff621014-dbe1-499a-88cb-e659bec3ffa9.json
new file mode 100644
index 0000000..3b67ee2
--- /dev/null
+++ b/integration-tests/jira/src/test/resources/mappings/rest_auth_latest_session-ff621014-dbe1-499a-88cb-e659bec3ffa9.json
@@ -0,0 +1,31 @@
+{
+ "id" : "ff621014-dbe1-499a-88cb-e659bec3ffa9",
+ "name" : "rest_auth_latest_session",
+ "request" : {
+ "url" : "/rest/auth/latest/session",
+ "method" : "GET"
+ },
+ "response" : {
+ "status" : 200,
+ "body" : "{\"self\":\"http://localhost:8080/rest/api/latest/user?username=jiratester\",\"name\":\"jiratester\",\"loginInfo\":{\"failedLoginCount\":12,\"loginCount\":5606,\"lastFailedLoginTime\":\"2021-05-25T12:25:02.949+0000\",\"previousLoginTime\":\"2021-05-26T11:07:51.808+0000\"}}",
+ "headers" : {
+ "X-AREQUESTID" : "667x2735x1",
+ "X-ASESSIONID" : "kpb0b3",
+ "Referrer-Policy" : "strict-origin-when-cross-origin",
+ "X-XSS-Protection" : "1; mode=block",
+ "X-Content-Type-Options" : "nosniff",
+ "X-Frame-Options" : "SAMEORIGIN",
+ "Content-Security-Policy" : "sandbox",
+ "Strict-Transport-Security" : "max-age=31536000",
+ "X-Seraph-LoginReason" : "OK",
+ "X-AUSERNAME" : "jiratester",
+ "Cache-Control" : "no-cache, no-store, no-transform",
+ "Content-Type" : "application/json;charset=UTF-8",
+ "Date" : "Wed, 26 May 2021 11:07:51 GMT",
+ "Keep-Alive" : "timeout=20"
+ }
+ },
+ "uuid" : "ff621014-dbe1-499a-88cb-e659bec3ffa9",
+ "persistent" : true,
+ "insertionIndex" : 39
+}
\ No newline at end of file