Skip to content

Commit 4adadd8

Browse files
authored
Merge pull request #115 from reportportal/EPMRPP-112181-fix
EPMRPP-112181 labels mapping
2 parents 9f8e525 + e4fd6a9 commit 4adadd8

File tree

12 files changed

+713
-298
lines changed

12 files changed

+713
-298
lines changed

build.gradle

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@ plugins {
22
id 'io.spring.dependency-management' version '1.1.7'
33
id 'java'
44
id 'jacoco'
5-
id "com.github.node-gradle.node" version "2.2.1"
5+
id "com.github.node-gradle.node" version "7.1.0"
66
id "org.openapi.generator" version "7.16.0"
7-
id "org.springframework.boot" version "3.4.2" apply false
7+
id "org.springframework.boot" version "${springBootVersion}" apply false
8+
id 'com.gradleup.shadow' version '9.3.1'
89
}
910

1011
import org.openapitools.generator.gradle.plugin.tasks.GenerateTask
@@ -19,11 +20,9 @@ apply from: scriptsUrl + '/release-fat.gradle'
1920
apply from: scriptsUrl + '/signing.gradle'
2021

2122
repositories {
22-
mavenCentral { url "https://repo1.maven.org/maven2" }
23-
maven { url "https://packages.atlassian.com/maven/repository/public" }
24-
23+
mavenCentral { url = "https://repo1.maven.org/maven2" }
2524
if (!releaseMode) {
26-
maven { url 'https://jitpack.io' }
25+
maven { url = 'https://jitpack.io' }
2726
}
2827
}
2928

@@ -59,15 +58,16 @@ dependencies {
5958
testAnnotationProcessor "org.projectlombok:lombok:${lombokVersion}"
6059

6160
testImplementation('org.junit.jupiter:junit-jupiter:5.11.4')
62-
testImplementation "org.mockito:mockito-junit-jupiter:5.14.2"
61+
testImplementation "org.mockito:mockito-junit-jupiter:5.21.0"
62+
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
6363

6464
}
6565

6666
sourceSets {
6767
main {
6868
java {
69-
srcDirs "$buildDir/generated/src/main/java"
70-
exclude("$buildDir/generated/src/main/java/com/epam/reportportal/api/jira/MyselfApi.java")
69+
srcDirs layout.buildDirectory.dir("generated/src/main/java").get().asFile.path
70+
exclude("${layout.buildDirectory.dir("generated/src/main/java").get().asFile.path}/com/epam/reportportal/api/jira/MyselfApi.java")
7171
}
7272
}
7373
}
@@ -76,7 +76,7 @@ sourceSets {
7676
tasks.register('generateJiraApi', GenerateTask) {
7777
generatorName.set("java")
7878
inputSpec.set("$rootDir/src/main/resources/openapi/swagger-v3.v3.json")
79-
outputDir.set("$buildDir/generated")
79+
outputDir.set(layout.buildDirectory.dir("generated").get().asFile.path)
8080
configFile.set("$rootDir/src/main/resources/openapi/config.json")
8181
ignoreFileOverride = "${projectDir.path}/.openapi-generator-ignore"
8282
skipOverwrite.set(true)
@@ -93,9 +93,7 @@ test {
9393

9494
build.dependsOn jacocoTestReport
9595

96-
artifacts {
97-
archives shadowJar
98-
}
96+
assemble.dependsOn shadowJar
9997

10098
sourceSets {
10199
main {
@@ -135,7 +133,7 @@ shadowJar {
135133
into("/resources")
136134
}
137135
configurations = [project.configurations.compileClasspath]
138-
zip64 true
136+
zip64 = true
139137
dependencies {
140138
include(dependency("jakarta.ws.rs:jakarta.ws.rs-api:.*"))
141139
include(dependency("org.apache.tomcat:tomcat-annotations-api:.*"))

gradle.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
version=5.13.7
1+
version=5.13.8
22
description=EPAM Report Portal. Cloud Jira plugin
33
pluginId = JIRA Cloud
44

5-
springBootVersion=3.4.2
5+
springBootVersion=3.4.12
66
lombokVersion=1.18.36

gradle/wrapper/gradle-wrapper.jar

2.53 KB
Binary file not shown.

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

project-properties.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ project.ext {
77
publishRepo = "https://maven.pkg.github.com/reportportal/plugin-bts-jira-cloud"
88
dependencyRepos = ["plugin-api", "commons-bom"]
99
releaseMode = project.hasProperty("releaseMode")
10-
pluginsDir = "$buildDir/plugins"
10+
pluginsDir = layout.buildDirectory.dir("plugins").get().asFile.path
1111
}

src/main/java/com/epam/reportportal/extension/jira/command/utils/JIRATicketUtils.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,8 @@ public static IssueUpdateDetails toIssueInput(JiraRestClient client, Project jir
9999

100100
ProjectIssueCreateMetadata project = issueCreateMetadata.getProjects().get(0);
101101
BusinessRule.expect(project, Predicates.notNull())
102-
.verify(ErrorType.UNABLE_INTERACT_WITH_INTEGRATION, String.format("Project %s not found", jiraProject.getKey()));
102+
.verify(ErrorType.UNABLE_INTERACT_WITH_INTEGRATION,
103+
String.format("Project %s not found", jiraProject.getKey()));
103104

104105
List<IssueTypeIssueCreateMetadata> cimIssueType = project.getIssuetypes();
105106

@@ -117,7 +118,8 @@ public static IssueUpdateDetails toIssueInput(JiraRestClient client, Project jir
117118

118119
// Skip issuetype and project fields cause got them in
119120
// issueInputBuilder already
120-
if (one.getId().equalsIgnoreCase(IssueField.ISSUE_TYPE_FIELD.value) || one.getId().equalsIgnoreCase(IssueField.PROJECT_FIELD.value)) {
121+
if (one.getId().equalsIgnoreCase(IssueField.ISSUE_TYPE_FIELD.value)
122+
|| one.getId().equalsIgnoreCase(IssueField.PROJECT_FIELD.value)) {
121123
continue;
122124
}
123125

@@ -182,9 +184,7 @@ public static IssueUpdateDetails toIssueInput(JiraRestClient client, Project jir
182184
}
183185
} else {
184186
if (one.getFieldType().equalsIgnoreCase(IssueFieldType.ARRAY.getName())) {
185-
List<Object> arrayOfValues = new ArrayList<>();
186-
one.getValue().forEach(value -> arrayOfValues.add(Map.entry("value", value)));
187-
issueUpdateDetails.putFieldsItem(one.getId(), arrayOfValues);
187+
issueUpdateDetails.putFieldsItem(one.getId(), one.getValue());
188188
} else if (one.getFieldType().equalsIgnoreCase(IssueFieldType.NUMBER.getName())) {
189189
issueUpdateDetails.putFieldsItem(one.getId(), Long.valueOf(one.getValue().get(0)));
190190
} else if (one.getFieldType().equalsIgnoreCase(IssueFieldType.USER.getName())) {

src/test/java/com/epam/reportportal/extension/jira/command/GetIssueFieldsCommandTest.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,32 +21,36 @@
2121
import static com.epam.reportportal.extension.jira.command.utils.CloudJiraProperties.URL;
2222
import static org.junit.jupiter.api.Assertions.assertFalse;
2323

24+
import com.epam.reportportal.extension.jira.utils.SampleData.WorkType;
2425
import com.epam.reportportal.model.externalsystem.PostFormField;
26+
import com.fasterxml.jackson.core.JsonProcessingException;
27+
import com.fasterxml.jackson.databind.ObjectMapper;
2528
import java.util.HashMap;
2629
import java.util.List;
2730
import java.util.Map;
31+
import lombok.extern.slf4j.Slf4j;
2832
import org.junit.jupiter.params.ParameterizedTest;
29-
import org.junit.jupiter.params.provider.CsvSource;
33+
import org.junit.jupiter.params.provider.EnumSource;
3034

35+
@Slf4j
3136
class GetIssueFieldsCommandTest extends BaseCommandTest {
3237

3338
@ParameterizedTest
34-
@CsvSource(value = {
35-
"Epic"
36-
})
37-
void getIssueFields(String issueType) {
39+
@EnumSource(value = WorkType.class)
40+
void getIssueFields(WorkType workType) throws JsonProcessingException {
3841
if (disabled()) {
3942
return;
4043
}
4144

4245
Map<String, Object> params = new HashMap<>(JIRA_COMMAND_PARAMS);
4346
params.put(PROJECT.getName(), PROJECT.getParam(INTEGRATION.getParams()));
4447
params.put(URL.getName(), URL.getParam(INTEGRATION.getParams()));
45-
params.put(ISSUE_TYPE, issueType);
48+
params.put(ISSUE_TYPE, workType.name());
4649

4750
var command = new GetIssueFieldsCommand(projectRepository, cloudJiraClientProvider);
4851
List<PostFormField> response = command.invokeCommand(INTEGRATION, params);
4952

53+
log.info(new ObjectMapper().writerWithDefaultPrettyPrinter().writeValueAsString(response));
5054
assertFalse(response.isEmpty());
5155
}
5256
}

src/test/java/com/epam/reportportal/extension/jira/command/PostTicketCommandTest.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import static com.epam.reportportal.extension.jira.command.GetIssueFieldsCommand.ISSUE_TYPE;
2020
import static com.epam.reportportal.extension.jira.command.utils.CloudJiraProperties.PROJECT;
2121
import static com.epam.reportportal.extension.jira.command.utils.CloudJiraProperties.URL;
22-
import static com.epam.reportportal.extension.jira.utils.SampleData.BUG;
22+
import static com.epam.reportportal.extension.jira.utils.SampleData.getSample;
2323
import static org.junit.jupiter.api.Assertions.assertNotNull;
2424
import static org.mockito.ArgumentMatchers.any;
2525
import static org.mockito.ArgumentMatchers.anyInt;
@@ -29,6 +29,7 @@
2929
import static org.mockito.Mockito.when;
3030

3131
import com.epam.reportportal.extension.jira.command.utils.JIRATicketDescriptionService;
32+
import com.epam.reportportal.extension.jira.utils.SampleData.WorkType;
3233
import com.epam.reportportal.extension.util.RequestEntityConverter;
3334
import com.epam.reportportal.model.externalsystem.PostTicketRQ;
3435
import com.epam.reportportal.model.externalsystem.Ticket;
@@ -43,7 +44,7 @@
4344
import java.util.Optional;
4445
import lombok.extern.slf4j.Slf4j;
4546
import org.junit.jupiter.params.ParameterizedTest;
46-
import org.junit.jupiter.params.provider.CsvSource;
47+
import org.junit.jupiter.params.provider.EnumSource;
4748
import org.mockito.Mock;
4849
import org.springframework.boot.web.client.RestTemplateBuilder;
4950
import org.springframework.web.client.RestTemplate;
@@ -62,23 +63,21 @@ class PostTicketCommandTest extends BaseCommandTest {
6263
LogRepository logRepository;
6364

6465
@ParameterizedTest
65-
@CsvSource(value = {
66-
"Story"
67-
})
68-
void postTicketCommand(String issueType) throws JsonProcessingException {
66+
@EnumSource(WorkType.class)
67+
void postTicketCommand(WorkType issueType) throws JsonProcessingException {
6968
if (disabled()) {
7069
return;
7170
}
7271
TestItem testItem = new TestItem();
7372
when(itemRepository.findById(anyLong())).thenReturn(Optional.of(testItem));
7473

75-
PostTicketRQ entity = objectMapper.readValue(BUG, PostTicketRQ.class);
74+
PostTicketRQ postTicketRQ = objectMapper.readValue(getSample(issueType), PostTicketRQ.class);
7675

7776
Map<String, Object> params = new HashMap<>(JIRA_COMMAND_PARAMS);
7877
params.put(PROJECT.getName(), PROJECT.getParam(INTEGRATION.getParams()));
7978
params.put(URL.getName(), URL.getParam(INTEGRATION.getParams()));
8079
params.put(ISSUE_TYPE, issueType);
81-
params.put("entity", entity);
80+
params.put("entity", postTicketRQ);
8281

8382
lenient().when(dataStoreService.load(anyString()))
8483
.thenReturn(Optional.of(getClass().getClassLoader().getResourceAsStream("attachment.txt")));

0 commit comments

Comments
 (0)