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