Skip to content

Commit cc47ad1

Browse files
committed
#23 Add missing tests for model's equalsQueryString()
Also add missing null check in implementation. Signed-off-by: Sven Strittmatter <sven.strittmatter@iteratec.com>
1 parent 9aaf930 commit cc47ad1

28 files changed

+591
-1
lines changed

src/main/java/io/securecodebox/persistence/defectdojo/model/Endpoint.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@ public final class Endpoint implements Model {
4949

5050
@Override
5151
public boolean equalsQueryString(Map<String, Object> queryParams) {
52+
if (queryParams == null) {
53+
return false;
54+
}
55+
5256
return queryParams.containsKey("id") && queryParams.get("id").equals(this.id);
5357
}
5458
}

src/main/java/io/securecodebox/persistence/defectdojo/model/Engagement.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,11 @@ public boolean equalsQueryString(Map<String, Object> queryParams) {
9797
if (queryParams == null) {
9898
return false;
9999
}
100+
100101
if (queryParams.containsKey("id") && queryParams.get("id") != null && queryParams.get("id").equals(this.id)) {
101102
return true;
102103
}
104+
103105
if (queryParams.containsKey("name") && queryParams.get("name") != null && queryParams.get("name").equals(this.name)) {
104106
return true;
105107
}

src/main/java/io/securecodebox/persistence/defectdojo/model/Finding.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,10 @@ public String getNumericalSeverity() {
121121

122122
@Override
123123
public boolean equalsQueryString(Map<String, Object> queryParams) {
124+
if (queryParams == null) {
125+
return false;
126+
}
127+
124128
return queryParams.containsKey("id") && queryParams.get("id").equals(this.id);
125129
}
126130

src/main/java/io/securecodebox/persistence/defectdojo/model/Group.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,18 @@ public final class Group implements Model {
3636

3737
@Override
3838
public boolean equalsQueryString(Map<String, Object> queryParams) {
39+
if (queryParams == null) {
40+
return false;
41+
}
42+
3943
if (queryParams.containsKey("id") && queryParams.get("id").equals(this.id)) {
4044
return true;
4145
}
46+
4247
if (queryParams.containsKey("name") && queryParams.get("name").equals(this.name)) {
4348
return true;
4449
}
50+
4551
return false;
4652
}
4753
}

src/main/java/io/securecodebox/persistence/defectdojo/model/Product.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,14 @@ public final class Product implements Model {
5353

5454
@Override
5555
public boolean equalsQueryString(Map<String, Object> queryParams) {
56+
if (queryParams == null) {
57+
return false;
58+
}
59+
5660
if (queryParams.containsKey("id") && queryParams.get("id").equals(this.id)) {
5761
return true;
5862
}
63+
5964
if (queryParams.containsKey("name") && queryParams.get("name").equals(this.name)) {
6065
return true;
6166
}

src/main/java/io/securecodebox/persistence/defectdojo/model/ProductType.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,14 @@ public final class ProductType implements Model {
3232

3333
@Override
3434
public boolean equalsQueryString(Map<String, Object> queryParams) {
35+
if (queryParams == null) {
36+
return false;
37+
}
38+
3539
if (queryParams.containsKey("id") && queryParams.get("id").equals(this.id)) {
3640
return true;
3741
}
42+
3843
if (queryParams.containsKey("name") && queryParams.get("name").equals(this.name)) {
3944
return true;
4045
}

src/main/java/io/securecodebox/persistence/defectdojo/model/Response.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import java.util.List;
1111

1212
// TODO: Why we do not have as many annotations as the other models here?
13+
// TODO: Why does this class does not implement Model?
1314
@Data
1415
public final class Response<T> {
1516
@JsonProperty

src/main/java/io/securecodebox/persistence/defectdojo/model/RiskAcceptance.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@ public final class RiskAcceptance implements Model {
5858

5959
@Override
6060
public boolean equalsQueryString(Map<String, Object> queryParams) {
61+
if (queryParams == null) {
62+
return false;
63+
}
64+
6165
return queryParams.containsKey("id") && queryParams.get("id").equals(this.id);
6266
}
6367
}

src/main/java/io/securecodebox/persistence/defectdojo/model/ScanFile.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import lombok.Data;
88

99
// TODO: Why we do not have as many annotations as the other models here?
10+
// TODO: Why does this class does not implement Model?
1011
@Data
1112
public final class ScanFile {
1213
/**

src/main/java/io/securecodebox/persistence/defectdojo/model/Test.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,18 @@ public final class Test implements Model {
6363

6464
@Override
6565
public boolean equalsQueryString(Map<String, Object> queryParams) {
66+
if (queryParams == null) {
67+
return false;
68+
}
69+
6670
if (queryParams.containsKey("id") && queryParams.get("id").equals(this.id)) {
6771
return true;
6872
}
73+
6974
if (queryParams.containsKey("title") && queryParams.get("title").equals(this.title)) {
7075
return true;
7176
}
77+
7278
if (queryParams.containsKey("engagement") && queryParams.get("engagement").equals(this.engagement)) {
7379
return true;
7480
}

src/main/java/io/securecodebox/persistence/defectdojo/model/TestType.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,14 @@ public final class TestType implements Model {
3333

3434
@Override
3535
public boolean equalsQueryString(Map<String, Object> queryParams) {
36+
if (queryParams == null) {
37+
return false;
38+
}
39+
3640
if (queryParams.containsKey("id") && queryParams.get("id").equals(this.id)) {
3741
return true;
3842
}
43+
3944
if (queryParams.containsKey("name") && queryParams.get("name").equals(this.name)) {
4045
return true;
4146
}

src/main/java/io/securecodebox/persistence/defectdojo/model/ToolConfig.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,18 @@ public final class ToolConfig implements Model {
3838

3939
@Override
4040
public boolean equalsQueryString(Map<String, Object> queryParams) {
41+
if (queryParams == null) {
42+
return false;
43+
}
44+
4145
if (queryParams.containsKey("id") && queryParams.get("id").equals(this.id)) {
4246
return true;
4347
}
48+
4449
if (queryParams.containsKey("name") && queryParams.get("name").equals(this.name)) {
4550
return true;
4651
}
52+
4753
if (queryParams.containsKey("configuration_url") && queryParams.get("configuration_url").equals(this.configUrl)) {
4854
return true;
4955
}

src/main/java/io/securecodebox/persistence/defectdojo/model/ToolType.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,14 @@ public final class ToolType implements Model {
2929

3030
@Override
3131
public boolean equalsQueryString(Map<String, Object> queryParams) {
32+
if (queryParams == null) {
33+
return false;
34+
}
35+
3236
if (queryParams.containsKey("id") && queryParams.get("id").equals(this.id)) {
3337
return true;
3438
}
39+
3540
if (queryParams.containsKey("name") && queryParams.get("name").equals(this.name)) {
3641
return true;
3742
}

src/main/java/io/securecodebox/persistence/defectdojo/model/User.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,14 @@ public final class User implements Model {
3232

3333
@Override
3434
public boolean equalsQueryString(Map<String, Object> queryParams) {
35+
if (queryParams == null) {
36+
return false;
37+
}
38+
3539
if (queryParams.containsKey("id") && queryParams.get("id").equals(this.id)) {
3640
return true;
3741
}
42+
3843
if (queryParams.containsKey("username") && queryParams.get("username").equals(this.username)) {
3944
return true;
4045
}

src/main/java/io/securecodebox/persistence/defectdojo/model/UserProfile.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,10 @@ public final class UserProfile implements Model {
2323

2424
@Override
2525
public boolean equalsQueryString(Map<String, Object> queryParams) {
26-
// The user_profile endpoint does not have query parameters that's why this function will just return true
26+
// The user_profile endpoint does not have query parameters that's
27+
// why this function will just return true.
28+
// TODO: All other implementations return false if null is given for queryParams.
29+
// We should consider to change this API according to that.
2730
return true;
2831
}
2932

src/test/java/io/securecodebox/persistence/defectdojo/model/EndpointTest.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@
44
import nl.jqno.equalsverifier.Warning;
55
import org.junit.jupiter.api.Test;
66

7+
import java.util.HashMap;
8+
9+
import static org.hamcrest.MatcherAssert.assertThat;
10+
import static org.hamcrest.Matchers.is;
11+
712
/**
813
* Tests for {@link Endpoint}
914
*/
@@ -14,4 +19,22 @@ void equalsAndHashCode() {
1419
.suppress(Warning.NONFINAL_FIELDS)
1520
.verify();
1621
}
22+
23+
@Test
24+
void equalsQueryString_id() {
25+
final var sut = Endpoint.builder().build();
26+
assertThat(sut.equalsQueryString(null), is(false));
27+
28+
final var params = new HashMap<String, Object>();
29+
assertThat(sut.equalsQueryString(params), is(false));
30+
31+
params.put("id", 42L);
32+
assertThat(sut.equalsQueryString(params), is(false));
33+
34+
sut.setId(23L);
35+
assertThat(sut.equalsQueryString(params), is(false));
36+
37+
sut.setId(42L);
38+
assertThat(sut.equalsQueryString(params), is(true));
39+
}
1740
}

src/test/java/io/securecodebox/persistence/defectdojo/model/EngagementTest.java

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@
44
import nl.jqno.equalsverifier.Warning;
55
import org.junit.jupiter.api.Test;
66

7+
import java.util.HashMap;
8+
9+
import static org.hamcrest.MatcherAssert.assertThat;
10+
import static org.hamcrest.Matchers.is;
11+
712
/**
813
* Tests for {@link Engagement}
914
*/
@@ -14,4 +19,40 @@ void equalsAndHashCode() {
1419
.suppress(Warning.NONFINAL_FIELDS)
1520
.verify();
1621
}
22+
23+
@Test
24+
void equalsQueryString_id() {
25+
final var sut = Engagement.builder().build();
26+
assertThat(sut.equalsQueryString(null), is(false));
27+
28+
final var params = new HashMap<String, Object>();
29+
assertThat(sut.equalsQueryString(params), is(false));
30+
31+
params.put("id", 42L);
32+
assertThat(sut.equalsQueryString(params), is(false));
33+
34+
sut.setId(23L);
35+
assertThat(sut.equalsQueryString(params), is(false));
36+
37+
sut.setId(42L);
38+
assertThat(sut.equalsQueryString(params), is(true));
39+
}
40+
41+
@Test
42+
void equalsQueryString_name() {
43+
final var sut = Engagement.builder().build();
44+
assertThat(sut.equalsQueryString(null), is(false));
45+
46+
final var params = new HashMap<String, Object>();
47+
assertThat(sut.equalsQueryString(params), is(false));
48+
49+
params.put("name", "foobar");
50+
assertThat(sut.equalsQueryString(params), is(false));
51+
52+
sut.setName("snafu");
53+
assertThat(sut.equalsQueryString(params), is(false));
54+
55+
sut.setName("foobar");
56+
assertThat(sut.equalsQueryString(params), is(true));
57+
}
1758
}

src/test/java/io/securecodebox/persistence/defectdojo/model/FindingTest.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@
44
import nl.jqno.equalsverifier.Warning;
55
import org.junit.jupiter.api.Test;
66

7+
import java.util.Collections;
8+
import java.util.HashMap;
9+
10+
import static org.hamcrest.MatcherAssert.assertThat;
11+
import static org.hamcrest.Matchers.is;
12+
713
/**
814
* Tests for {@link Finding}
915
*/
@@ -14,4 +20,27 @@ void equalsAndHashCode() {
1420
.suppress(Warning.NONFINAL_FIELDS)
1521
.verify();
1622
}
23+
24+
@Test
25+
void equalsQueryString_id() {
26+
final var sut = Finding.builder()
27+
.title("title")
28+
.description("description")
29+
.foundBy(Collections.emptyList())
30+
.severity(Finding.Severity.INFORMATIONAL)
31+
.build();
32+
assertThat(sut.equalsQueryString(null), is(false));
33+
34+
final var params = new HashMap<String, Object>();
35+
assertThat(sut.equalsQueryString(params), is(false));
36+
37+
params.put("id", 42L);
38+
assertThat(sut.equalsQueryString(params), is(false));
39+
40+
sut.setId(23L);
41+
assertThat(sut.equalsQueryString(params), is(false));
42+
43+
sut.setId(42L);
44+
assertThat(sut.equalsQueryString(params), is(true));
45+
}
1746
}

src/test/java/io/securecodebox/persistence/defectdojo/model/GroupTest.java

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@
44
import nl.jqno.equalsverifier.Warning;
55
import org.junit.jupiter.api.Test;
66

7+
import java.util.HashMap;
8+
9+
import static org.hamcrest.MatcherAssert.assertThat;
10+
import static org.hamcrest.Matchers.is;
11+
712
/**
813
* Tests for {@link Group}
914
*/
@@ -14,4 +19,44 @@ void equalsAndHashCode() {
1419
.suppress(Warning.NONFINAL_FIELDS)
1520
.verify();
1621
}
22+
23+
@Test
24+
void equalsQueryString_id() {
25+
final var sut = Group.builder()
26+
.name("")
27+
.build();
28+
assertThat(sut.equalsQueryString(null), is(false));
29+
30+
final var params = new HashMap<String, Object>();
31+
assertThat(sut.equalsQueryString(params), is(false));
32+
33+
params.put("id", 42L);
34+
assertThat(sut.equalsQueryString(params), is(false));
35+
36+
sut.setId(23L);
37+
assertThat(sut.equalsQueryString(params), is(false));
38+
39+
sut.setId(42L);
40+
assertThat(sut.equalsQueryString(params), is(true));
41+
}
42+
43+
@Test
44+
void equalsQueryString_name() {
45+
final var sut = Group.builder()
46+
.name("")
47+
.build();
48+
assertThat(sut.equalsQueryString(null), is(false));
49+
50+
final var params = new HashMap<String, Object>();
51+
assertThat(sut.equalsQueryString(params), is(false));
52+
53+
params.put("name", "foobar");
54+
assertThat(sut.equalsQueryString(params), is(false));
55+
56+
sut.setName("snafu");
57+
assertThat(sut.equalsQueryString(params), is(false));
58+
59+
sut.setName("foobar");
60+
assertThat(sut.equalsQueryString(params), is(true));
61+
}
1762
}

0 commit comments

Comments
 (0)