From 295e46731e7589ffd54c64b08e8b1f683e92102c Mon Sep 17 00:00:00 2001
From: Benjamin Broadaway <4554569+benbroadaway@users.noreply.github.com>
Date: Wed, 19 Jun 2024 19:49:09 -0500
Subject: [PATCH 1/3] jira: enable tests
---
tasks/jira/pom.xml | 40 ++-
.../concord/plugins/jira/Constants.java | 33 ++
.../concord/plugins/jira/JiraClient.java | 109 +++---
.../concord/plugins/jira/JiraClientCfg.java | 27 ++
.../concord/plugins/jira/JiraCredentials.java | 6 +
.../concord/plugins/jira/JiraHttpClient.java | 63 ++++
.../plugins/jira/JiraHttpClientFactory.java | 50 +++
.../concord/plugins/jira/JiraTask.java | 50 ++-
.../concord/plugins/jira/JiraTaskCommon.java | 84 ++---
.../plugins/jira/NativeJiraHttpClient.java | 178 ++++++++++
.../concord/plugins/jira/TaskParams.java | 29 +-
.../concord/plugins/jira/v2/JiraTaskV2.java | 27 +-
.../plugins/jira/AbstractWiremockTest.java | 264 +++++++++++++++
.../concord/plugins/jira/CommonTest.java | 316 ++++++++++++++++++
.../concord/plugins/jira/JiraClientTest.java | 30 ++
.../concord/plugins/jira/JiraTaskTest.java | 210 +++---------
.../jira/NativeJiraHttpClientTest.java | 30 ++
.../concord/plugins/jira/TaskParamsTest.java | 63 ++++
.../plugins/jira/v2/JiraTaskV2Test.java | 102 ++++++
19 files changed, 1423 insertions(+), 288 deletions(-)
create mode 100644 tasks/jira/src/main/java/com/walmartlabs/concord/plugins/jira/Constants.java
create mode 100644 tasks/jira/src/main/java/com/walmartlabs/concord/plugins/jira/JiraHttpClient.java
create mode 100644 tasks/jira/src/main/java/com/walmartlabs/concord/plugins/jira/JiraHttpClientFactory.java
create mode 100644 tasks/jira/src/main/java/com/walmartlabs/concord/plugins/jira/NativeJiraHttpClient.java
create mode 100644 tasks/jira/src/test/java/com/walmartlabs/concord/plugins/jira/AbstractWiremockTest.java
create mode 100644 tasks/jira/src/test/java/com/walmartlabs/concord/plugins/jira/CommonTest.java
create mode 100644 tasks/jira/src/test/java/com/walmartlabs/concord/plugins/jira/JiraClientTest.java
create mode 100644 tasks/jira/src/test/java/com/walmartlabs/concord/plugins/jira/NativeJiraHttpClientTest.java
create mode 100644 tasks/jira/src/test/java/com/walmartlabs/concord/plugins/jira/TaskParamsTest.java
create mode 100644 tasks/jira/src/test/java/com/walmartlabs/concord/plugins/jira/v2/JiraTaskV2Test.java
diff --git a/tasks/jira/pom.xml b/tasks/jira/pom.xml
index 37dad46b..e906b6a5 100644
--- a/tasks/jira/pom.xml
+++ b/tasks/jira/pom.xml
@@ -13,7 +13,7 @@
takari-jar
- true
+ false
@@ -32,6 +32,11 @@
concord-common
provided
+
+ com.walmartlabs.concord
+ concord-client2
+ provided
+
javax.inject
javax.inject
@@ -43,10 +48,31 @@
provided
- com.google.code.gson
- gson
- ${gson.version}
+ com.fasterxml.jackson.core
+ jackson-databind
+ provided
+
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+ provided
+
+
+ com.fasterxml.jackson.core
+ jackson-core
+ provided
+
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-jdk8
+ provided
+
+ com.google.code.findbugs
+ jsr305
+ provided
+
+
com.squareup.okhttp
okhttp
@@ -68,6 +94,12 @@
mockito-core
test
+
+ org.mockito
+ mockito-junit-jupiter
+ 4.9.0
+ test
+
diff --git a/tasks/jira/src/main/java/com/walmartlabs/concord/plugins/jira/Constants.java b/tasks/jira/src/main/java/com/walmartlabs/concord/plugins/jira/Constants.java
new file mode 100644
index 00000000..1ccd42c7
--- /dev/null
+++ b/tasks/jira/src/main/java/com/walmartlabs/concord/plugins/jira/Constants.java
@@ -0,0 +1,33 @@
+package com.walmartlabs.concord.plugins.jira;
+
+/*-
+ * *****
+ * Concord
+ * -----
+ * Copyright (C) 2017 - 2024 Walmart Inc., Concord Authors
+ * -----
+ * Licensed 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.
+ * =====
+ */
+
+import java.util.UUID;
+
+public class Constants {
+
+ private Constants() {
+ throw new IllegalStateException("instantiation is not allowed");
+ }
+
+ static final String BOUNDARY = UUID.randomUUID().toString();
+
+}
diff --git a/tasks/jira/src/main/java/com/walmartlabs/concord/plugins/jira/JiraClient.java b/tasks/jira/src/main/java/com/walmartlabs/concord/plugins/jira/JiraClient.java
index 1c7f4f35..1a8bf84d 100644
--- a/tasks/jira/src/main/java/com/walmartlabs/concord/plugins/jira/JiraClient.java
+++ b/tasks/jira/src/main/java/com/walmartlabs/concord/plugins/jira/JiraClient.java
@@ -20,31 +20,39 @@
* =====
*/
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.google.gson.reflect.TypeToken;
-import com.squareup.okhttp.*;
+import com.fasterxml.jackson.databind.JavaType;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
+import com.squareup.okhttp.Call;
+import com.squareup.okhttp.MediaType;
+import com.squareup.okhttp.MultipartBuilder;
+import com.squareup.okhttp.OkHttpClient;
+import com.squareup.okhttp.Request;
+import com.squareup.okhttp.RequestBody;
+import com.squareup.okhttp.Response;
+import com.squareup.okhttp.ResponseBody;
import java.io.File;
import java.io.IOException;
-import java.lang.reflect.Type;
+import java.net.URI;
import java.nio.file.Files;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
-public class JiraClient {
+public class JiraClient implements JiraHttpClient {
- private static final OkHttpClient client = new OkHttpClient();
- private static final Gson gson = new GsonBuilder().create();
-
- private static final TypeToken