/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockSearchRestClient.java
Java | 108 lines | 74 code | 17 blank | 17 comment | 7 complexity | fb8ac137cf73d2e62963145456b2dbab MD5 | raw file
- /**
- * 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 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;
- 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;
- 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);
- @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<>();
- }
- commentsForIssue.add(comment);
- comments.put(issue.getId(), commentsForIssue);
- return comment;
- }
- public List<Comment> getCommentsForIssue(Long 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;
- }
- }