Skip to content

Commit d8ca8af

Browse files
Merge pull request #259 from qbicsoftware/hotfix/2.12.1
Sync of hotfix 2.12.1
2 parents 0cf238a + 0899847 commit d8ca8af

File tree

3 files changed

+37
-0
lines changed

3 files changed

+37
-0
lines changed

CHANGELOG.rst

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,18 @@ This project adheres to `Semantic Versioning <https://semver.org/>`_.
1515

1616
**Deprecated**
1717

18+
2.12.1 (2021-09-13)
19+
-------------------
20+
21+
**Added**
22+
23+
**Fixed**
24+
25+
* NPE when comparing ``life.qbic.datamodel.dtos.projectmanagement.ProjectIdentifier`` to null reference (`#258 <https://github.com/qbicsoftware/data-model-lib/pull/258>`_)
26+
27+
**Dependencies**
28+
29+
**Deprecated**
1830

1931
2.12.0 (2021-09-10)
2032
-------------------

src/main/groovy/life/qbic/datamodel/dtos/projectmanagement/ProjectIdentifier.groovy

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ class ProjectIdentifier {
3636

3737
@Override
3838
boolean equals(Object obj) {
39+
if (obj == null) {
40+
return false
41+
}
3942
if (this.is(obj)) {
4043
return true
4144
}

src/test/groovy/life/qbic/datamodel/dtos/projectmanagement/ProjectIdentifierSpec.groovy

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,26 @@ class ProjectIdentifierSpec extends Specification{
4040

4141
}
4242

43+
/**
44+
* Tests for Joshua Bloch's Item 8 in Effective Java, how to override equals() properly.
45+
* https://biratkirat.medium.com/learning-effective-java-item-8-d05f3847213d
46+
*/
47+
def "Test equals method fulfills full method contract"() {
48+
when:
49+
ProjectIdentifier idX = new ProjectIdentifier(new ProjectSpace(projectSpace), new ProjectCode(projectCode))
50+
ProjectIdentifier idY = new ProjectIdentifier(new ProjectSpace(projectSpace), new ProjectCode(projectCode))
51+
ProjectIdentifier idZ = new ProjectIdentifier(new ProjectSpace(projectSpace), new ProjectCode(projectCode))
52+
53+
then:
54+
idX.equals(idX) == true // Reflexive
55+
(idX.equals(idY) == true) && (idY.equals(idX) == true) // Symmetric
56+
(idX.equals(idY) == true) && (idY.equals(idZ) == true) && (idX.equals(idZ) == true) // Transitive
57+
(idX.equals(idX) == true) && (idX.equals(idX) == true) // Consistent
58+
idX.equals(null) == false // Non-nullity
59+
60+
where:
61+
projectSpace | projectCode
62+
"TEST" | "QTEST"
63+
}
64+
4365
}

0 commit comments

Comments
 (0)