Skip to content

Commit

Permalink
Add tests for equals and hashCode of ComponentIdentity
Browse files Browse the repository at this point in the history
Signed-off-by: nscuro <nscuro@protonmail.com>
  • Loading branch information
nscuro committed Jul 6, 2023
1 parent ab12de6 commit b8f4381
Showing 1 changed file with 155 additions and 0 deletions.
155 changes: 155 additions & 0 deletions src/test/java/org/dependencytrack/model/ComponentIdentityTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
package org.dependencytrack.model;

import com.github.packageurl.PackageURL;
import junitparams.JUnitParamsRunner;
import junitparams.Parameters;
import org.junit.Test;
import org.junit.runner.RunWith;

import static org.assertj.core.api.Assertions.assertThat;

@RunWith(JUnitParamsRunner.class)
public class ComponentIdentityTest {

@SuppressWarnings("unused")
private Object[] testEqualsAndHashCodeParams() throws Exception {
return new Object[]{
// Equal
new Object[]{
new ComponentIdentity(
new PackageURL("pkg:maven/group/name@version"),
"cpe",
"swidTagId",
"group",
"name",
"version"
),
new ComponentIdentity(
new PackageURL("pkg:maven/group/name@version"),
"cpe",
"swidTagId",
"group",
"name",
"version"
),
true
},
// Different coordinates
new Object[]{
new ComponentIdentity(
new PackageURL("pkg:maven/group/name@version"),
"cpe",
"swidTagId",
"group",
"name",
"version"
),
new ComponentIdentity(
new PackageURL("pkg:maven/group/name@version"),
"cpe",
"swidTagId",
"otherGroup",
"otherName",
"otherVersion"
),
false
},
// Different version
new Object[]{
new ComponentIdentity(
new PackageURL("pkg:maven/group/name@version"),
"cpe",
"swidTagId",
"group",
"name",
"version"
),
new ComponentIdentity(
new PackageURL("pkg:maven/group/name@version"),
"cpe",
"swidTagId",
"group",
"name",
"otherVersion"
),
false
},
// Different PURLs
new Object[]{
new ComponentIdentity(
new PackageURL("pkg:maven/group/name@version"),
"cpe",
"swidTagId",
"group",
"name",
"version"
),
new ComponentIdentity(
new PackageURL("pkg:maven/otherGroup/otherName@otherVersion"),
"cpe",
"swidTagId",
"group",
"name",
"version"
),
false
},
// Different CPEs
new Object[]{
new ComponentIdentity(
new PackageURL("pkg:maven/group/name@version"),
"cpe",
"swidTagId",
"group",
"name",
"version"
),
new ComponentIdentity(
new PackageURL("pkg:maven/group/name@version"),
"otherCpe",
"swidTagId",
"group",
"name",
"version"
),
false
},
// Different SWID Tag ID
new Object[]{
new ComponentIdentity(
new PackageURL("pkg:maven/group/name@version"),
"cpe",
"swidTagId",
"group",
"name",
"version"
),
new ComponentIdentity(
new PackageURL("pkg:maven/group/name@version"),
"cpe",
"otherSwidTagId",
"group",
"name",
"version"
),
false
}
};
}

@Test
@Parameters(method = "testEqualsAndHashCodeParams")
public void testEqualsAndHashCode(final ComponentIdentity left, final ComponentIdentity right, final boolean expectEqual) {
if (expectEqual) {
assertThat(left).isEqualTo(right);
assertThat(right).isEqualTo(left);
assertThat(left.hashCode()).isEqualTo(right.hashCode());
} else {
assertThat(left).isNotEqualTo(right);
assertThat(right).isNotEqualTo(left);
assertThat(left.hashCode()).isNotEqualTo(right.hashCode());
}
}


}

0 comments on commit b8f4381

Please sign in to comment.