You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2014/10/24 14:35:02 UTC
[1/2] git commit: CAMEL-7919 New tests for the camel-jira component
Repository: camel
Updated Branches:
refs/heads/master dee48e002 -> 007403ac4
CAMEL-7919 New tests for the camel-jira component
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/07b432c3
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/07b432c3
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/07b432c3
Branch: refs/heads/master
Commit: 07b432c3b4a1ae30ee56b92ee359a52fbae5a150
Parents: dee48e0
Author: Kevin Earls <ke...@kevinearls.com>
Authored: Thu Oct 23 10:40:03 2014 +0200
Committer: Willem Jiang <wi...@gmail.com>
Committed: Fri Oct 24 20:19:29 2014 +0800
----------------------------------------------------------------------
components/camel-jira/pom.xml | 6 +
.../jira/consumer/AbstractJIRAConsumer.java | 20 +-
.../component/jira/CommentConsumerTest.java | 126 +++++++++++
.../camel/component/jira/IssueConsumerTest.java | 125 +++++++++++
.../component/jira/mocks/MockIssueClient.java | 222 +++++++++++++++++++
.../mocks/MockJerseyJiraRestClientFactory.java | 35 +++
.../jira/mocks/MockJiraRestClient.java | 84 +++++++
.../jira/mocks/MockSearchRestClient.java | 107 +++++++++
.../component/jira/mocks/MockSearchResult.java | 66 ++++++
9 files changed, 787 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/07b432c3/components/camel-jira/pom.xml
----------------------------------------------------------------------
diff --git a/components/camel-jira/pom.xml b/components/camel-jira/pom.xml
index b08f509..c0fa8ae 100644
--- a/components/camel-jira/pom.xml
+++ b/components/camel-jira/pom.xml
@@ -40,6 +40,12 @@
<version>1.2-m01</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>com.atlassian.jira</groupId>
+ <artifactId>jira-rest-java-client-api</artifactId>
+ <version>2.0.0-m30</version>
+ <scope>test</scope>
+ </dependency>
<!-- testing -->
<dependency>
http://git-wip-us.apache.org/repos/asf/camel/blob/07b432c3/components/camel-jira/src/main/java/org/apache/camel/component/jira/consumer/AbstractJIRAConsumer.java
----------------------------------------------------------------------
diff --git a/components/camel-jira/src/main/java/org/apache/camel/component/jira/consumer/AbstractJIRAConsumer.java b/components/camel-jira/src/main/java/org/apache/camel/component/jira/consumer/AbstractJIRAConsumer.java
index 3d2c3bb..2ee7bc4 100644
--- a/components/camel-jira/src/main/java/org/apache/camel/component/jira/consumer/AbstractJIRAConsumer.java
+++ b/components/camel-jira/src/main/java/org/apache/camel/component/jira/consumer/AbstractJIRAConsumer.java
@@ -21,6 +21,7 @@ import java.util.ArrayList;
import java.util.List;
import com.atlassian.jira.rest.client.JiraRestClient;
+import com.atlassian.jira.rest.client.SearchRestClient;
import com.atlassian.jira.rest.client.domain.BasicIssue;
import com.atlassian.jira.rest.client.domain.SearchResult;
import com.atlassian.jira.rest.client.internal.jersey.JerseyJiraRestClientFactory;
@@ -29,6 +30,7 @@ import com.atlassian.jira.rest.client.internal.jersey.JerseyJiraRestClientFactor
import org.apache.camel.Processor;
import org.apache.camel.component.jira.JIRAEndpoint;
import org.apache.camel.impl.ScheduledPollConsumer;
+import org.apache.camel.spi.Registry;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -46,8 +48,18 @@ public abstract class AbstractJIRAConsumer extends ScheduledPollConsumer {
// Use a more reasonable default.
setDelay(6000);
-
- final JerseyJiraRestClientFactory factory = new JerseyJiraRestClientFactory();
+
+ JerseyJiraRestClientFactory factory;
+ Registry registry = endpoint.getCamelContext().getRegistry();
+ Object target = registry.lookupByName("JerseyJiraRestClientFactory");
+ if (target != null) {
+ LOG.debug("JerseyJiraRestClientFactory found in registry " + target.getClass().getCanonicalName());
+ factory = (JerseyJiraRestClientFactory) target;
+ } else {
+ factory = new JerseyJiraRestClientFactory();
+ }
+
+
final URI jiraServerUri = URI.create(endpoint.getServerUrl());
client = factory.createWithBasicHttpAuthentication(jiraServerUri, endpoint.getUsername(),
endpoint.getPassword());
@@ -63,8 +75,8 @@ public abstract class AbstractJIRAConsumer extends ScheduledPollConsumer {
List<BasicIssue> issues = new ArrayList<BasicIssue>();
while (true) {
- SearchResult searchResult = client.getSearchClient().searchJqlWithFullIssues(jql, maxPerQuery,
- start, null);
+ SearchRestClient searchRestClient = client.getSearchClient();
+ SearchResult searchResult = searchRestClient.searchJqlWithFullIssues(jql, maxPerQuery,start, null);
for (BasicIssue issue : searchResult.getIssues()) {
issues.add(issue);
http://git-wip-us.apache.org/repos/asf/camel/blob/07b432c3/components/camel-jira/src/test/java/org/apache/camel/component/jira/CommentConsumerTest.java
----------------------------------------------------------------------
diff --git a/components/camel-jira/src/test/java/org/apache/camel/component/jira/CommentConsumerTest.java b/components/camel-jira/src/test/java/org/apache/camel/component/jira/CommentConsumerTest.java
new file mode 100644
index 0000000..e70b083
--- /dev/null
+++ b/components/camel-jira/src/test/java/org/apache/camel/component/jira/CommentConsumerTest.java
@@ -0,0 +1,126 @@
+/**
+ * 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.component.jira;
+
+import com.atlassian.jira.rest.client.domain.BasicIssue;
+import com.atlassian.jira.rest.client.domain.Comment;
+import org.apache.camel.Exchange;
+import org.apache.camel.Message;
+import org.apache.camel.Processor;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.jira.mocks.MockJerseyJiraRestClientFactory;
+import org.apache.camel.component.jira.mocks.MockJiraRestClient;
+import org.apache.camel.component.jira.mocks.MockSearchRestClient;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.impl.JndiRegistry;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Date;
+
+public class CommentConsumerTest extends CamelTestSupport {
+ public static final Logger LOG = LoggerFactory.getLogger(CommentConsumerTest.class);
+ private static final String URL = "https://somerepo.atlassian.net";
+ private static final String USERNAME = "someguy";
+ private static final String PASSWORD = "xU3xjhay9yjEaZq";
+ private String JIRA_CREDENTIALS = URL + "&username=" + USERNAME + "&password=" + PASSWORD;
+ protected MockJerseyJiraRestClientFactory factory;
+
+
+ @Override
+ protected JndiRegistry createRegistry() throws Exception {
+ JndiRegistry registry = super.createRegistry();
+ factory = new MockJerseyJiraRestClientFactory();
+ registry.bind("JerseyJiraRestClientFactory", factory);
+
+ return registry;
+ }
+
+
+ @Override
+ protected RouteBuilder createRouteBuilder() throws Exception {
+ return new RouteBuilder() {
+ @Override
+ public void configure() throws Exception {
+ from("jira://newComment?serverUrl=" + JIRA_CREDENTIALS
+ + "&jql=RAW(project=CAMELJIRA)")
+ .process(new NewCommentProcessor())
+ .to("mock:result");
+ }
+ };
+ }
+
+
+ @Test(timeout=60*1000)
+ public void emptyAtStartupTest() throws Exception {
+ MockEndpoint mockResultEndpoint = getMockEndpoint("mock:result");
+
+ mockResultEndpoint.expectedMessageCount(0);
+ Thread.sleep(8 * 1000); // delay is 6 seconds
+
+ mockResultEndpoint.assertIsSatisfied();
+ }
+
+
+ @Test(timeout=60*1000)
+ public void singleIssueTest() throws Exception {
+ MockEndpoint mockResultEndpoint = getMockEndpoint("mock:result");
+
+ MockJiraRestClient jiraRestClient = (MockJiraRestClient) factory.getClient();
+ MockSearchRestClient searchRestClient = (MockSearchRestClient) jiraRestClient.getSearchClient();
+ BasicIssue issue1 = searchRestClient.addIssue();
+ String commentText = "Comment added at " + new Date();
+ Comment comment1 = searchRestClient.addCommentToIssue(issue1, commentText);
+
+ mockResultEndpoint.expectedBodiesReceived(comment1);
+ Thread.sleep(8 * 1000); // delay is 6 seconds
+
+ mockResultEndpoint.assertIsSatisfied();
+ }
+
+
+ @Test
+ public void multiIssueTest() throws Exception {
+ MockEndpoint mockResultEndpoint = getMockEndpoint("mock:result");
+
+ MockJiraRestClient jiraRestClient = (MockJiraRestClient) factory.getClient();
+ MockSearchRestClient searchRestClient = (MockSearchRestClient) jiraRestClient.getSearchClient();
+ BasicIssue issue1 = searchRestClient.addIssue();
+ Comment comment1 = searchRestClient.addCommentToIssue(issue1, "Comment added at " + new Date());
+ BasicIssue issue2 = searchRestClient.addIssue();
+ Comment comment2 = searchRestClient.addCommentToIssue(issue2, "Comment added at " + new Date());
+
+ mockResultEndpoint.expectedBodiesReceivedInAnyOrder(comment1, comment2);
+ Thread.sleep(8 * 1000); // delay is 6 seconds
+
+ mockResultEndpoint.assertIsSatisfied();
+ }
+
+ /**
+ * Log new comments. Not really needed for this test, but useful for debugging.
+ */
+ public class NewCommentProcessor implements Processor {
+ @Override
+ public void process(Exchange exchange) throws Exception {
+ Message in = exchange.getIn();
+ Comment comment = (Comment) in.getBody();
+ LOG.debug("Got comment with id " + comment.getId() + " Body " + comment.getBody());
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/07b432c3/components/camel-jira/src/test/java/org/apache/camel/component/jira/IssueConsumerTest.java
----------------------------------------------------------------------
diff --git a/components/camel-jira/src/test/java/org/apache/camel/component/jira/IssueConsumerTest.java b/components/camel-jira/src/test/java/org/apache/camel/component/jira/IssueConsumerTest.java
new file mode 100644
index 0000000..57fb1f0
--- /dev/null
+++ b/components/camel-jira/src/test/java/org/apache/camel/component/jira/IssueConsumerTest.java
@@ -0,0 +1,125 @@
+/**
+ * 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.component.jira;
+
+import com.atlassian.jira.rest.client.domain.BasicIssue;
+import org.apache.camel.Exchange;
+import org.apache.camel.Message;
+import org.apache.camel.Processor;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.jira.mocks.MockJerseyJiraRestClientFactory;
+import org.apache.camel.component.jira.mocks.MockJiraRestClient;
+import org.apache.camel.component.jira.mocks.MockSearchRestClient;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.impl.JndiRegistry;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class IssueConsumerTest extends CamelTestSupport {
+ public static final Logger LOG = LoggerFactory.getLogger(IssueConsumerTest.class);
+ private static final String URL = "https://somerepo.atlassian.net";
+ private static final String USERNAME = "someguy";
+ private static final String PASSWORD = "xU3xjhay9yjEaZq";
+ private String JIRA_CREDENTIALS = URL + "&username=" + USERNAME + "&password=" + PASSWORD;
+ private static final String PROJECT = "camel-jira-component";
+ protected MockJerseyJiraRestClientFactory factory;
+
+
+ @Override
+ protected JndiRegistry createRegistry() throws Exception {
+ JndiRegistry registry = super.createRegistry();
+ factory = new MockJerseyJiraRestClientFactory();
+ registry.bind("JerseyJiraRestClientFactory", factory);
+
+ return registry;
+ }
+
+
+ @Override
+ protected RouteBuilder createRouteBuilder() throws Exception {
+ return new RouteBuilder() {
+ @Override
+ public void configure() throws Exception {
+ context.addComponent("jira", new JIRAComponent());
+ from("jira://newIssue?serverUrl=" + JIRA_CREDENTIALS + "&jql=project=" + PROJECT)
+ .process(new NewIssueProcessor())
+ .to("mock:result");
+ }
+ };
+ }
+
+
+ @Test(timeout=60*1000)
+ public void emptyAtStartupTest() throws Exception {
+ MockEndpoint mockResultEndpoint = getMockEndpoint("mock:result");
+
+ MockJiraRestClient client = (MockJiraRestClient) factory.getClient();
+ MockSearchRestClient restClient = (MockSearchRestClient) client.getSearchClient();
+ mockResultEndpoint.expectedMessageCount(0);
+ Thread.sleep(8 * 1000); // delay is 6 seconds
+
+ mockResultEndpoint.assertIsSatisfied();
+ }
+
+
+ @Test(timeout=60*1000)
+ public void singleIssueTest() throws Exception {
+ MockEndpoint mockResultEndpoint = getMockEndpoint("mock:result");
+
+ MockJiraRestClient client = (MockJiraRestClient) factory.getClient();
+ MockSearchRestClient restClient = (MockSearchRestClient) client.getSearchClient();
+ BasicIssue issue1 = restClient.addIssue();
+
+ mockResultEndpoint.expectedBodiesReceived(issue1);
+ Thread.sleep(8 * 1000); // delay is 6 seconds
+
+ mockResultEndpoint.assertIsSatisfied();
+ }
+
+
+ @Test(timeout=60*1000)
+ public void multipleIssuesTest() throws Exception {
+ MockEndpoint mockResultEndpoint = getMockEndpoint("mock:result");
+
+ MockJiraRestClient client = (MockJiraRestClient) factory.getClient();
+ MockSearchRestClient restClient = (MockSearchRestClient) client.getSearchClient();
+ BasicIssue issue1 = restClient.addIssue();
+ BasicIssue issue2 = restClient.addIssue();
+ BasicIssue issue3 = restClient.addIssue();
+
+ mockResultEndpoint.expectedBodiesReceived(issue3, issue2, issue1);
+
+ Thread.sleep(8 * 1000); // delay is 6 seconds
+
+ mockResultEndpoint.assertIsSatisfied();
+ }
+
+
+ /**
+ * Log new issues. Not really needed for this test, but useful for debugging.
+ */
+ public class NewIssueProcessor implements Processor {
+ @Override
+ public void process(Exchange exchange) throws Exception {
+ Message in = exchange.getIn();
+ BasicIssue issue = in.getBody(BasicIssue.class);
+ LOG.debug("Got issue with id " + issue.getId() + " key " + issue.getKey());
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/07b432c3/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockIssueClient.java
----------------------------------------------------------------------
diff --git a/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockIssueClient.java b/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockIssueClient.java
new file mode 100644
index 0000000..31e1f54
--- /dev/null
+++ b/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockIssueClient.java
@@ -0,0 +1,222 @@
+/**
+ * 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.component.jira.mocks;
+
+import com.atlassian.jira.rest.client.GetCreateIssueMetadataOptions;
+import com.atlassian.jira.rest.client.IssueRestClient;
+import com.atlassian.jira.rest.client.ProgressMonitor;
+import com.atlassian.jira.rest.client.domain.*;
+import com.atlassian.jira.rest.client.domain.input.AttachmentInput;
+import com.atlassian.jira.rest.client.domain.input.FieldInput;
+import com.atlassian.jira.rest.client.domain.input.IssueInput;
+import com.atlassian.jira.rest.client.domain.input.LinkIssuesInput;
+import com.atlassian.jira.rest.client.domain.input.TransitionInput;
+import com.atlassian.jira.rest.client.domain.input.WorklogInput;
+import org.codehaus.jettison.json.JSONObject;
+import org.joda.time.DateTime;
+
+import java.io.File;
+import java.io.InputStream;
+import java.net.URI;
+import java.util.Collection;
+import java.util.Set;
+
+public class MockIssueClient implements IssueRestClient {
+ private MockSearchRestClient mockSearchRestClient;
+
+ public MockIssueClient(MockSearchRestClient mockSearchRestClient) {
+ this.mockSearchRestClient = mockSearchRestClient;
+ }
+
+ @Override
+ public BasicIssue createIssue(IssueInput issue, ProgressMonitor progressMonitor) {
+ return null;
+ }
+
+ @Override
+ public Iterable<CimProject> getCreateIssueMetadata(GetCreateIssueMetadataOptions options, ProgressMonitor progressMonitor) {
+ return null;
+ }
+
+ @Override
+ public Issue getIssue(String issueKey, ProgressMonitor progressMonitor) {
+ String summary = null;
+ URI self = null;
+ BasicProject project = null;
+ BasicIssueType issueType = null;
+ BasicStatus status = null;
+
+ String description = null;
+ BasicPriority priority = null;
+ BasicResolution resolution = null;
+ Collection<Attachment> attachments = null;
+ BasicUser reporter = null;
+ BasicUser assignee = null;
+ DateTime creationDate = null;
+ DateTime updateDate = null;
+ DateTime dueDate = null;
+ Collection<Version> affectedVersions = null;
+ Collection<Version> fixVersions = null;
+ Collection<BasicComponent> components = null;
+ TimeTracking timeTracking = null;
+ Collection<Field> fields = null;
+ URI transitionsUri = null;
+ Collection<IssueLink> issueLinks = null;
+ BasicVotes votes = null;
+ Collection<Worklog> worklogs = null;
+ BasicWatchers watchers = null;
+ Iterable<String> expandos = null;
+ Collection<Subtask> subtasks = null;
+ Collection<ChangelogGroup> changelog = null;
+ Set<String> labels = null;
+ JSONObject rawObject = null;
+
+ BasicIssue basicIssue = mockSearchRestClient.getBasicIssue(issueKey);
+ Collection<Comment> comments = mockSearchRestClient.getCommentsForIssue(basicIssue.getId());
+ Issue issue = new Issue(summary, self, basicIssue.getKey(), basicIssue.getId(), project, issueType, status,
+ description, priority, resolution, attachments, reporter, assignee, creationDate, updateDate,
+ dueDate, affectedVersions, fixVersions, components, timeTracking, fields, comments,
+ transitionsUri, issueLinks,
+ votes, worklogs, watchers, expandos, subtasks, changelog, labels, rawObject);
+ return issue;
+ }
+
+ @Override
+ public Issue getIssue(String issueKey, Iterable<Expandos> expand, ProgressMonitor progressMonitor) {
+ return null;
+ }
+
+ @Override
+ public Watchers getWatchers(URI watchersUri, ProgressMonitor progressMonitor) {
+ return null;
+ }
+
+ @Override
+ public Votes getVotes(URI votesUri, ProgressMonitor progressMonitor) {
+ return null;
+ }
+
+ @Override
+ public Iterable<Transition> getTransitions(URI transitionsUri, ProgressMonitor progressMonitor) {
+ return null;
+ }
+
+ @Override
+ public Iterable<Transition> getTransitions(Issue issue, ProgressMonitor progressMonitor) {
+ return null;
+ }
+
+ @Override
+ public void transition(URI transitionsUri, TransitionInput transitionInput, ProgressMonitor progressMonitor) {
+
+ }
+
+ @Override
+ public void transition(Issue issue, TransitionInput transitionInput, ProgressMonitor progressMonitor) {
+
+ }
+
+ @Override
+ public void update(Issue issue, Iterable<FieldInput> fields, ProgressMonitor progressMonitor) {
+
+ }
+
+ @Override
+ public void removeIssue(URI issueUri, boolean deleteSubtasks, ProgressMonitor progressMonitor) {
+
+ }
+
+ @Override
+ public void removeIssue(BasicIssue issue, boolean deleteSubtasks, ProgressMonitor progressMonitor) {
+
+ }
+
+ @Override
+ public void removeIssue(Long issueId, boolean deleteSubtasks, ProgressMonitor progressMonitor) {
+
+ }
+
+ @Override
+ public void removeIssue(String issueKey, boolean deleteSubtasks, ProgressMonitor progressMonitor) {
+
+ }
+
+ @Override
+ public void vote(URI votesUri, ProgressMonitor progressMonitor) {
+
+ }
+
+ @Override
+ public void unvote(URI votesUri, ProgressMonitor progressMonitor) {
+
+ }
+
+ @Override
+ public void watch(URI watchersUri, ProgressMonitor progressMonitor) {
+
+ }
+
+ @Override
+ public void unwatch(URI watchersUri, ProgressMonitor progressMonitor) {
+
+ }
+
+ @Override
+ public void addWatcher(URI watchersUri, String username, ProgressMonitor progressMonitor) {
+
+ }
+
+ @Override
+ public void removeWatcher(URI watchersUri, String username, ProgressMonitor progressMonitor) {
+
+ }
+
+ @Override
+ public void linkIssue(LinkIssuesInput linkIssuesInput, ProgressMonitor progressMonitor) {
+
+ }
+
+ @Override
+ public void addAttachment(ProgressMonitor progressMonitor, URI attachmentsUri, InputStream in, String filename) {
+
+ }
+
+ @Override
+ public void addAttachments(ProgressMonitor progressMonitor, URI attachmentsUri, AttachmentInput... attachments) {
+
+ }
+
+ @Override
+ public void addAttachments(ProgressMonitor progressMonitor, URI attachmentsUri, File... files) {
+
+ }
+
+ @Override
+ public void addComment(ProgressMonitor progressMonitor, URI commentsUri, Comment comment) {
+
+ }
+
+ @Override
+ public InputStream getAttachment(ProgressMonitor pm, URI attachmentUri) {
+ return null;
+ }
+
+ @Override
+ public void addWorklog(URI worklogUri, WorklogInput worklogInput, ProgressMonitor progressMonitor) {
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/07b432c3/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockJerseyJiraRestClientFactory.java
----------------------------------------------------------------------
diff --git a/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockJerseyJiraRestClientFactory.java b/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockJerseyJiraRestClientFactory.java
new file mode 100644
index 0000000..6f51184
--- /dev/null
+++ b/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockJerseyJiraRestClientFactory.java
@@ -0,0 +1,35 @@
+/**
+ * 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.component.jira.mocks;
+
+import com.atlassian.jira.rest.client.JiraRestClient;
+import com.atlassian.jira.rest.client.internal.jersey.JerseyJiraRestClientFactory;
+
+import java.net.URI;
+
+public class MockJerseyJiraRestClientFactory extends JerseyJiraRestClientFactory {
+ MockJiraRestClient client = new MockJiraRestClient();
+
+ @Override
+ public JiraRestClient createWithBasicHttpAuthentication(URI serverUri, String username, String password) {
+ return client;
+ }
+
+ public MockJiraRestClient getClient() {
+ return client;
+ }
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/07b432c3/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockJiraRestClient.java
----------------------------------------------------------------------
diff --git a/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockJiraRestClient.java b/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockJiraRestClient.java
new file mode 100644
index 0000000..5ef0a3d
--- /dev/null
+++ b/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockJiraRestClient.java
@@ -0,0 +1,84 @@
+/**
+ * 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.component.jira.mocks;
+
+import com.atlassian.jira.rest.client.ComponentRestClient;
+import com.atlassian.jira.rest.client.IssueRestClient;
+import com.atlassian.jira.rest.client.JiraRestClient;
+import com.atlassian.jira.rest.client.MetadataRestClient;
+import com.atlassian.jira.rest.client.ProjectRestClient;
+import com.atlassian.jira.rest.client.ProjectRolesRestClient;
+import com.atlassian.jira.rest.client.SearchRestClient;
+import com.atlassian.jira.rest.client.SessionRestClient;
+import com.atlassian.jira.rest.client.UserRestClient;
+import com.atlassian.jira.rest.client.VersionRestClient;
+import com.sun.jersey.client.apache.ApacheHttpClient;
+
+public class MockJiraRestClient implements JiraRestClient {
+ MockSearchRestClient mockSearchRestClient = new MockSearchRestClient();
+ MockIssueClient mockIssueClient = new MockIssueClient(mockSearchRestClient);
+
+ @Override
+ public IssueRestClient getIssueClient() {
+ return mockIssueClient;
+ }
+
+ @Override
+ public SessionRestClient getSessionClient() {
+ return null;
+ }
+
+ @Override
+ public UserRestClient getUserClient() {
+ return null;
+ }
+
+ @Override
+ public ProjectRestClient getProjectClient() {
+ return null;
+ }
+
+ @Override
+ public ComponentRestClient getComponentClient() {
+ return null;
+ }
+
+ @Override
+ public MetadataRestClient getMetadataClient() {
+ return null;
+ }
+
+ @Override
+ public SearchRestClient getSearchClient() {
+ return mockSearchRestClient;
+ }
+
+ @Override
+ public VersionRestClient getVersionRestClient() {
+ return null;
+ }
+
+ @Override
+ public ProjectRolesRestClient getProjectRolesRestClient() {
+ return null;
+ }
+
+ @Override
+ public ApacheHttpClient getTransportClient() {
+ return null;
+ }
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/07b432c3/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockSearchRestClient.java
----------------------------------------------------------------------
diff --git a/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockSearchRestClient.java b/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockSearchRestClient.java
new file mode 100644
index 0000000..ba872ff
--- /dev/null
+++ b/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockSearchRestClient.java
@@ -0,0 +1,107 @@
+/**
+ * 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.component.jira.mocks;
+
+import com.atlassian.jira.rest.client.NullProgressMonitor;
+import com.atlassian.jira.rest.client.ProgressMonitor;
+import com.atlassian.jira.rest.client.SearchRestClient;
+import com.atlassian.jira.rest.client.domain.BasicIssue;
+import com.atlassian.jira.rest.client.domain.Comment;
+import com.atlassian.jira.rest.client.domain.FavouriteFilter;
+import com.atlassian.jira.rest.client.domain.SearchResult;
+import org.joda.time.DateTime;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicLong;
+
+public class MockSearchRestClient implements SearchRestClient {
+ private final List<BasicIssue> issues = new ArrayList<>();
+ private final Map<Long, List<Comment>> comments = new HashMap<>();
+ private AtomicLong basicIssueId = new AtomicLong(0);
+ private String KEY_BASE = "CAMELJIRA-";
+
+ @Override
+ public SearchResult searchJql(String s, ProgressMonitor progressMonitor) {
+ return null;
+ }
+
+ @Override
+ public SearchResult searchJql(String s, int i, int i2, ProgressMonitor progressMonitor) {
+ return null;
+ }
+
+ @Override
+ public SearchResult searchJqlWithFullIssues(String jql, int maxPerQuery, int start, ProgressMonitor progressMonitor) {
+ List<BasicIssue> result = new ArrayList<>();
+ for (BasicIssue issue : issues) {
+ if (issue.getId() >= start) {
+ result.add(issue);
+ if (result.size() >= maxPerQuery) {
+ break;
+ }
+ }
+ }
+ return new MockSearchResult(start, maxPerQuery, issues.size(), result);
+ }
+
+ @Override
+ public Iterable<FavouriteFilter> getFavouriteFilters(NullProgressMonitor nullProgressMonitor) {
+ return null;
+ }
+
+ public BasicIssue addIssue() {
+ String key = KEY_BASE + basicIssueId.get();
+ BasicIssue basicIssue = new BasicIssue(null, key, basicIssueId.getAndIncrement());
+ issues.add(basicIssue);
+ return basicIssue;
+ }
+
+ public Comment addCommentToIssue(BasicIssue issue, String commentText) {
+ // URI self, String body, @Nullable BasicUser author, @Nullable BasicUser updateAuthor, DateTime creationDate, DateTime updateDate, Visibility visibility, @Nullable Long id
+ DateTime now = new DateTime();
+ Comment comment = new Comment(null, commentText, null, null, now, null, null, issue.getId());
+ List<Comment> commentsForIssue = comments.get(issue.getId());
+ if (commentsForIssue == null) {
+ commentsForIssue = new ArrayList<Comment>();
+ }
+ commentsForIssue.add(comment);
+ comments.put(issue.getId(), commentsForIssue);
+
+ return comment;
+ }
+
+ public List<Comment> getCommentsForIssue(Long issueId) {
+ List<Comment> commentsForIssue = comments.get(issueId);
+ return comments.get(issueId);
+ }
+
+
+ public BasicIssue getBasicIssue(String key) {
+ BasicIssue emptyResponse = new BasicIssue(null, "", (long) -1);
+ for (BasicIssue bi : issues) {
+ if (bi.getKey().equals(key)) {
+ return bi;
+ }
+ }
+ return emptyResponse;
+ }
+}
+
+
http://git-wip-us.apache.org/repos/asf/camel/blob/07b432c3/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockSearchResult.java
----------------------------------------------------------------------
diff --git a/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockSearchResult.java b/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockSearchResult.java
new file mode 100644
index 0000000..a54b1e1
--- /dev/null
+++ b/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockSearchResult.java
@@ -0,0 +1,66 @@
+/**
+ * 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.component.jira.mocks;
+
+import com.atlassian.jira.rest.client.domain.BasicIssue;
+import com.atlassian.jira.rest.client.domain.SearchResult;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+
+public class MockSearchResult extends SearchResult {
+ private ArrayList<? extends BasicIssue> issues;
+ private BasicIssueComparator basicIssueComparator = new BasicIssueComparator();
+
+
+ public MockSearchResult(int startIndex, int maxResults, int total, java.lang.Iterable<? extends BasicIssue> issues) {
+ super(startIndex, maxResults, total, issues);
+ this.issues = (ArrayList<? extends BasicIssue>) issues;
+ }
+
+
+ @Override
+ public int getTotal() {
+ return issues.size();
+ }
+
+
+ @Override
+ public Iterable<? extends BasicIssue> getIssues() {
+ Collections.sort(issues, basicIssueComparator);
+ ArrayList<? extends BasicIssue> copy = new ArrayList<>(issues);
+ if (!issues.isEmpty()) {
+ issues.remove(0);
+ }
+ return copy;
+ }
+
+
+ public class BasicIssueComparator implements Comparator<BasicIssue> {
+ @Override
+ public int compare(BasicIssue issue1, BasicIssue issue2) {
+ if (issue1.getId() < issue2.getId()) {
+ return 1;
+ } else if (issue1.getId() == issue2.getId()) {
+ return 0;
+ } else {
+ return -1;
+ }
+ }
+ }
+}
[2/2] git commit: CAMEL-7919 Clean up code and fix some CS issues.
Posted by ni...@apache.org.
CAMEL-7919 Clean up code and fix some CS issues.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/007403ac
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/007403ac
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/007403ac
Branch: refs/heads/master
Commit: 007403ac45b36b16b6dfd977f1960e9b4e5793b7
Parents: 07b432c
Author: Willem Jiang <wi...@gmail.com>
Authored: Fri Oct 24 20:34:25 2014 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Fri Oct 24 20:34:25 2014 +0800
----------------------------------------------------------------------
.../camel/component/jira/JIRAEndpoint.java | 10 +++++++++
.../jira/consumer/AbstractJIRAConsumer.java | 6 ++---
.../component/jira/CommentConsumerTest.java | 23 ++++++++++----------
.../camel/component/jira/IssueConsumerTest.java | 21 ++++++------------
.../jira/mocks/MockSearchRestClient.java | 15 +++++++------
5 files changed, 39 insertions(+), 36 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/007403ac/components/camel-jira/src/main/java/org/apache/camel/component/jira/JIRAEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-jira/src/main/java/org/apache/camel/component/jira/JIRAEndpoint.java b/components/camel-jira/src/main/java/org/apache/camel/component/jira/JIRAEndpoint.java
index dd8e8bf..3ea31c8 100644
--- a/components/camel-jira/src/main/java/org/apache/camel/component/jira/JIRAEndpoint.java
+++ b/components/camel-jira/src/main/java/org/apache/camel/component/jira/JIRAEndpoint.java
@@ -57,6 +57,8 @@ public class JIRAEndpoint extends DefaultEndpoint {
private String password;
@UriParam
private String jql;
+ @UriParam
+ private int delay = 6000;
public JIRAEndpoint(String uri, JIRAComponent component) {
super(uri, component);
@@ -143,4 +145,12 @@ public class JIRAEndpoint extends DefaultEndpoint {
public void setJql(String jql) {
this.jql = jql;
}
+
+ public int getDelay() {
+ return delay;
+ }
+
+ public void setDelay(int delay) {
+ this.delay = delay;
+ }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/007403ac/components/camel-jira/src/main/java/org/apache/camel/component/jira/consumer/AbstractJIRAConsumer.java
----------------------------------------------------------------------
diff --git a/components/camel-jira/src/main/java/org/apache/camel/component/jira/consumer/AbstractJIRAConsumer.java b/components/camel-jira/src/main/java/org/apache/camel/component/jira/consumer/AbstractJIRAConsumer.java
index 2ee7bc4..3efd06f 100644
--- a/components/camel-jira/src/main/java/org/apache/camel/component/jira/consumer/AbstractJIRAConsumer.java
+++ b/components/camel-jira/src/main/java/org/apache/camel/component/jira/consumer/AbstractJIRAConsumer.java
@@ -46,8 +46,8 @@ public abstract class AbstractJIRAConsumer extends ScheduledPollConsumer {
super(endpoint, processor);
this.endpoint = endpoint;
- // Use a more reasonable default.
- setDelay(6000);
+ // support to set the delay from JIRA Endpoint
+ setDelay(endpoint.getDelay());
JerseyJiraRestClientFactory factory;
Registry registry = endpoint.getCamelContext().getRegistry();
@@ -76,7 +76,7 @@ public abstract class AbstractJIRAConsumer extends ScheduledPollConsumer {
List<BasicIssue> issues = new ArrayList<BasicIssue>();
while (true) {
SearchRestClient searchRestClient = client.getSearchClient();
- SearchResult searchResult = searchRestClient.searchJqlWithFullIssues(jql, maxPerQuery,start, null);
+ SearchResult searchResult = searchRestClient.searchJqlWithFullIssues(jql, maxPerQuery, start, null);
for (BasicIssue issue : searchResult.getIssues()) {
issues.add(issue);
http://git-wip-us.apache.org/repos/asf/camel/blob/007403ac/components/camel-jira/src/test/java/org/apache/camel/component/jira/CommentConsumerTest.java
----------------------------------------------------------------------
diff --git a/components/camel-jira/src/test/java/org/apache/camel/component/jira/CommentConsumerTest.java b/components/camel-jira/src/test/java/org/apache/camel/component/jira/CommentConsumerTest.java
index e70b083..e852ae3 100644
--- a/components/camel-jira/src/test/java/org/apache/camel/component/jira/CommentConsumerTest.java
+++ b/components/camel-jira/src/test/java/org/apache/camel/component/jira/CommentConsumerTest.java
@@ -16,6 +16,8 @@
*/
package org.apache.camel.component.jira;
+import java.util.Date;
+
import com.atlassian.jira.rest.client.domain.BasicIssue;
import com.atlassian.jira.rest.client.domain.Comment;
import org.apache.camel.Exchange;
@@ -32,15 +34,15 @@ import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.Date;
-
public class CommentConsumerTest extends CamelTestSupport {
public static final Logger LOG = LoggerFactory.getLogger(CommentConsumerTest.class);
private static final String URL = "https://somerepo.atlassian.net";
private static final String USERNAME = "someguy";
private static final String PASSWORD = "xU3xjhay9yjEaZq";
- private String JIRA_CREDENTIALS = URL + "&username=" + USERNAME + "&password=" + PASSWORD;
+ private static final String JIRA_CREDENTIALS = URL + "&username=" + USERNAME + "&password=" + PASSWORD;
protected MockJerseyJiraRestClientFactory factory;
+
+
@Override
@@ -59,26 +61,24 @@ public class CommentConsumerTest extends CamelTestSupport {
@Override
public void configure() throws Exception {
from("jira://newComment?serverUrl=" + JIRA_CREDENTIALS
- + "&jql=RAW(project=CAMELJIRA)")
+ + "&jql=RAW(project=CAMELJIRA)" + "&delay=500")
.process(new NewCommentProcessor())
.to("mock:result");
}
};
}
-
-
- @Test(timeout=60*1000)
+
+ @Test
public void emptyAtStartupTest() throws Exception {
MockEndpoint mockResultEndpoint = getMockEndpoint("mock:result");
mockResultEndpoint.expectedMessageCount(0);
- Thread.sleep(8 * 1000); // delay is 6 seconds
-
+
mockResultEndpoint.assertIsSatisfied();
}
- @Test(timeout=60*1000)
+ @Test
public void singleIssueTest() throws Exception {
MockEndpoint mockResultEndpoint = getMockEndpoint("mock:result");
@@ -89,7 +89,7 @@ public class CommentConsumerTest extends CamelTestSupport {
Comment comment1 = searchRestClient.addCommentToIssue(issue1, commentText);
mockResultEndpoint.expectedBodiesReceived(comment1);
- Thread.sleep(8 * 1000); // delay is 6 seconds
+
mockResultEndpoint.assertIsSatisfied();
}
@@ -107,7 +107,6 @@ public class CommentConsumerTest extends CamelTestSupport {
Comment comment2 = searchRestClient.addCommentToIssue(issue2, "Comment added at " + new Date());
mockResultEndpoint.expectedBodiesReceivedInAnyOrder(comment1, comment2);
- Thread.sleep(8 * 1000); // delay is 6 seconds
mockResultEndpoint.assertIsSatisfied();
}
http://git-wip-us.apache.org/repos/asf/camel/blob/007403ac/components/camel-jira/src/test/java/org/apache/camel/component/jira/IssueConsumerTest.java
----------------------------------------------------------------------
diff --git a/components/camel-jira/src/test/java/org/apache/camel/component/jira/IssueConsumerTest.java b/components/camel-jira/src/test/java/org/apache/camel/component/jira/IssueConsumerTest.java
index 57fb1f0..e2195c5 100644
--- a/components/camel-jira/src/test/java/org/apache/camel/component/jira/IssueConsumerTest.java
+++ b/components/camel-jira/src/test/java/org/apache/camel/component/jira/IssueConsumerTest.java
@@ -36,7 +36,7 @@ public class IssueConsumerTest extends CamelTestSupport {
private static final String URL = "https://somerepo.atlassian.net";
private static final String USERNAME = "someguy";
private static final String PASSWORD = "xU3xjhay9yjEaZq";
- private String JIRA_CREDENTIALS = URL + "&username=" + USERNAME + "&password=" + PASSWORD;
+ private static final String JIRA_CREDENTIALS = URL + "&username=" + USERNAME + "&password=" + PASSWORD;
private static final String PROJECT = "camel-jira-component";
protected MockJerseyJiraRestClientFactory factory;
@@ -57,28 +57,24 @@ public class IssueConsumerTest extends CamelTestSupport {
@Override
public void configure() throws Exception {
context.addComponent("jira", new JIRAComponent());
- from("jira://newIssue?serverUrl=" + JIRA_CREDENTIALS + "&jql=project=" + PROJECT)
+ from("jira://newIssue?serverUrl=" + JIRA_CREDENTIALS + "&jql=project=" + PROJECT + "&delay=500")
.process(new NewIssueProcessor())
.to("mock:result");
}
};
}
-
- @Test(timeout=60*1000)
+ @Test
public void emptyAtStartupTest() throws Exception {
MockEndpoint mockResultEndpoint = getMockEndpoint("mock:result");
-
- MockJiraRestClient client = (MockJiraRestClient) factory.getClient();
- MockSearchRestClient restClient = (MockSearchRestClient) client.getSearchClient();
+
mockResultEndpoint.expectedMessageCount(0);
- Thread.sleep(8 * 1000); // delay is 6 seconds
mockResultEndpoint.assertIsSatisfied();
}
- @Test(timeout=60*1000)
+ @Test
public void singleIssueTest() throws Exception {
MockEndpoint mockResultEndpoint = getMockEndpoint("mock:result");
@@ -87,13 +83,12 @@ public class IssueConsumerTest extends CamelTestSupport {
BasicIssue issue1 = restClient.addIssue();
mockResultEndpoint.expectedBodiesReceived(issue1);
- Thread.sleep(8 * 1000); // delay is 6 seconds
-
+
mockResultEndpoint.assertIsSatisfied();
}
- @Test(timeout=60*1000)
+ @Test
public void multipleIssuesTest() throws Exception {
MockEndpoint mockResultEndpoint = getMockEndpoint("mock:result");
@@ -105,8 +100,6 @@ public class IssueConsumerTest extends CamelTestSupport {
mockResultEndpoint.expectedBodiesReceived(issue3, issue2, issue1);
- Thread.sleep(8 * 1000); // delay is 6 seconds
-
mockResultEndpoint.assertIsSatisfied();
}
http://git-wip-us.apache.org/repos/asf/camel/blob/007403ac/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockSearchRestClient.java
----------------------------------------------------------------------
diff --git a/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockSearchRestClient.java b/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockSearchRestClient.java
index ba872ff..8eb5463 100644
--- a/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockSearchRestClient.java
+++ b/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockSearchRestClient.java
@@ -16,6 +16,12 @@
*/
package org.apache.camel.component.jira.mocks;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicLong;
+
import com.atlassian.jira.rest.client.NullProgressMonitor;
import com.atlassian.jira.rest.client.ProgressMonitor;
import com.atlassian.jira.rest.client.SearchRestClient;
@@ -25,17 +31,13 @@ import com.atlassian.jira.rest.client.domain.FavouriteFilter;
import com.atlassian.jira.rest.client.domain.SearchResult;
import org.joda.time.DateTime;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.atomic.AtomicLong;
public class MockSearchRestClient implements SearchRestClient {
+ private static final String KEY_BASE = "CAMELJIRA-";
private final List<BasicIssue> issues = new ArrayList<>();
private final Map<Long, List<Comment>> comments = new HashMap<>();
private AtomicLong basicIssueId = new AtomicLong(0);
- private String KEY_BASE = "CAMELJIRA-";
+
@Override
public SearchResult searchJql(String s, ProgressMonitor progressMonitor) {
@@ -88,7 +90,6 @@ public class MockSearchRestClient implements SearchRestClient {
}
public List<Comment> getCommentsForIssue(Long issueId) {
- List<Comment> commentsForIssue = comments.get(issueId);
return comments.get(issueId);
}