diff --git a/src/main/java/io/securecodebox/persistence/defectdojo/model/Endpoint.java b/src/main/java/io/securecodebox/persistence/defectdojo/model/Endpoint.java index 1a0fe7d0..2ad4a0fd 100644 --- a/src/main/java/io/securecodebox/persistence/defectdojo/model/Endpoint.java +++ b/src/main/java/io/securecodebox/persistence/defectdojo/model/Endpoint.java @@ -49,6 +49,10 @@ public final class Endpoint implements Model { @Override public boolean equalsQueryString(Map queryParams) { + if (queryParams == null) { + return false; + } + return queryParams.containsKey("id") && queryParams.get("id").equals(this.id); } } diff --git a/src/main/java/io/securecodebox/persistence/defectdojo/model/Engagement.java b/src/main/java/io/securecodebox/persistence/defectdojo/model/Engagement.java index 31b20a06..25f1c6a3 100644 --- a/src/main/java/io/securecodebox/persistence/defectdojo/model/Engagement.java +++ b/src/main/java/io/securecodebox/persistence/defectdojo/model/Engagement.java @@ -97,9 +97,11 @@ public boolean equalsQueryString(Map queryParams) { if (queryParams == null) { return false; } + if (queryParams.containsKey("id") && queryParams.get("id") != null && queryParams.get("id").equals(this.id)) { return true; } + if (queryParams.containsKey("name") && queryParams.get("name") != null && queryParams.get("name").equals(this.name)) { return true; } diff --git a/src/main/java/io/securecodebox/persistence/defectdojo/model/Finding.java b/src/main/java/io/securecodebox/persistence/defectdojo/model/Finding.java index f18885c8..426fe6e2 100644 --- a/src/main/java/io/securecodebox/persistence/defectdojo/model/Finding.java +++ b/src/main/java/io/securecodebox/persistence/defectdojo/model/Finding.java @@ -121,6 +121,10 @@ public String getNumericalSeverity() { @Override public boolean equalsQueryString(Map queryParams) { + if (queryParams == null) { + return false; + } + return queryParams.containsKey("id") && queryParams.get("id").equals(this.id); } diff --git a/src/main/java/io/securecodebox/persistence/defectdojo/model/Group.java b/src/main/java/io/securecodebox/persistence/defectdojo/model/Group.java index 275a9cc6..7f96bd15 100644 --- a/src/main/java/io/securecodebox/persistence/defectdojo/model/Group.java +++ b/src/main/java/io/securecodebox/persistence/defectdojo/model/Group.java @@ -36,12 +36,18 @@ public final class Group implements Model { @Override public boolean equalsQueryString(Map queryParams) { + if (queryParams == null) { + return false; + } + if (queryParams.containsKey("id") && queryParams.get("id").equals(this.id)) { return true; } + if (queryParams.containsKey("name") && queryParams.get("name").equals(this.name)) { return true; } + return false; } } diff --git a/src/main/java/io/securecodebox/persistence/defectdojo/model/Product.java b/src/main/java/io/securecodebox/persistence/defectdojo/model/Product.java index b09f94c0..2f703153 100644 --- a/src/main/java/io/securecodebox/persistence/defectdojo/model/Product.java +++ b/src/main/java/io/securecodebox/persistence/defectdojo/model/Product.java @@ -53,9 +53,14 @@ public final class Product implements Model { @Override public boolean equalsQueryString(Map queryParams) { + if (queryParams == null) { + return false; + } + if (queryParams.containsKey("id") && queryParams.get("id").equals(this.id)) { return true; } + if (queryParams.containsKey("name") && queryParams.get("name").equals(this.name)) { return true; } diff --git a/src/main/java/io/securecodebox/persistence/defectdojo/model/ProductType.java b/src/main/java/io/securecodebox/persistence/defectdojo/model/ProductType.java index feef31fb..38fbb893 100644 --- a/src/main/java/io/securecodebox/persistence/defectdojo/model/ProductType.java +++ b/src/main/java/io/securecodebox/persistence/defectdojo/model/ProductType.java @@ -32,9 +32,14 @@ public final class ProductType implements Model { @Override public boolean equalsQueryString(Map queryParams) { + if (queryParams == null) { + return false; + } + if (queryParams.containsKey("id") && queryParams.get("id").equals(this.id)) { return true; } + if (queryParams.containsKey("name") && queryParams.get("name").equals(this.name)) { return true; } diff --git a/src/main/java/io/securecodebox/persistence/defectdojo/model/Response.java b/src/main/java/io/securecodebox/persistence/defectdojo/model/Response.java index f7cf3b2b..1bfd5ea8 100644 --- a/src/main/java/io/securecodebox/persistence/defectdojo/model/Response.java +++ b/src/main/java/io/securecodebox/persistence/defectdojo/model/Response.java @@ -10,6 +10,7 @@ import java.util.List; // TODO: Why we do not have as many annotations as the other models here? +// TODO: Why does this class does not implement Model? @Data public final class Response { @JsonProperty diff --git a/src/main/java/io/securecodebox/persistence/defectdojo/model/RiskAcceptance.java b/src/main/java/io/securecodebox/persistence/defectdojo/model/RiskAcceptance.java index 10b5fb10..2fa127fc 100644 --- a/src/main/java/io/securecodebox/persistence/defectdojo/model/RiskAcceptance.java +++ b/src/main/java/io/securecodebox/persistence/defectdojo/model/RiskAcceptance.java @@ -58,6 +58,10 @@ public final class RiskAcceptance implements Model { @Override public boolean equalsQueryString(Map queryParams) { + if (queryParams == null) { + return false; + } + return queryParams.containsKey("id") && queryParams.get("id").equals(this.id); } } diff --git a/src/main/java/io/securecodebox/persistence/defectdojo/model/ScanFile.java b/src/main/java/io/securecodebox/persistence/defectdojo/model/ScanFile.java index 137928b8..975fba20 100644 --- a/src/main/java/io/securecodebox/persistence/defectdojo/model/ScanFile.java +++ b/src/main/java/io/securecodebox/persistence/defectdojo/model/ScanFile.java @@ -7,6 +7,7 @@ import lombok.Data; // TODO: Why we do not have as many annotations as the other models here? +// TODO: Why does this class does not implement Model? @Data public final class ScanFile { /** diff --git a/src/main/java/io/securecodebox/persistence/defectdojo/model/Test.java b/src/main/java/io/securecodebox/persistence/defectdojo/model/Test.java index 4172ce41..adb6a5cd 100644 --- a/src/main/java/io/securecodebox/persistence/defectdojo/model/Test.java +++ b/src/main/java/io/securecodebox/persistence/defectdojo/model/Test.java @@ -63,12 +63,18 @@ public final class Test implements Model { @Override public boolean equalsQueryString(Map queryParams) { + if (queryParams == null) { + return false; + } + if (queryParams.containsKey("id") && queryParams.get("id").equals(this.id)) { return true; } + if (queryParams.containsKey("title") && queryParams.get("title").equals(this.title)) { return true; } + if (queryParams.containsKey("engagement") && queryParams.get("engagement").equals(this.engagement)) { return true; } diff --git a/src/main/java/io/securecodebox/persistence/defectdojo/model/TestType.java b/src/main/java/io/securecodebox/persistence/defectdojo/model/TestType.java index e10d2df6..28864aee 100644 --- a/src/main/java/io/securecodebox/persistence/defectdojo/model/TestType.java +++ b/src/main/java/io/securecodebox/persistence/defectdojo/model/TestType.java @@ -33,9 +33,14 @@ public final class TestType implements Model { @Override public boolean equalsQueryString(Map queryParams) { + if (queryParams == null) { + return false; + } + if (queryParams.containsKey("id") && queryParams.get("id").equals(this.id)) { return true; } + if (queryParams.containsKey("name") && queryParams.get("name").equals(this.name)) { return true; } diff --git a/src/main/java/io/securecodebox/persistence/defectdojo/model/ToolConfig.java b/src/main/java/io/securecodebox/persistence/defectdojo/model/ToolConfig.java index e29befed..60917d60 100644 --- a/src/main/java/io/securecodebox/persistence/defectdojo/model/ToolConfig.java +++ b/src/main/java/io/securecodebox/persistence/defectdojo/model/ToolConfig.java @@ -38,12 +38,18 @@ public final class ToolConfig implements Model { @Override public boolean equalsQueryString(Map queryParams) { + if (queryParams == null) { + return false; + } + if (queryParams.containsKey("id") && queryParams.get("id").equals(this.id)) { return true; } + if (queryParams.containsKey("name") && queryParams.get("name").equals(this.name)) { return true; } + if (queryParams.containsKey("configuration_url") && queryParams.get("configuration_url").equals(this.configUrl)) { return true; } diff --git a/src/main/java/io/securecodebox/persistence/defectdojo/model/ToolType.java b/src/main/java/io/securecodebox/persistence/defectdojo/model/ToolType.java index 7d0f6b3d..ed1a008b 100644 --- a/src/main/java/io/securecodebox/persistence/defectdojo/model/ToolType.java +++ b/src/main/java/io/securecodebox/persistence/defectdojo/model/ToolType.java @@ -29,9 +29,14 @@ public final class ToolType implements Model { @Override public boolean equalsQueryString(Map queryParams) { + if (queryParams == null) { + return false; + } + if (queryParams.containsKey("id") && queryParams.get("id").equals(this.id)) { return true; } + if (queryParams.containsKey("name") && queryParams.get("name").equals(this.name)) { return true; } diff --git a/src/main/java/io/securecodebox/persistence/defectdojo/model/User.java b/src/main/java/io/securecodebox/persistence/defectdojo/model/User.java index 9ef6d42c..fecb30f1 100644 --- a/src/main/java/io/securecodebox/persistence/defectdojo/model/User.java +++ b/src/main/java/io/securecodebox/persistence/defectdojo/model/User.java @@ -32,9 +32,14 @@ public final class User implements Model { @Override public boolean equalsQueryString(Map queryParams) { + if (queryParams == null) { + return false; + } + if (queryParams.containsKey("id") && queryParams.get("id").equals(this.id)) { return true; } + if (queryParams.containsKey("username") && queryParams.get("username").equals(this.username)) { return true; } diff --git a/src/main/java/io/securecodebox/persistence/defectdojo/model/UserProfile.java b/src/main/java/io/securecodebox/persistence/defectdojo/model/UserProfile.java index cd93f900..a5edeb4b 100644 --- a/src/main/java/io/securecodebox/persistence/defectdojo/model/UserProfile.java +++ b/src/main/java/io/securecodebox/persistence/defectdojo/model/UserProfile.java @@ -23,7 +23,10 @@ public final class UserProfile implements Model { @Override public boolean equalsQueryString(Map queryParams) { - // The user_profile endpoint does not have query parameters that's why this function will just return true + // The user_profile endpoint does not have query parameters that's + // why this function will just return true. + // TODO: All other implementations return false if null is given for queryParams. + // We should consider to change this API according to that. return true; } diff --git a/src/test/java/io/securecodebox/persistence/defectdojo/model/EndpointTest.java b/src/test/java/io/securecodebox/persistence/defectdojo/model/EndpointTest.java index 4d340f41..e93348cc 100644 --- a/src/test/java/io/securecodebox/persistence/defectdojo/model/EndpointTest.java +++ b/src/test/java/io/securecodebox/persistence/defectdojo/model/EndpointTest.java @@ -4,6 +4,11 @@ import nl.jqno.equalsverifier.Warning; import org.junit.jupiter.api.Test; +import java.util.HashMap; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + /** * Tests for {@link Endpoint} */ @@ -14,4 +19,22 @@ void equalsAndHashCode() { .suppress(Warning.NONFINAL_FIELDS) .verify(); } + + @Test + void equalsQueryString_id() { + final var sut = Endpoint.builder().build(); + assertThat(sut.equalsQueryString(null), is(false)); + + final var params = new HashMap(); + assertThat(sut.equalsQueryString(params), is(false)); + + params.put("id", 42L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setId(23L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setId(42L); + assertThat(sut.equalsQueryString(params), is(true)); + } } diff --git a/src/test/java/io/securecodebox/persistence/defectdojo/model/EngagementTest.java b/src/test/java/io/securecodebox/persistence/defectdojo/model/EngagementTest.java index 717d35a8..e5973790 100644 --- a/src/test/java/io/securecodebox/persistence/defectdojo/model/EngagementTest.java +++ b/src/test/java/io/securecodebox/persistence/defectdojo/model/EngagementTest.java @@ -4,6 +4,11 @@ import nl.jqno.equalsverifier.Warning; import org.junit.jupiter.api.Test; +import java.util.HashMap; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + /** * Tests for {@link Engagement} */ @@ -14,4 +19,40 @@ void equalsAndHashCode() { .suppress(Warning.NONFINAL_FIELDS) .verify(); } + + @Test + void equalsQueryString_id() { + final var sut = Engagement.builder().build(); + assertThat(sut.equalsQueryString(null), is(false)); + + final var params = new HashMap(); + assertThat(sut.equalsQueryString(params), is(false)); + + params.put("id", 42L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setId(23L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setId(42L); + assertThat(sut.equalsQueryString(params), is(true)); + } + + @Test + void equalsQueryString_name() { + final var sut = Engagement.builder().build(); + assertThat(sut.equalsQueryString(null), is(false)); + + final var params = new HashMap(); + assertThat(sut.equalsQueryString(params), is(false)); + + params.put("name", "foobar"); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setName("snafu"); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setName("foobar"); + assertThat(sut.equalsQueryString(params), is(true)); + } } diff --git a/src/test/java/io/securecodebox/persistence/defectdojo/model/FindingTest.java b/src/test/java/io/securecodebox/persistence/defectdojo/model/FindingTest.java index 5e098cb0..db173323 100644 --- a/src/test/java/io/securecodebox/persistence/defectdojo/model/FindingTest.java +++ b/src/test/java/io/securecodebox/persistence/defectdojo/model/FindingTest.java @@ -4,6 +4,12 @@ import nl.jqno.equalsverifier.Warning; import org.junit.jupiter.api.Test; +import java.util.Collections; +import java.util.HashMap; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + /** * Tests for {@link Finding} */ @@ -14,4 +20,27 @@ void equalsAndHashCode() { .suppress(Warning.NONFINAL_FIELDS) .verify(); } + + @Test + void equalsQueryString_id() { + final var sut = Finding.builder() + .title("title") + .description("description") + .foundBy(Collections.emptyList()) + .severity(Finding.Severity.INFORMATIONAL) + .build(); + assertThat(sut.equalsQueryString(null), is(false)); + + final var params = new HashMap(); + assertThat(sut.equalsQueryString(params), is(false)); + + params.put("id", 42L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setId(23L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setId(42L); + assertThat(sut.equalsQueryString(params), is(true)); + } } diff --git a/src/test/java/io/securecodebox/persistence/defectdojo/model/GroupTest.java b/src/test/java/io/securecodebox/persistence/defectdojo/model/GroupTest.java index 5878c2b5..725c0c97 100644 --- a/src/test/java/io/securecodebox/persistence/defectdojo/model/GroupTest.java +++ b/src/test/java/io/securecodebox/persistence/defectdojo/model/GroupTest.java @@ -4,6 +4,11 @@ import nl.jqno.equalsverifier.Warning; import org.junit.jupiter.api.Test; +import java.util.HashMap; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + /** * Tests for {@link Group} */ @@ -14,4 +19,44 @@ void equalsAndHashCode() { .suppress(Warning.NONFINAL_FIELDS) .verify(); } + + @Test + void equalsQueryString_id() { + final var sut = Group.builder() + .name("") + .build(); + assertThat(sut.equalsQueryString(null), is(false)); + + final var params = new HashMap(); + assertThat(sut.equalsQueryString(params), is(false)); + + params.put("id", 42L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setId(23L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setId(42L); + assertThat(sut.equalsQueryString(params), is(true)); + } + + @Test + void equalsQueryString_name() { + final var sut = Group.builder() + .name("") + .build(); + assertThat(sut.equalsQueryString(null), is(false)); + + final var params = new HashMap(); + assertThat(sut.equalsQueryString(params), is(false)); + + params.put("name", "foobar"); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setName("snafu"); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setName("foobar"); + assertThat(sut.equalsQueryString(params), is(true)); + } } diff --git a/src/test/java/io/securecodebox/persistence/defectdojo/model/ProductTest.java b/src/test/java/io/securecodebox/persistence/defectdojo/model/ProductTest.java index b9214a60..7bf448b0 100644 --- a/src/test/java/io/securecodebox/persistence/defectdojo/model/ProductTest.java +++ b/src/test/java/io/securecodebox/persistence/defectdojo/model/ProductTest.java @@ -4,6 +4,11 @@ import nl.jqno.equalsverifier.Warning; import org.junit.jupiter.api.Test; +import java.util.HashMap; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + /** * Tests for {@link Product} */ @@ -14,4 +19,44 @@ void equalsAndHashCode() { .suppress(Warning.NONFINAL_FIELDS) .verify(); } + + @Test + void equalsQueryString_id() { + final var sut = Product.builder() + .name("") + .build(); + assertThat(sut.equalsQueryString(null), is(false)); + + final var params = new HashMap(); + assertThat(sut.equalsQueryString(params), is(false)); + + params.put("id", 42L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setId(23L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setId(42L); + assertThat(sut.equalsQueryString(params), is(true)); + } + + @Test + void equalsQueryString_name() { + final var sut = Product.builder() + .name("") + .build(); + assertThat(sut.equalsQueryString(null), is(false)); + + final var params = new HashMap(); + assertThat(sut.equalsQueryString(params), is(false)); + + params.put("name", "foobar"); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setName("snafu"); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setName("foobar"); + assertThat(sut.equalsQueryString(params), is(true)); + } } diff --git a/src/test/java/io/securecodebox/persistence/defectdojo/model/ProductTypeTest.java b/src/test/java/io/securecodebox/persistence/defectdojo/model/ProductTypeTest.java index 33c93e5b..f301599a 100644 --- a/src/test/java/io/securecodebox/persistence/defectdojo/model/ProductTypeTest.java +++ b/src/test/java/io/securecodebox/persistence/defectdojo/model/ProductTypeTest.java @@ -4,6 +4,11 @@ import nl.jqno.equalsverifier.Warning; import org.junit.jupiter.api.Test; +import java.util.HashMap; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + /** * Tests for {@link ProductType} */ @@ -14,4 +19,44 @@ void equalsAndHashCode() { .suppress(Warning.NONFINAL_FIELDS) .verify(); } + + @Test + void equalsQueryString_id() { + final var sut = ProductType.builder() + .name("") + .build(); + assertThat(sut.equalsQueryString(null), is(false)); + + final var params = new HashMap(); + assertThat(sut.equalsQueryString(params), is(false)); + + params.put("id", 42L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setId(23L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setId(42L); + assertThat(sut.equalsQueryString(params), is(true)); + } + + @Test + void equalsQueryString_name() { + final var sut = ProductType.builder() + .name("") + .build(); + assertThat(sut.equalsQueryString(null), is(false)); + + final var params = new HashMap(); + assertThat(sut.equalsQueryString(params), is(false)); + + params.put("name", "foobar"); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setName("snafu"); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setName("foobar"); + assertThat(sut.equalsQueryString(params), is(true)); + } } diff --git a/src/test/java/io/securecodebox/persistence/defectdojo/model/RiskAcceptanceTest.java b/src/test/java/io/securecodebox/persistence/defectdojo/model/RiskAcceptanceTest.java index 668de580..bdb22538 100644 --- a/src/test/java/io/securecodebox/persistence/defectdojo/model/RiskAcceptanceTest.java +++ b/src/test/java/io/securecodebox/persistence/defectdojo/model/RiskAcceptanceTest.java @@ -4,6 +4,11 @@ import nl.jqno.equalsverifier.Warning; import org.junit.jupiter.api.Test; +import java.util.HashMap; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + /** * Tests for {@link RiskAcceptance} */ @@ -14,4 +19,23 @@ void equalsAndHashCode() { .suppress(Warning.NONFINAL_FIELDS) .verify(); } + + @Test + void equalsQueryString_id() { + final var sut = RiskAcceptance.builder() + .build(); + assertThat(sut.equalsQueryString(null), is(false)); + + final var params = new HashMap(); + assertThat(sut.equalsQueryString(params), is(false)); + + params.put("id", 42L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setId(23L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setId(42L); + assertThat(sut.equalsQueryString(params), is(true)); + } } diff --git a/src/test/java/io/securecodebox/persistence/defectdojo/model/TestTest.java b/src/test/java/io/securecodebox/persistence/defectdojo/model/TestTest.java index df520718..33de9b65 100644 --- a/src/test/java/io/securecodebox/persistence/defectdojo/model/TestTest.java +++ b/src/test/java/io/securecodebox/persistence/defectdojo/model/TestTest.java @@ -4,6 +4,11 @@ import nl.jqno.equalsverifier.Warning; import org.junit.jupiter.api.Test; +import java.util.HashMap; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + /** * Tests for {@link Test} */ @@ -14,4 +19,61 @@ void equalsAndHashCode() { .suppress(Warning.NONFINAL_FIELDS) .verify(); } + + @Test + void equalsQueryString_id() { + final var sut = io.securecodebox.persistence.defectdojo.model.Test.builder() + .build(); + assertThat(sut.equalsQueryString(null), is(false)); + + final var params = new HashMap(); + assertThat(sut.equalsQueryString(params), is(false)); + + params.put("id", 42L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setId(23L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setId(42L); + assertThat(sut.equalsQueryString(params), is(true)); + } + + @Test + void equalsQueryString_title() { + final var sut = io.securecodebox.persistence.defectdojo.model.Test.builder() + .build(); + assertThat(sut.equalsQueryString(null), is(false)); + + final var params = new HashMap(); + assertThat(sut.equalsQueryString(params), is(false)); + + params.put("title", "foobar"); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setTitle("snafu"); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setTitle("foobar"); + assertThat(sut.equalsQueryString(params), is(true)); + } + + @Test + void equalsQueryString_engagement() { + final var sut = io.securecodebox.persistence.defectdojo.model.Test.builder() + .build(); + assertThat(sut.equalsQueryString(null), is(false)); + + final var params = new HashMap(); + assertThat(sut.equalsQueryString(params), is(false)); + + params.put("engagement", 42L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setEngagement(23L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setEngagement(42L); + assertThat(sut.equalsQueryString(params), is(true)); + } } diff --git a/src/test/java/io/securecodebox/persistence/defectdojo/model/TestTypeTest.java b/src/test/java/io/securecodebox/persistence/defectdojo/model/TestTypeTest.java index 7c202df4..a35fa193 100644 --- a/src/test/java/io/securecodebox/persistence/defectdojo/model/TestTypeTest.java +++ b/src/test/java/io/securecodebox/persistence/defectdojo/model/TestTypeTest.java @@ -4,6 +4,11 @@ import nl.jqno.equalsverifier.Warning; import org.junit.jupiter.api.Test; +import java.util.HashMap; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + /** * Tests for {@link TestType} */ @@ -14,4 +19,44 @@ void equalsAndHashCode() { .suppress(Warning.NONFINAL_FIELDS) .verify(); } + + @Test + void equalsQueryString_id() { + final var sut = ProductType.builder() + .name("") + .build(); + assertThat(sut.equalsQueryString(null), is(false)); + + final var params = new HashMap(); + assertThat(sut.equalsQueryString(params), is(false)); + + params.put("id", 42L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setId(23L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setId(42L); + assertThat(sut.equalsQueryString(params), is(true)); + } + + @Test + void equalsQueryString_name() { + final var sut = ProductType.builder() + .name("") + .build(); + assertThat(sut.equalsQueryString(null), is(false)); + + final var params = new HashMap(); + assertThat(sut.equalsQueryString(params), is(false)); + + params.put("name", "foobar"); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setName("snafu"); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setName("foobar"); + assertThat(sut.equalsQueryString(params), is(true)); + } } diff --git a/src/test/java/io/securecodebox/persistence/defectdojo/model/ToolConfigTest.java b/src/test/java/io/securecodebox/persistence/defectdojo/model/ToolConfigTest.java index c8ffaabb..f0da84dc 100644 --- a/src/test/java/io/securecodebox/persistence/defectdojo/model/ToolConfigTest.java +++ b/src/test/java/io/securecodebox/persistence/defectdojo/model/ToolConfigTest.java @@ -4,6 +4,11 @@ import nl.jqno.equalsverifier.Warning; import org.junit.jupiter.api.Test; +import java.util.HashMap; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + /** * Tests for {@link ToolConfig} */ @@ -14,4 +19,64 @@ void equalsAndHashCode() { .suppress(Warning.NONFINAL_FIELDS) .verify(); } + + @Test + void equalsQueryString_id() { + final var sut = ToolConfig.builder() + .name("") + .build(); + assertThat(sut.equalsQueryString(null), is(false)); + + final var params = new HashMap(); + assertThat(sut.equalsQueryString(params), is(false)); + + params.put("id", 42L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setId(23L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setId(42L); + assertThat(sut.equalsQueryString(params), is(true)); + } + + @Test + void equalsQueryString_name() { + final var sut = ToolConfig.builder() + .name("") + .build(); + assertThat(sut.equalsQueryString(null), is(false)); + + final var params = new HashMap(); + assertThat(sut.equalsQueryString(params), is(false)); + + params.put("name", "foobar"); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setName("snafu"); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setName("foobar"); + assertThat(sut.equalsQueryString(params), is(true)); + } + + @Test + void equalsQueryString_configUrl() { + final var sut = ToolConfig.builder() + .name("") + .build(); + assertThat(sut.equalsQueryString(null), is(false)); + + final var params = new HashMap(); + assertThat(sut.equalsQueryString(params), is(false)); + + params.put("configuration_url", "foobar"); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setConfigUrl("snafu"); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setConfigUrl("foobar"); + assertThat(sut.equalsQueryString(params), is(true)); + } } diff --git a/src/test/java/io/securecodebox/persistence/defectdojo/model/ToolTypeTest.java b/src/test/java/io/securecodebox/persistence/defectdojo/model/ToolTypeTest.java index 7d9800eb..a81ad535 100644 --- a/src/test/java/io/securecodebox/persistence/defectdojo/model/ToolTypeTest.java +++ b/src/test/java/io/securecodebox/persistence/defectdojo/model/ToolTypeTest.java @@ -4,6 +4,11 @@ import nl.jqno.equalsverifier.Warning; import org.junit.jupiter.api.Test; +import java.util.HashMap; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + /** * Tests for {@link ToolType} */ @@ -14,4 +19,44 @@ void equalsAndHashCode() { .suppress(Warning.NONFINAL_FIELDS) .verify(); } + + @Test + void equalsQueryString_id() { + final var sut = ToolType.builder() + .name("") + .build(); + assertThat(sut.equalsQueryString(null), is(false)); + + final var params = new HashMap(); + assertThat(sut.equalsQueryString(params), is(false)); + + params.put("id", 42L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setId(23L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setId(42L); + assertThat(sut.equalsQueryString(params), is(true)); + } + + @Test + void equalsQueryString_name() { + final var sut = ToolType.builder() + .name("") + .build(); + assertThat(sut.equalsQueryString(null), is(false)); + + final var params = new HashMap(); + assertThat(sut.equalsQueryString(params), is(false)); + + params.put("name", "foobar"); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setName("snafu"); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setName("foobar"); + assertThat(sut.equalsQueryString(params), is(true)); + } } diff --git a/src/test/java/io/securecodebox/persistence/defectdojo/model/UserProfileTest.java b/src/test/java/io/securecodebox/persistence/defectdojo/model/UserProfileTest.java index 76cd8c09..f0f96fe0 100644 --- a/src/test/java/io/securecodebox/persistence/defectdojo/model/UserProfileTest.java +++ b/src/test/java/io/securecodebox/persistence/defectdojo/model/UserProfileTest.java @@ -4,6 +4,12 @@ import nl.jqno.equalsverifier.Warning; import org.junit.jupiter.api.Test; +import java.util.Collections; +import java.util.HashMap; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + /** * Tests for {@link UserProfile} */ @@ -14,4 +20,13 @@ void equalsAndHashCode() { .suppress(Warning.NONFINAL_FIELDS) .verify(); } + + @Test + void equalsQueryString_alwaysTrue() { + final var sut = UserProfile.builder() + .build(); + + assertThat(sut.equalsQueryString(null), is(true)); + assertThat(sut.equalsQueryString(Collections.emptyMap()), is(true)); + } } diff --git a/src/test/java/io/securecodebox/persistence/defectdojo/model/UserTest.java b/src/test/java/io/securecodebox/persistence/defectdojo/model/UserTest.java index fc49bc62..9e02cbfd 100644 --- a/src/test/java/io/securecodebox/persistence/defectdojo/model/UserTest.java +++ b/src/test/java/io/securecodebox/persistence/defectdojo/model/UserTest.java @@ -4,6 +4,11 @@ import nl.jqno.equalsverifier.Warning; import org.junit.jupiter.api.Test; +import java.util.HashMap; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + /** * Tests for {@link User} */ @@ -15,4 +20,43 @@ void equalsAndHashCode() { .verify(); } + @Test + void equalsQueryString_id() { + final var sut = User.builder() + .username("") + .build(); + assertThat(sut.equalsQueryString(null), is(false)); + + final var params = new HashMap(); + assertThat(sut.equalsQueryString(params), is(false)); + + params.put("id", 42L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setId(23L); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setId(42L); + assertThat(sut.equalsQueryString(params), is(true)); + } + + @Test + void equalsQueryString_username() { + final var sut = User.builder() + .username("") + .build(); + assertThat(sut.equalsQueryString(null), is(false)); + + final var params = new HashMap(); + assertThat(sut.equalsQueryString(params), is(false)); + + params.put("username", "foobar"); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setUsername("snafu"); + assertThat(sut.equalsQueryString(params), is(false)); + + sut.setUsername("foobar"); + assertThat(sut.equalsQueryString(params), is(true)); + } }