Skip to content

Commit e450a3f

Browse files
committed
adding hashCode/equals tests to event classes
1 parent 2b12131 commit e450a3f

12 files changed

+140
-5
lines changed

core/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@
191191
<dependency>
192192
<groupId>nl.jqno.equalsverifier</groupId>
193193
<artifactId>equalsverifier</artifactId>
194-
<version>2.3.1</version>
194+
<version>3.0.3</version>
195195
<scope>test</scope>
196196
</dependency>
197197
<dependency>

core/src/main/java/org/everit/json/schema/event/CombinedSchemaMatchEvent.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,8 @@ public CombinedSchemaMatchEvent(CombinedSchema schema, Schema subSchema,
1919
@Override public boolean equals(Object o) {
2020
return o instanceof CombinedSchemaMatchEvent && super.equals(o);
2121
}
22+
23+
@Override boolean canEqual(Object o) {
24+
return o instanceof CombinedSchemaMatchEvent;
25+
}
2226
}

core/src/main/java/org/everit/json/schema/event/CombinedSchemaMismatchEvent.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,8 @@ public CombinedSchemaMismatchEvent(CombinedSchema schema, Schema subSchema, Obje
4242
@Override public int hashCode() {
4343
return Objects.hash(super.hashCode(), failure);
4444
}
45+
46+
@Override boolean canEqual(Object o) {
47+
return o instanceof CombinedSchemaMismatchEvent;
48+
}
4549
}

core/src/main/java/org/everit/json/schema/event/ConditionalSchemaMatchEvent.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@ public ConditionalSchemaMatchEvent(ConditionalSchema schema, Object instance, Ke
1515
}
1616

1717
@Override public boolean equals(Object o) {
18-
return o instanceof ConditionalSchemaMatchEvent && super.equals(o);
18+
return canEqual(o) && super.equals(o);
1919
}
2020

21+
@Override boolean canEqual(Object o) {
22+
return o instanceof ConditionalSchemaMatchEvent;
23+
}
2124
}

core/src/main/java/org/everit/json/schema/event/ConditionalSchemaMismatchEvent.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,18 @@ public ConditionalSchemaMismatchEvent(ConditionalSchema schema, Object instance,
2828
@Override public boolean equals(Object o) {
2929
if (this == o)
3030
return true;
31-
if (!(o instanceof ConditionalSchemaMismatchEvent))
31+
if (!canEqual(o))
3232
return false;
3333
if (!super.equals(o))
3434
return false;
3535
ConditionalSchemaMismatchEvent that = (ConditionalSchemaMismatchEvent) o;
3636
return failure.equals(that.failure);
3737
}
3838

39+
@Override boolean canEqual(Object o) {
40+
return o instanceof ConditionalSchemaMismatchEvent;
41+
}
42+
3943
@Override public int hashCode() {
4044
return Objects.hash(super.hashCode(), failure);
4145
}

core/src/main/java/org/everit/json/schema/event/SchemaReferencedEvent.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,9 @@ public Schema getReferredSchema() {
2727
@Override public boolean equals(Object o) {
2828
if (this == o)
2929
return true;
30-
if (!(o instanceof SchemaReferencedEvent))
30+
if (!canEqual(o)) {
3131
return false;
32+
}
3233
if (!super.equals(o))
3334
return false;
3435
SchemaReferencedEvent that = (SchemaReferencedEvent) o;
@@ -38,4 +39,8 @@ public Schema getReferredSchema() {
3839
@Override public int hashCode() {
3940
return Objects.hash(super.hashCode(), referredSchema);
4041
}
42+
43+
@Override boolean canEqual(Object o) {
44+
return o instanceof SchemaReferencedEvent;
45+
}
4146
}

core/src/main/java/org/everit/json/schema/event/ValidationEvent.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,22 @@ public S getSchema() {
2323
@Override public boolean equals(Object o) {
2424
if (this == o)
2525
return true;
26-
if (o == null || getClass() != o.getClass())
26+
if (o == null)
27+
return false;
28+
if (!canEqual(o))
2729
return false;
2830
ValidationEvent<?> that = (ValidationEvent<?>) o;
31+
if (!that.canEqual(this)) {
32+
return false;
33+
}
2934
return schema.equals(that.schema) &&
3035
instance.equals(that.instance);
3136
}
3237

38+
boolean canEqual(Object o) {
39+
return o instanceof ValidationEvent;
40+
}
41+
3342
@Override public int hashCode() {
3443
return Objects.hash(schema, instance);
3544
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package org.everit.json.schema.event;
2+
3+
import org.junit.Test;
4+
5+
import nl.jqno.equalsverifier.EqualsVerifier;
6+
import nl.jqno.equalsverifier.Warning;
7+
8+
public class CombinedSchemaMatchEventTest {
9+
10+
@Test
11+
public void equalsVerifier() {
12+
EqualsVerifier.forClass(CombinedSchemaMatchEvent.class)
13+
.withNonnullFields("subSchema", "schema", "instance")
14+
.withRedefinedSuperclass()
15+
.suppress(Warning.STRICT_INHERITANCE)
16+
.verify();
17+
}
18+
19+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package org.everit.json.schema.event;
2+
3+
import org.everit.json.schema.FalseSchema;
4+
import org.everit.json.schema.TrueSchema;
5+
import org.everit.json.schema.ValidationException;
6+
import org.junit.Test;
7+
8+
import nl.jqno.equalsverifier.EqualsVerifier;
9+
import nl.jqno.equalsverifier.Warning;
10+
11+
public class CombinedSchemaMismatchEventTest {
12+
13+
@Test
14+
public void equalsVerifier() {
15+
ValidationException exc1 = new ValidationException(TrueSchema.INSTANCE, "message", "keyword", "#/location");
16+
ValidationException exc2 = new ValidationException(FalseSchema.INSTANCE, "message", "keyword", "#/loca/tion");
17+
EqualsVerifier.forClass(CombinedSchemaMismatchEvent.class)
18+
.withNonnullFields("subSchema", "schema", "instance", "failure")
19+
.withRedefinedSuperclass()
20+
.withPrefabValues(ValidationException.class, exc1, exc2)
21+
.suppress(Warning.STRICT_INHERITANCE)
22+
.verify();
23+
}
24+
25+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package org.everit.json.schema.event;
2+
3+
import org.junit.Test;
4+
5+
import nl.jqno.equalsverifier.EqualsVerifier;
6+
import nl.jqno.equalsverifier.Warning;
7+
8+
public class ConditionalSchemaMatchEventTest {
9+
10+
@Test
11+
public void equalsVerifier() {
12+
EqualsVerifier.forClass(ConditionalSchemaMatchEvent.class)
13+
.withNonnullFields("keyword", "schema", "instance")
14+
.withRedefinedSuperclass()
15+
.suppress(Warning.STRICT_INHERITANCE)
16+
.verify();
17+
}
18+
19+
}

0 commit comments

Comments
 (0)