PageRenderTime 23ms CodeModel.GetById 0ms RepoModel.GetById 0ms app.codeStats 0ms

/components/camel-jira/src/test/java/org/apache/camel/component/jira/mocks/MockSearchRestClient.java

https://gitlab.com/matticala/apache-camel
Java | 108 lines | 74 code | 17 blank | 17 comment | 7 complexity | fb8ac137cf73d2e62963145456b2dbab MD5 | raw file
  1. /**
  2. * Licensed to the Apache Software Foundation (ASF) under one or more
  3. * contributor license agreements. See the NOTICE file distributed with
  4. * this work for additional information regarding copyright ownership.
  5. * The ASF licenses this file to You under the Apache License, Version 2.0
  6. * (the "License"); you may not use this file except in compliance with
  7. * the License. You may obtain a copy of the License at
  8. *
  9. * http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS,
  13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. * See the License for the specific language governing permissions and
  15. * limitations under the License.
  16. */
  17. package org.apache.camel.component.jira.mocks;
  18. import java.util.ArrayList;
  19. import java.util.HashMap;
  20. import java.util.List;
  21. import java.util.Map;
  22. import java.util.concurrent.atomic.AtomicLong;
  23. import com.atlassian.jira.rest.client.NullProgressMonitor;
  24. import com.atlassian.jira.rest.client.ProgressMonitor;
  25. import com.atlassian.jira.rest.client.SearchRestClient;
  26. import com.atlassian.jira.rest.client.domain.BasicIssue;
  27. import com.atlassian.jira.rest.client.domain.Comment;
  28. import com.atlassian.jira.rest.client.domain.FavouriteFilter;
  29. import com.atlassian.jira.rest.client.domain.SearchResult;
  30. import org.joda.time.DateTime;
  31. public class MockSearchRestClient implements SearchRestClient {
  32. private static final String KEY_BASE = "CAMELJIRA-";
  33. private final List<BasicIssue> issues = new ArrayList<>();
  34. private final Map<Long, List<Comment>> comments = new HashMap<>();
  35. private AtomicLong basicIssueId = new AtomicLong(0);
  36. @Override
  37. public SearchResult searchJql(String s, ProgressMonitor progressMonitor) {
  38. return null;
  39. }
  40. @Override
  41. public SearchResult searchJql(String s, int i, int i2, ProgressMonitor progressMonitor) {
  42. return null;
  43. }
  44. @Override
  45. public SearchResult searchJqlWithFullIssues(String jql, int maxPerQuery, int start, ProgressMonitor progressMonitor) {
  46. List<BasicIssue> result = new ArrayList<>();
  47. for (BasicIssue issue : issues) {
  48. if (issue.getId() >= start) {
  49. result.add(issue);
  50. if (result.size() >= maxPerQuery) {
  51. break;
  52. }
  53. }
  54. }
  55. return new MockSearchResult(start, maxPerQuery, issues.size(), result);
  56. }
  57. @Override
  58. public Iterable<FavouriteFilter> getFavouriteFilters(NullProgressMonitor nullProgressMonitor) {
  59. return null;
  60. }
  61. public BasicIssue addIssue() {
  62. String key = KEY_BASE + basicIssueId.get();
  63. BasicIssue basicIssue = new BasicIssue(null, key, basicIssueId.getAndIncrement());
  64. issues.add(basicIssue);
  65. return basicIssue;
  66. }
  67. public Comment addCommentToIssue(BasicIssue issue, String commentText) {
  68. // URI self, String body, @Nullable BasicUser author, @Nullable BasicUser updateAuthor, DateTime creationDate, DateTime updateDate, Visibility visibility, @Nullable Long id
  69. DateTime now = new DateTime();
  70. Comment comment = new Comment(null, commentText, null, null, now, null, null, issue.getId());
  71. List<Comment> commentsForIssue = comments.get(issue.getId());
  72. if (commentsForIssue == null) {
  73. commentsForIssue = new ArrayList<>();
  74. }
  75. commentsForIssue.add(comment);
  76. comments.put(issue.getId(), commentsForIssue);
  77. return comment;
  78. }
  79. public List<Comment> getCommentsForIssue(Long issueId) {
  80. return comments.get(issueId);
  81. }
  82. public BasicIssue getBasicIssue(String key) {
  83. BasicIssue emptyResponse = new BasicIssue(null, "", (long) -1);
  84. for (BasicIssue bi : issues) {
  85. if (bi.getKey().equals(key)) {
  86. return bi;
  87. }
  88. }
  89. return emptyResponse;
  90. }
  91. }