This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch camel-3.14.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-3.14.x by this push:
new 07765a977b8 Fix camel-jira not adding components field (#7868)
07765a977b8 is described below
commit 07765a977b87d406188dbdb0a465388d5abaaa24
Author: Claudio Miranda <[email protected]>
AuthorDate: Thu Jun 23 12:54:43 2022 -0300
Fix camel-jira not adding components field (#7868)
* the "components" field was not updated due to a bug in handling the
field
* Added tests for the component field
* Fixed the "components" field description
---
.../component/jira/producer/AddIssueProducer.java | 32 +++++++---
.../jira/producer/UpdateIssueProducer.java | 22 +++++--
.../component/jira/producer/WatcherProducer.java | 27 +++++---
.../org/apache/camel/component/jira/Utils.java | 5 ++
.../jira/producer/AddIssueProducerTest.java | 74 +++++++++++++---------
.../jira/producer/TransitionIssueProducerTest.java | 6 +-
.../jira/producer/UpdateIssueProducerTest.java | 39 ++++++++----
.../jira/producer/WatcherProducerTest.java | 16 ++---
8 files changed, 141 insertions(+), 80 deletions(-)
diff --git
a/components/camel-jira/src/main/java/org/apache/camel/component/jira/producer/AddIssueProducer.java
b/components/camel-jira/src/main/java/org/apache/camel/component/jira/producer/AddIssueProducer.java
index 2a902f1c43f..007c69cfb26 100644
---
a/components/camel-jira/src/main/java/org/apache/camel/component/jira/producer/AddIssueProducer.java
+++
b/components/camel-jira/src/main/java/org/apache/camel/component/jira/producer/AddIssueProducer.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.component.jira.producer;
+import java.util.ArrayList;
import java.util.List;
import com.atlassian.jira.rest.client.api.IssueRestClient;
@@ -28,6 +29,7 @@ import
com.atlassian.jira.rest.client.api.domain.input.IssueInputBuilder;
import org.apache.camel.Exchange;
import org.apache.camel.component.jira.JiraEndpoint;
import org.apache.camel.support.DefaultProducer;
+import org.apache.camel.util.ObjectHelper;
import static org.apache.camel.component.jira.JiraConstants.*;
@@ -49,8 +51,8 @@ public class AddIssueProducer extends DefaultProducer {
String assigneeName = exchange.getIn().getHeader(ISSUE_ASSIGNEE,
String.class);
String priorityName = exchange.getIn().getHeader(ISSUE_PRIORITY_NAME,
String.class);
Long priorityId = exchange.getIn().getHeader(ISSUE_PRIORITY_ID,
Long.class);
- List<String> components = exchange.getIn().getHeader(ISSUE_COMPONENTS,
List.class);
- List<String> watchers = exchange.getIn().getHeader(ISSUE_WATCHERS_ADD,
List.class);
+ String components = exchange.getIn().getHeader(ISSUE_COMPONENTS,
String.class);
+ String watchers = exchange.getIn().getHeader(ISSUE_WATCHERS_ADD,
String.class);
// search for issueTypeId from an issueTypeName
if (issueTypeId == null && issueTypeName != null) {
Iterable<IssueType> issueTypes =
client.getMetadataClient().getIssueTypes().claim();
@@ -86,8 +88,16 @@ public class AddIssueProducer extends DefaultProducer {
IssueInputBuilder builder = new IssueInputBuilder(projectKey,
issueTypeId);
builder.setDescription(exchange.getIn().getBody(String.class));
builder.setSummary(summary);
- if (components != null && !components.isEmpty()) {
- builder.setComponentsNames(components);
+ if (ObjectHelper.isNotEmpty(components)) {
+ String[] compArr = components.split(",");
+ List<String> comps = new ArrayList<>(compArr.length);
+ for (String s : compArr) {
+ String c = s.trim();
+ if (c.length() > 0) {
+ comps.add(c);
+ }
+ }
+ builder.setComponentsNames(comps);
}
if (priorityId != null) {
builder.setPriorityId(priorityId);
@@ -99,17 +109,21 @@ public class AddIssueProducer extends DefaultProducer {
IssueRestClient issueClient = client.getIssueClient();
BasicIssue issueCreated =
issueClient.createIssue(builder.build()).claim();
Issue issue = issueClient.getIssue(issueCreated.getKey()).claim();
- if (watchers != null && !watchers.isEmpty()) {
- for (String watcher : watchers) {
- issueClient.addWatcher(issue.getWatchers().getSelf(), watcher);
+ if (ObjectHelper.isNotEmpty(watchers)) {
+ String[] watArr = watchers.split(",");
+ for (String s : watArr) {
+ String watcher = s.trim();
+ if (watcher.length() > 0) {
+ issueClient.addWatcher(issue.getWatchers().getSelf(),
watcher);
+ }
}
}
// support InOut
if (exchange.getPattern().isOutCapable()) {
// copy the header of in message to the out message
- exchange.getOut().copyFrom(exchange.getIn());
- exchange.getOut().setBody(issue);
+ exchange.getMessage().copyFrom(exchange.getIn());
+ exchange.getMessage().setBody(issue);
} else {
exchange.getIn().setBody(issue);
}
diff --git
a/components/camel-jira/src/main/java/org/apache/camel/component/jira/producer/UpdateIssueProducer.java
b/components/camel-jira/src/main/java/org/apache/camel/component/jira/producer/UpdateIssueProducer.java
index 1eeb6a52d5a..e0d8fd04542 100644
---
a/components/camel-jira/src/main/java/org/apache/camel/component/jira/producer/UpdateIssueProducer.java
+++
b/components/camel-jira/src/main/java/org/apache/camel/component/jira/producer/UpdateIssueProducer.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.component.jira.producer;
+import java.util.ArrayList;
import java.util.List;
import com.atlassian.jira.rest.client.api.IssueRestClient;
@@ -26,8 +27,16 @@ import
com.atlassian.jira.rest.client.api.domain.input.IssueInputBuilder;
import org.apache.camel.Exchange;
import org.apache.camel.component.jira.JiraEndpoint;
import org.apache.camel.support.DefaultProducer;
+import org.apache.camel.util.ObjectHelper;
-import static org.apache.camel.component.jira.JiraConstants.*;
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_ASSIGNEE;
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_COMPONENTS;
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_KEY;
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_PRIORITY_ID;
+import static
org.apache.camel.component.jira.JiraConstants.ISSUE_PRIORITY_NAME;
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_SUMMARY;
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_TYPE_ID;
+import static org.apache.camel.component.jira.JiraConstants.ISSUE_TYPE_NAME;
public class UpdateIssueProducer extends DefaultProducer {
@@ -49,7 +58,7 @@ public class UpdateIssueProducer extends DefaultProducer {
String assigneeName = exchange.getIn().getHeader(ISSUE_ASSIGNEE,
String.class);
String priorityName = exchange.getIn().getHeader(ISSUE_PRIORITY_NAME,
String.class);
Long priorityId = exchange.getIn().getHeader(ISSUE_PRIORITY_ID,
Long.class);
- List<String> components = exchange.getIn().getHeader(ISSUE_COMPONENTS,
List.class);
+ String components = exchange.getIn().getHeader(ISSUE_COMPONENTS,
String.class);
if (issueTypeId == null && issueTypeName != null) {
Iterable<IssueType> issueTypes =
client.getMetadataClient().getIssueTypes().claim();
for (IssueType type : issueTypes) {
@@ -79,8 +88,13 @@ public class UpdateIssueProducer extends DefaultProducer {
if (description != null) {
builder.setDescription(description);
}
- if (components != null && !components.isEmpty()) {
- builder.setComponentsNames(components);
+ if (ObjectHelper.isNotEmpty(components)) {
+ String[] compArr = components.split(",");
+ List<String> comps = new ArrayList<>(compArr.length);
+ for (String s : compArr) {
+ comps.add(s.trim());
+ }
+ builder.setComponentsNames(comps);
}
if (priorityId != null) {
builder.setPriorityId(priorityId);
diff --git
a/components/camel-jira/src/main/java/org/apache/camel/component/jira/producer/WatcherProducer.java
b/components/camel-jira/src/main/java/org/apache/camel/component/jira/producer/WatcherProducer.java
index 7f5695c8781..6c9119826fa 100644
---
a/components/camel-jira/src/main/java/org/apache/camel/component/jira/producer/WatcherProducer.java
+++
b/components/camel-jira/src/main/java/org/apache/camel/component/jira/producer/WatcherProducer.java
@@ -16,14 +16,13 @@
*/
package org.apache.camel.component.jira.producer;
-import java.util.List;
-
import com.atlassian.jira.rest.client.api.IssueRestClient;
import com.atlassian.jira.rest.client.api.JiraRestClient;
import com.atlassian.jira.rest.client.api.domain.Issue;
import org.apache.camel.Exchange;
import org.apache.camel.component.jira.JiraEndpoint;
import org.apache.camel.support.DefaultProducer;
+import org.apache.camel.util.ObjectHelper;
import static org.apache.camel.component.jira.JiraConstants.ISSUE_KEY;
import static org.apache.camel.component.jira.JiraConstants.ISSUE_WATCHERS_ADD;
@@ -38,26 +37,34 @@ public class WatcherProducer extends DefaultProducer {
@Override
public void process(Exchange exchange) {
String issueKey = exchange.getIn().getHeader(ISSUE_KEY, String.class);
- List<String> watchersAdd =
exchange.getIn().getHeader(ISSUE_WATCHERS_ADD, List.class);
- List<String> watchersRemove =
exchange.getIn().getHeader(ISSUE_WATCHERS_REMOVE, List.class);
+ String watchersAdd = exchange.getIn().getHeader(ISSUE_WATCHERS_ADD,
String.class);
+ String watchersRemove =
exchange.getIn().getHeader(ISSUE_WATCHERS_REMOVE, String.class);
if (issueKey == null) {
throw new IllegalArgumentException(
"Missing exchange input header named \'IssueKey\', it
should specify the issue key to add/remove watchers to.");
}
JiraRestClient client = ((JiraEndpoint) getEndpoint()).getClient();
- boolean hasWatchersToAdd = watchersAdd != null &&
!watchersAdd.isEmpty();
- boolean hasWatchersToRemove = watchersRemove != null &&
!watchersRemove.isEmpty();
+ boolean hasWatchersToAdd = ObjectHelper.isNotEmpty(watchersAdd);
+ boolean hasWatchersToRemove = ObjectHelper.isNotEmpty(watchersRemove);
if (hasWatchersToAdd || hasWatchersToRemove) {
IssueRestClient issueClient = client.getIssueClient();
Issue issue = issueClient.getIssue(issueKey).claim();
if (hasWatchersToAdd) {
- for (String watcher : watchersAdd) {
- issueClient.addWatcher(issue.getWatchers().getSelf(),
watcher);
+ String[] watArr = watchersAdd.split(",");
+ for (String s : watArr) {
+ String watcher = s.trim();
+ if (watcher.length() > 0) {
+ issueClient.addWatcher(issue.getWatchers().getSelf(),
watcher);
+ }
}
}
if (hasWatchersToRemove) {
- for (String watcher : watchersRemove) {
- issueClient.removeWatcher(issue.getWatchers().getSelf(),
watcher);
+ String[] watArr = watchersRemove.split(",");
+ for (String s : watArr) {
+ String watcher = s.trim();
+ if (watcher.length() > 0) {
+
issueClient.removeWatcher(issue.getWatchers().getSelf(), watcher);
+ }
}
}
}
diff --git
a/components/camel-jira/src/test/java/org/apache/camel/component/jira/Utils.java
b/components/camel-jira/src/test/java/org/apache/camel/component/jira/Utils.java
index 0d1b3770a25..1643a4a4192 100644
---
a/components/camel-jira/src/test/java/org/apache/camel/component/jira/Utils.java
+++
b/components/camel-jira/src/test/java/org/apache/camel/component/jira/Utils.java
@@ -169,6 +169,11 @@ public final class Utils {
return new Worklog(selfUri, issueUri, null, null, comment, now, null,
null, minutesSpent, null);
}
+ public static BasicComponent createBasicComponent(Long id, String name) {
+ URI compUri = URI.create(TEST_JIRA_URL +
"/rest/api/latest/issue/11/component/1");
+ return new BasicComponent(compUri, id, name, name + " description");
+ }
+
private static Map<String, URI> buildUserAvatarUris(String user, Long
avatarId) throws Exception {
final ImmutableMap.Builder<String, URI> builder =
ImmutableMap.builder();
builder.put(S48_48, buildUserAvatarUri(user, avatarId));
diff --git
a/components/camel-jira/src/test/java/org/apache/camel/component/jira/producer/AddIssueProducerTest.java
b/components/camel-jira/src/test/java/org/apache/camel/component/jira/producer/AddIssueProducerTest.java
index 2dc2a896f31..c806d9dec8a 100644
---
a/components/camel-jira/src/test/java/org/apache/camel/component/jira/producer/AddIssueProducerTest.java
+++
b/components/camel-jira/src/test/java/org/apache/camel/component/jira/producer/AddIssueProducerTest.java
@@ -16,14 +16,18 @@
*/
package org.apache.camel.component.jira.producer;
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
+import java.util.StringJoiner;
import com.atlassian.jira.rest.client.api.IssueRestClient;
import com.atlassian.jira.rest.client.api.JiraRestClient;
import com.atlassian.jira.rest.client.api.JiraRestClientFactory;
import com.atlassian.jira.rest.client.api.MetadataRestClient;
+import com.atlassian.jira.rest.client.api.domain.BasicComponent;
import com.atlassian.jira.rest.client.api.domain.BasicIssue;
import com.atlassian.jira.rest.client.api.domain.BasicPriority;
import com.atlassian.jira.rest.client.api.domain.Issue;
@@ -39,6 +43,7 @@ import org.apache.camel.Produce;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.jira.JiraComponent;
+import org.apache.camel.component.jira.Utils;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.spi.Registry;
import org.apache.camel.test.junit5.CamelTestSupport;
@@ -47,15 +52,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
-import static org.apache.camel.component.jira.JiraConstants.ISSUE_ASSIGNEE;
-import static org.apache.camel.component.jira.JiraConstants.ISSUE_PRIORITY_ID;
-import static
org.apache.camel.component.jira.JiraConstants.ISSUE_PRIORITY_NAME;
-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_TYPE_ID;
-import static org.apache.camel.component.jira.JiraConstants.ISSUE_TYPE_NAME;
-import static org.apache.camel.component.jira.JiraConstants.JIRA;
-import static
org.apache.camel.component.jira.JiraConstants.JIRA_REST_CLIENT_FACTORY;
+import static org.apache.camel.component.jira.JiraConstants.*;
import static
org.apache.camel.component.jira.JiraTestConstants.JIRA_CREDENTIALS;
import static org.apache.camel.component.jira.JiraTestConstants.KEY;
import static org.apache.camel.component.jira.Utils.createIssue;
@@ -118,7 +115,10 @@ public class AddIssueProducerTest extends CamelTestSupport
{
String description = (String)
issueInput.getField("description").getValue();
Integer priorityId = Integer.parseInt(getValue(issueInput,
"priority", "id"));
BasicPriority priority = issuePriorities.get(priorityId);
- backendIssue = createIssue(11L, summary, project, issueType,
description, priority, userAssignee, null, null);
+ Collection<BasicComponent> components = new ArrayList<>(2);
+ components.add(Utils.createBasicComponent(1L, "ux"));
+ components.add(Utils.createBasicComponent(2L, "plugins"));
+ backendIssue = createIssue(11L, summary, project, issueType,
description, priority, userAssignee, components, null);
BasicIssue basicIssue = new BasicIssue(backendIssue.getSelf(),
backendIssue.getKey(), backendIssue.getId());
return Promises.promise(basicIssue);
});
@@ -155,22 +155,32 @@ public class AddIssueProducerTest extends
CamelTestSupport {
@Test
public void verifyIssueAdded() throws InterruptedException {
+ String type = "Task";
+ String priority = "Low";
+ String summary = "Demo Bug jira " + new Date();
+ String assignee = "tom";
+ String components = "ux,plugins";
+ String description = "My jira description" + new Date();
+
Map<String, Object> headers = new HashMap<>();
headers.put(ISSUE_PROJECT_KEY, KEY);
- headers.put(ISSUE_TYPE_NAME, "Task");
- headers.put(ISSUE_SUMMARY, "Demo Bug jira " + (new Date()));
- headers.put(ISSUE_PRIORITY_NAME, "Low");
- headers.put(ISSUE_ASSIGNEE, "tom");
+ headers.put(ISSUE_TYPE_NAME, type);
+ headers.put(ISSUE_SUMMARY, summary);
+ headers.put(ISSUE_PRIORITY_NAME, priority);
+ headers.put(ISSUE_ASSIGNEE, assignee);
+ headers.put(ISSUE_COMPONENTS, components);
- template.sendBodyAndHeaders("Minha descrição jira " + (new Date()),
headers);
+ template.sendBodyAndHeaders(description, headers);
Issue issue = issueRestClient.getIssue(backendIssue.getKey()).claim();
- assertEquals(backendIssue, issue);
- assertEquals(backendIssue.getIssueType(), issue.getIssueType());
- assertEquals(backendIssue.getPriority(), issue.getPriority());
- assertEquals(backendIssue.getSummary(), issue.getSummary());
- assertEquals(backendIssue.getProject(), issue.getProject());
- assertEquals(backendIssue.getDescription(), issue.getDescription());
+ assertEquals(issue, issue);
+ assertEquals(type, issue.getIssueType().getName());
+ assertEquals(priority, issue.getPriority().getName());
+ assertEquals(summary, issue.getSummary());
+ assertEquals(description, issue.getDescription());
+ StringJoiner comps = new StringJoiner(",");
+ issue.getComponents().forEach(c -> comps.add(c.getName()));
+ assertEquals(comps.toString(), components);
mockResult.expectedMessageCount(1);
mockResult.assertIsSatisfied();
}
@@ -178,21 +188,25 @@ public class AddIssueProducerTest extends
CamelTestSupport {
@Test
public void verifyIssueAddedWithIds() throws InterruptedException {
+ int typeId = 2;
+ String summary = "Demo Bug jira " + new Date();
+ int priority = 1;
+ String description = "My jira description" + new Date();
+
Map<String, Object> headers = new HashMap<>();
headers.put(ISSUE_PROJECT_KEY, KEY);
- headers.put(ISSUE_TYPE_ID, 2);
- headers.put(ISSUE_SUMMARY, "Demo Bug jira " + (new Date()));
- headers.put(ISSUE_PRIORITY_ID, 1);
+ headers.put(ISSUE_TYPE_ID, typeId);
+ headers.put(ISSUE_SUMMARY, summary);
+ headers.put(ISSUE_PRIORITY_ID, priority);
- template.sendBodyAndHeaders("Minha descrição jira " + (new Date()),
headers);
+ template.sendBodyAndHeaders(description, headers);
Issue issue = issueRestClient.getIssue(backendIssue.getKey()).claim();
assertEquals(backendIssue, issue);
- assertEquals(backendIssue.getIssueType(), issue.getIssueType());
- assertEquals(backendIssue.getPriority(), issue.getPriority());
- assertEquals(backendIssue.getSummary(), issue.getSummary());
- assertEquals(backendIssue.getProject(), issue.getProject());
- assertEquals(backendIssue.getDescription(), issue.getDescription());
+ assertEquals(typeId, issue.getIssueType().getId());
+ assertEquals(priority, issue.getPriority().getId());
+ assertEquals(summary, issue.getSummary());
+ assertEquals(description, issue.getDescription());
mockResult.expectedMessageCount(1);
mockResult.assertIsSatisfied();
}
diff --git
a/components/camel-jira/src/test/java/org/apache/camel/component/jira/producer/TransitionIssueProducerTest.java
b/components/camel-jira/src/test/java/org/apache/camel/component/jira/producer/TransitionIssueProducerTest.java
index 1a12df9cd57..5435f7cc92d 100644
---
a/components/camel-jira/src/test/java/org/apache/camel/component/jira/producer/TransitionIssueProducerTest.java
+++
b/components/camel-jira/src/test/java/org/apache/camel/component/jira/producer/TransitionIssueProducerTest.java
@@ -87,9 +87,9 @@ public class TransitionIssueProducerTest extends
CamelTestSupport {
when(issueRestClient.getIssue(any())).then(inv ->
Promises.promise(issue));
when(issueRestClient.transition(any(Issue.class),
any(TransitionInput.class))).then(inv -> {
URI doneStatusUri = URI.create(TEST_JIRA_URL +
"/rest/api/2/status/1");
- URI doneResolutionUri = URI.create(TEST_JIRA_URL +
"/rest/api/2/resolution/1");
+ URI doneResolutionUri = URI.create(TEST_JIRA_URL +
"/rest/api/2/resolution/31");
Status status = new Status(doneStatusUri, 1L, "Done", "Done",
null, null);
- Resolution resolution = new Resolution(doneResolutionUri, 1L,
"Resolution", "Resolution");
+ Resolution resolution = new Resolution(doneResolutionUri, 31L,
"Resolution", "Resolution");
issue = transitionIssueDone(issue, status, resolution);
return null;
});
@@ -117,7 +117,7 @@ public class TransitionIssueProducerTest extends
CamelTestSupport {
public void configure() throws IOException {
from("direct:start")
.setHeader(ISSUE_KEY, () -> KEY + "-1")
- .setHeader(ISSUE_TRANSITION_ID, () -> 31)
+ .setHeader(ISSUE_TRANSITION_ID, () -> 3)
.to("jira://transitionIssue?jiraUrl=" +
JIRA_CREDENTIALS)
.to(mockResult);
}
diff --git
a/components/camel-jira/src/test/java/org/apache/camel/component/jira/producer/UpdateIssueProducerTest.java
b/components/camel-jira/src/test/java/org/apache/camel/component/jira/producer/UpdateIssueProducerTest.java
index 7828785a192..52e7dde9d9f 100644
---
a/components/camel-jira/src/test/java/org/apache/camel/component/jira/producer/UpdateIssueProducerTest.java
+++
b/components/camel-jira/src/test/java/org/apache/camel/component/jira/producer/UpdateIssueProducerTest.java
@@ -16,14 +16,18 @@
*/
package org.apache.camel.component.jira.producer;
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
+import java.util.StringJoiner;
import com.atlassian.jira.rest.client.api.IssueRestClient;
import com.atlassian.jira.rest.client.api.JiraRestClient;
import com.atlassian.jira.rest.client.api.JiraRestClientFactory;
import com.atlassian.jira.rest.client.api.MetadataRestClient;
+import com.atlassian.jira.rest.client.api.domain.BasicComponent;
import com.atlassian.jira.rest.client.api.domain.BasicIssue;
import com.atlassian.jira.rest.client.api.domain.BasicPriority;
import com.atlassian.jira.rest.client.api.domain.Issue;
@@ -39,6 +43,7 @@ import org.apache.camel.Produce;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.jira.JiraComponent;
+import org.apache.camel.component.jira.Utils;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.spi.Registry;
import org.apache.camel.test.junit5.CamelTestSupport;
@@ -47,7 +52,6 @@ import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
-import static org.apache.camel.component.jira.JiraConstants.ISSUE_ASSIGNEE;
import static org.apache.camel.component.jira.JiraConstants.ISSUE_KEY;
import static
org.apache.camel.component.jira.JiraConstants.ISSUE_PRIORITY_NAME;
import static org.apache.camel.component.jira.JiraConstants.ISSUE_SUMMARY;
@@ -117,7 +121,11 @@ public class UpdateIssueProducerTest extends
CamelTestSupport {
String description = (String)
issueInput.getField("description").getValue();
Integer priorityId = Integer.parseInt(getValue(issueInput,
"priority", "id"));
BasicPriority priority = issuePriorities.get(priorityId);
- backendIssue = createIssue(11L, summary, issueKey, issueType,
description, priority, userAssignee, null, null);
+ Collection<BasicComponent> components = new ArrayList<>(2);
+ components.add(Utils.createBasicComponent(1L, "ux"));
+ components.add(Utils.createBasicComponent(2L, "plugins"));
+ backendIssue
+ = createIssue(11L, summary, issueKey, issueType,
description, priority, userAssignee, components, null);
BasicIssue basicIssue = new BasicIssue(backendIssue.getSelf(),
backendIssue.getKey(), backendIssue.getId());
return Promises.promise(basicIssue);
});
@@ -154,22 +162,29 @@ public class UpdateIssueProducerTest extends
CamelTestSupport {
@Test
public void verifyIssueUpdated() throws InterruptedException {
+ String type = "Bug";
+ String priority = "High";
+ String summary = "Demo Bug jira " + new Date();
+ String description = "My jira description" + new Date();
+ String components = "ux,plugins";
+
Map<String, Object> headers = new HashMap<>();
headers.put(ISSUE_KEY, backendIssue.getKey());
- headers.put(ISSUE_TYPE_NAME, "Task");
- headers.put(ISSUE_SUMMARY, "Demo Bug jira " + (new Date()));
- headers.put(ISSUE_PRIORITY_NAME, "Low");
- headers.put(ISSUE_ASSIGNEE, "tom");
+ headers.put(ISSUE_TYPE_NAME, type);
+ headers.put(ISSUE_SUMMARY, summary);
+ headers.put(ISSUE_PRIORITY_NAME, priority);
- template.sendBodyAndHeaders("New description " + (new Date()),
headers);
+ template.sendBodyAndHeaders(description, headers);
Issue issue = issueRestClient.getIssue(backendIssue.getKey()).claim();
assertEquals(backendIssue, issue);
- assertEquals(backendIssue.getIssueType(), issue.getIssueType());
- assertEquals(backendIssue.getPriority(), issue.getPriority());
- assertEquals(backendIssue.getSummary(), issue.getSummary());
- assertEquals(backendIssue.getProject(), issue.getProject());
- assertEquals(backendIssue.getDescription(), issue.getDescription());
+ assertEquals(type, issue.getIssueType().getName());
+ assertEquals(priority, issue.getPriority().getName());
+ assertEquals(summary, issue.getSummary());
+ assertEquals(description, issue.getDescription());
+ StringJoiner comps = new StringJoiner(",");
+ issue.getComponents().forEach(c -> comps.add(c.getName()));
+ assertEquals(comps.toString(), components);
mockResult.expectedMessageCount(1);
mockResult.assertIsSatisfied();
}
diff --git
a/components/camel-jira/src/test/java/org/apache/camel/component/jira/producer/WatcherProducerTest.java
b/components/camel-jira/src/test/java/org/apache/camel/component/jira/producer/WatcherProducerTest.java
index 4ca256c7a01..b4641f5179b 100644
---
a/components/camel-jira/src/test/java/org/apache/camel/component/jira/producer/WatcherProducerTest.java
+++
b/components/camel-jira/src/test/java/org/apache/camel/component/jira/producer/WatcherProducerTest.java
@@ -153,9 +153,7 @@ public class WatcherProducerTest extends CamelTestSupport {
@Test
public void addWatchers() throws InterruptedException {
- List<String> watchersToAdd = new ArrayList<>();
- watchersToAdd.add("user1A");
- watchersToAdd.add("user1B");
+ String watchersToAdd = "user1A,user1B";
Map<String, Object> headers = new HashMap<>();
headers.put(ISSUE_KEY, backendIssue.getKey());
headers.put(ISSUE_WATCHERS_ADD, watchersToAdd);
@@ -175,9 +173,7 @@ public class WatcherProducerTest extends CamelTestSupport {
@Test
public void removeWatchers() throws InterruptedException {
- List<String> watchersToRemove = new ArrayList<>();
- watchersToRemove.add("user2");
- watchersToRemove.add("user3");
+ String watchersToRemove = "user2,user3";
Map<String, Object> headers = new HashMap<>();
headers.put(ISSUE_KEY, backendIssue.getKey());
headers.put(ISSUE_WATCHERS_REMOVE, watchersToRemove);
@@ -197,12 +193,8 @@ public class WatcherProducerTest extends CamelTestSupport {
@Test
public void addRemoveWatchers() throws InterruptedException {
- List<String> watchersToAdd = new ArrayList<>();
- watchersToAdd.add("user2A");
- watchersToAdd.add("user2B");
- List<String> watchersToRemove = new ArrayList<>();
- watchersToRemove.add("user4");
- watchersToRemove.add("user5");
+ String watchersToAdd = "user2A,user2B";
+ String watchersToRemove = "user4,user5";
Map<String, Object> headers = new HashMap<>();
headers.put(ISSUE_KEY, backendIssue.getKey());
headers.put(ISSUE_WATCHERS_ADD, watchersToAdd);