Skip to content

Commit 2e7973a

Browse files
committed
Add (failing) test
Signed-off-by: Jannik Hollenbach <jannik.hollenbach@iteratec.com>
1 parent e4df6a9 commit 2e7973a

File tree

3 files changed

+149
-1
lines changed

3 files changed

+149
-1
lines changed

.github/workflows/test.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# This workflow will test a Java project with Gradle
2+
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
3+
4+
name: Publish to Maven Central
5+
6+
on:
7+
release:
8+
types: [published]
9+
10+
jobs:
11+
build:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/checkout@v2
15+
- name: Set up JDK 1.11
16+
uses: actions/setup-java@v1
17+
with:
18+
java-version: 1.11
19+
- name: Grant execute permission for gradlew
20+
run: chmod +x gradlew
21+
- name: Build with Gradle
22+
run: ./gradlew test

src/main/java/io/securecodebox/persistence/defectdojo/service/GenericDefectDojoService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public GenericDefectDojoService(DefectDojoConfig config) {
5050

5151
this.objectMapper = new ObjectMapper();
5252
this.objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
53-
this.objectMapper.findAndRegisterModules();
53+
// this.objectMapper.findAndRegisterModules();
5454

5555
this.searchStringMapper = new ObjectMapper();
5656
this.searchStringMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
package io.securecodebox.persistence.defectdojo.service;
2+
3+
import com.fasterxml.jackson.core.JsonProcessingException;
4+
import io.securecodebox.persistence.defectdojo.config.DefectDojoConfig;
5+
import io.securecodebox.persistence.defectdojo.models.Finding;
6+
import org.junit.jupiter.api.BeforeEach;
7+
import org.junit.jupiter.api.Test;
8+
9+
import static org.junit.jupiter.api.Assertions.*;
10+
11+
class FindingServiceTest {
12+
13+
DefectDojoConfig config;
14+
FindingService underTest;
15+
16+
String findingResponse = "{\n" +
17+
" \"count\": 1,\n" +
18+
" \"next\": null,\n" +
19+
" \"previous\": null,\n" +
20+
" \"results\": [\n" +
21+
" {\n" +
22+
" \"id\": 42,\n" +
23+
" \"tags\": [],\n" +
24+
" \"request_response\": {\n" +
25+
" \"req_resp\": []\n" +
26+
" },\n" +
27+
" \"accepted_risks\": [],\n" +
28+
" \"push_to_jira\": false,\n" +
29+
" \"age\": 145,\n" +
30+
" \"sla_days_remaining\": null,\n" +
31+
" \"finding_meta\": [],\n" +
32+
" \"related_fields\": null,\n" +
33+
" \"jira_creation\": null,\n" +
34+
" \"jira_change\": null,\n" +
35+
" \"display_status\": \"Active, Verified\",\n" +
36+
" \"finding_groups\": [],\n" +
37+
" \"title\": \"Open Port: 9929/TCP\",\n" +
38+
" \"date\": \"2021-03-18\",\n" +
39+
" \"sla_start_date\": null,\n" +
40+
" \"cwe\": 0,\n" +
41+
" \"cve\": null,\n" +
42+
" \"cvssv3\": null,\n" +
43+
" \"cvssv3_score\": null,\n" +
44+
" \"url\": null,\n" +
45+
" \"severity\": \"Info\",\n" +
46+
" \"description\": \"### Host\\n\\n**IP Address:** 198.51.100.0\\n**FQDN:** scanme.nmap.org\\n\\n\\n**Port/Protocol:** 9929/tcp\\n\\n\\n\\n\\n\",\n" +
47+
" \"mitigation\": \"N/A\",\n" +
48+
" \"impact\": \"No impact provided\",\n" +
49+
" \"steps_to_reproduce\": null,\n" +
50+
" \"severity_justification\": null,\n" +
51+
" \"references\": null,\n" +
52+
" \"is_template\": false,\n" +
53+
" \"active\": true,\n" +
54+
" \"verified\": true,\n" +
55+
" \"false_p\": false,\n" +
56+
" \"duplicate\": false,\n" +
57+
" \"out_of_scope\": false,\n" +
58+
" \"risk_accepted\": false,\n" +
59+
" \"under_review\": false,\n" +
60+
" \"last_status_update\": \"2021-07-21T12:43:36.628994Z\",\n" +
61+
" \"under_defect_review\": false,\n" +
62+
" \"is_mitigated\": false,\n" +
63+
" \"thread_id\": 0,\n" +
64+
" \"mitigated\": null,\n" +
65+
" \"numerical_severity\": \"S4\",\n" +
66+
" \"last_reviewed\": \"2021-07-21T12:43:36.545348Z\",\n" +
67+
" \"line_number\": null,\n" +
68+
" \"sourcefilepath\": null,\n" +
69+
" \"sourcefile\": null,\n" +
70+
" \"param\": null,\n" +
71+
" \"payload\": null,\n" +
72+
" \"hash_code\": \"8dbaad23d4056f0a97bb8f487795fe392b4124f28d4049d16430e43415f1c219\",\n" +
73+
" \"line\": null,\n" +
74+
" \"file_path\": null,\n" +
75+
" \"component_name\": null,\n" +
76+
" \"component_version\": null,\n" +
77+
" \"static_finding\": false,\n" +
78+
" \"dynamic_finding\": true,\n" +
79+
" \"created\": \"2021-07-21T12:43:36.549669Z\",\n" +
80+
" \"scanner_confidence\": null,\n" +
81+
" \"unique_id_from_tool\": null,\n" +
82+
" \"vuln_id_from_tool\": null,\n" +
83+
" \"sast_source_object\": null,\n" +
84+
" \"sast_sink_object\": null,\n" +
85+
" \"sast_source_line\": null,\n" +
86+
" \"sast_source_file_path\": null,\n" +
87+
" \"nb_occurences\": null,\n" +
88+
" \"publish_date\": null,\n" +
89+
" \"test\": 222,\n" +
90+
" \"duplicate_finding\": null,\n" +
91+
" \"review_requested_by\": null,\n" +
92+
" \"defect_review_requested_by\": null,\n" +
93+
" \"mitigated_by\": null,\n" +
94+
" \"reporter\": 5,\n" +
95+
" \"last_reviewed_by\": 5,\n" +
96+
" \"sonarqube_issue\": null,\n" +
97+
" \"endpoints\": [\n" +
98+
" 875\n" +
99+
" ],\n" +
100+
" \"endpoint_status\": [\n" +
101+
" 8640\n" +
102+
" ],\n" +
103+
" \"reviewers\": [],\n" +
104+
" \"notes\": [],\n" +
105+
" \"files\": [],\n" +
106+
" \"found_by\": [\n" +
107+
" 132\n" +
108+
" ]\n" +
109+
" }\n" +
110+
" ],\n" +
111+
" \"prefetch\": {}\n" +
112+
"}";
113+
114+
@BeforeEach
115+
void setup() {
116+
config = new DefectDojoConfig("https://defectdojo.example.com", "abc", "test-user");
117+
underTest = new FindingService(config);
118+
}
119+
120+
@Test
121+
void deserializeList() throws JsonProcessingException {
122+
var foo = underTest.deserializeList(findingResponse);
123+
124+
assertEquals(1, foo.getCount());
125+
}
126+
}

0 commit comments

Comments
 (0)