diff options
Diffstat (limited to 'server/sonar-db-dao/src/test')
3 files changed, 94 insertions, 1 deletions
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/sca/ScaDependencyDtoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/sca/ScaDependencyDtoTest.java index bf899451fcb..ac2e97a0d65 100644 --- a/server/sonar-db-dao/src/test/java/org/sonar/db/sca/ScaDependencyDtoTest.java +++ b/server/sonar-db-dao/src/test/java/org/sonar/db/sca/ScaDependencyDtoTest.java @@ -20,6 +20,7 @@ package org.sonar.db.sca; import java.util.List; +import javax.annotation.Nullable; import org.junit.jupiter.api.Test; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; @@ -41,6 +42,54 @@ class ScaDependencyDtoTest { } @Test + void test_identity_shouldIgnoreUuidAndUpdatableFields() { + var scaDependencyDto = new ScaDependencyDto("scaDependencyUuid", + "scaReleaseUuid", + true, + "compile", + "some/path", + "another/path", + List.of(List.of("pkg:npm/IGNORED@1.0.0")), + 1L, + 2L); + var scaDependencyDtoDifferentButSameIdentity = new ScaDependencyDto("differentUuid", + "scaReleaseUuid", + true, + "compile", + "some/path", + "another/path", + List.of(List.of("pkg:npm/DIFFERENT_ALSO_IGNORED@1.0.0")), + 42L, + 57L); + assertThat(scaDependencyDto.identity()).isEqualTo(scaDependencyDtoDifferentButSameIdentity.identity()); + assertThat(scaDependencyDto).isNotEqualTo(scaDependencyDtoDifferentButSameIdentity); + } + + @Test + void test_identity_changingScaReleaseUuid() { + var scaDependencyDto = new ScaDependencyDto("scaDependencyUuid", + "scaReleaseUuid", + true, + "compile", + "some/path", + "another/path", + List.of(List.of("pkg:npm/IGNORED@1.0.0")), + 1L, + 2L); + var scaDependencyDtoChangedReleaseUuid = new ScaDependencyDto("scaDependencyUuid", + "scaReleaseUuidDifferent", + true, + "compile", + "some/path", + "another/path", + List.of(List.of("pkg:npm/IGNORED@1.0.0")), + 1L, + 2L); + assertThat(scaDependencyDto.identity()).isNotEqualTo(scaDependencyDtoChangedReleaseUuid.identity()); + assertThat(scaDependencyDto.identity().withScaReleaseUuid("scaReleaseUuidDifferent")).isEqualTo(scaDependencyDtoChangedReleaseUuid.identity()); + } + + @Test void test_primaryDependencyFilePath() { ScaDependencyDto withUserDependencyFilePath = newScaDependencyDto("manifest"); assertThat(withUserDependencyFilePath.primaryDependencyFilePath()).isEqualTo("manifest"); @@ -48,7 +97,7 @@ class ScaDependencyDtoTest { assertThat(withoutUserDependencyFilePath.primaryDependencyFilePath()).isEqualTo("lockfileDependencyFilePath"); } - private ScaDependencyDto newScaDependencyDto(String userDependencyFilePath) { + private ScaDependencyDto newScaDependencyDto(@Nullable String userDependencyFilePath) { return new ScaDependencyDto("dependencyUuid", "scaReleaseUuid", true, diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/sca/ScaIssueReleaseDtoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/sca/ScaIssueReleaseDtoTest.java index 1a6a33a955a..e1df2cfd1c2 100644 --- a/server/sonar-db-dao/src/test/java/org/sonar/db/sca/ScaIssueReleaseDtoTest.java +++ b/server/sonar-db-dao/src/test/java/org/sonar/db/sca/ScaIssueReleaseDtoTest.java @@ -35,4 +35,22 @@ class ScaIssueReleaseDtoTest { 2L); assertThat(scaIssueReleaseDto.toBuilder().build()).isEqualTo(scaIssueReleaseDto); } + + @Test + void test_identity_shouldIgnoreUuidAndUpdatableFields() { + var scaIssueReleaseDto = new ScaIssueReleaseDto("sca-issue-release-uuid", + "sca-issue-uuid", + "sca-release-uuid", + ScaSeverity.INFO, + 1L, + 2L); + var scaIssueReleaseDtoDifferentButSameIdentity = new ScaIssueReleaseDto("differentUuid", + "sca-issue-uuid", + "sca-release-uuid", + ScaSeverity.HIGH, + 10L, + 20L); + assertThat(scaIssueReleaseDto.identity()).isEqualTo(scaIssueReleaseDtoDifferentButSameIdentity.identity()); + assertThat(scaIssueReleaseDto).isNotEqualTo(scaIssueReleaseDtoDifferentButSameIdentity); + } } diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/sca/ScaReleaseDtoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/sca/ScaReleaseDtoTest.java index 3b493e3c2a7..5883c348ff2 100644 --- a/server/sonar-db-dao/src/test/java/org/sonar/db/sca/ScaReleaseDtoTest.java +++ b/server/sonar-db-dao/src/test/java/org/sonar/db/sca/ScaReleaseDtoTest.java @@ -39,4 +39,30 @@ class ScaReleaseDtoTest { 2L); assertThat(scaReleaseDto.toBuilder().build()).isEqualTo(scaReleaseDto); } + + @Test + void test_identity_shouldIgnoreUuidAndUpdatableFields() { + var scaReleaseDto = new ScaReleaseDto("scaReleaseUuid", + "componentUuid", + "packageUrl", + PackageManager.MAVEN, + "foo:bar", + "1.0.0", + "MIT", + true, + 1L, + 2L); + var scaReleaseDtoDifferentButSameIdentity = new ScaReleaseDto("differentUuid", + "componentUuidDifferent", + "packageUrl", + PackageManager.NPM, + "foo:bar-different", + "2.0.0", + "GPL-3.0", + false, + 10L, + 30L); + assertThat(scaReleaseDto.identity()).isEqualTo(scaReleaseDtoDifferentButSameIdentity.identity()); + assertThat(scaReleaseDto).isNotEqualTo(scaReleaseDtoDifferentButSameIdentity); + } } |