Skip to content

Commit

Permalink
Improves modules tests
Browse files Browse the repository at this point in the history
  • Loading branch information
jqno committed Feb 7, 2025
1 parent b411315 commit 623586f
Show file tree
Hide file tree
Showing 8 changed files with 128 additions and 92 deletions.
10 changes: 10 additions & 0 deletions equalsverifier-test-jpms/src/main/java/module-info.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
module equalsverifier_jpms {
exports nl.jqno.equalsverifier.jpms.model;

opens nl.jqno.equalsverifier.jpms.model;

requires java.desktop;
requires java.naming;
requires java.rmi;
requires java.sql;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package nl.jqno.equalsverifier.jpms.model;

import java.util.Objects;

public final class ClassPoint {

private final int x;
private final int y;

private ClassPoint(int x, int y) {
this.x = x;
this.y = y;
}

@Override
public boolean equals(Object obj) {
return obj instanceof ClassPoint other && x == other.x && y == other.y;
}

@Override
public int hashCode() {
return Objects.hash(x, y);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package nl.jqno.equalsverifier.jpms.model;

import java.util.Objects;

public final class ClassPointContainer {
private final ClassPoint cp;

private ClassPointContainer(ClassPoint cp) {
this.cp = cp;
}

@Override
public boolean equals(Object obj) {
return obj instanceof ClassPointContainer other && Objects.equals(cp, other.cp);
}

@Override
public int hashCode() {
return Objects.hash(cp);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package nl.jqno.equalsverifier.jpms.model;

import java.util.Objects;

public final class FieldsFromJdkModulesHaver {
private final java.awt.Color desktopAwtColor;
private final java.rmi.server.UID rmiUid;
private final java.sql.Date sqlDate;
private final javax.naming.Reference namingReference;

private FieldsFromJdkModulesHaver(
java.awt.Color c,
java.rmi.server.UID u,
java.sql.Date d,
javax.naming.Reference r) {
this.desktopAwtColor = c;
this.rmiUid = u;
this.sqlDate = d;
this.namingReference = r;
}

@Override
public boolean equals(Object obj) {
return obj instanceof FieldsFromJdkModulesHaver other
&& Objects.equals(desktopAwtColor, other.desktopAwtColor)
&& Objects.equals(rmiUid, other.rmiUid)
&& Objects.equals(sqlDate, other.sqlDate)
&& Objects.equals(namingReference, other.namingReference);
}

@Override
public int hashCode() {
return Objects.hash(desktopAwtColor, rmiUid, sqlDate, namingReference);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package nl.jqno.equalsverifier.jpms.model;

import java.util.Objects;

public class NonFinal {
private final int i;

public NonFinal(int i) {
this.i = i;
}

@Override
public final boolean equals(Object obj) {
return obj instanceof NonFinal other && Objects.equals(i, other.i);
}

@Override
public final int hashCode() {
return Objects.hash(i);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package nl.jqno.equalsverifier.jpms.model;

public final class Records {
public record RecordPoint(int x, int y) {}

public record RecordPointContainer(RecordPoint rp) {}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package it;

import java.util.Objects;

import nl.jqno.equalsverifier.EqualsVerifier;
import nl.jqno.equalsverifier.jpms.model.*;
import nl.jqno.equalsverifier.jpms.model.Records.RecordPoint;
import nl.jqno.equalsverifier.jpms.model.Records.RecordPointContainer;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;

Expand Down Expand Up @@ -44,95 +45,11 @@ void nonFinalClassCanBeVerified() {
EqualsVerifier.forClass(NonFinal.class).verify();
}

static final class ClassPoint {
private final int x;
private final int y;

private ClassPoint(int x, int y) {
this.x = x;
this.y = y;
}

@Override
public boolean equals(Object obj) {
return obj instanceof ClassPoint other && x == other.x && y == other.y;
}

@Override
public int hashCode() {
return Objects.hash(x, y);
}
}

static final class ClassPointContainer {
private final ClassPoint cp;

private ClassPointContainer(ClassPoint cp) {
this.cp = cp;
}

@Override
public boolean equals(Object obj) {
return obj instanceof ClassPointContainer other && Objects.equals(cp, other.cp);
}

@Override
public int hashCode() {
return Objects.hash(cp);
}
}

record RecordPoint(int x, int y) {}

record RecordPointContainer(RecordPoint rp) {}

static final class FieldsFromJdkModulesHaver {
private final java.awt.Color desktopAwtColor;
private final java.rmi.server.UID rmiUid;
private final java.sql.Date sqlDate;
private final javax.naming.Reference namingReference;

private FieldsFromJdkModulesHaver(
java.awt.Color c,
java.rmi.server.UID u,
java.sql.Date d,
javax.naming.Reference r) {
this.desktopAwtColor = c;
this.rmiUid = u;
this.sqlDate = d;
this.namingReference = r;
}

@Override
public boolean equals(Object obj) {
return obj instanceof FieldsFromJdkModulesHaver other
&& Objects.equals(desktopAwtColor, other.desktopAwtColor)
&& Objects.equals(rmiUid, other.rmiUid)
&& Objects.equals(sqlDate, other.sqlDate)
&& Objects.equals(namingReference, other.namingReference);
}

@Override
public int hashCode() {
return Objects.hash(desktopAwtColor, rmiUid, sqlDate, namingReference);
}
}

static class NonFinal {
private final int i;

public NonFinal(int i) {
this.i = i;
}

@Override
public final boolean equals(Object obj) {
return obj instanceof NonFinal other && Objects.equals(i, other.i);
}

@Override
public final int hashCode() {
return Objects.hash(i);
}
@Test
void forPackageWorks() {
EqualsVerifier
.forPackage("nl.jqno.equalsverifier.jpms.model")
.except(c -> Records.class.equals(c.getEnclosingClass()) || Records.class.equals(c))
.verify();
}
}
1 change: 1 addition & 0 deletions equalsverifier-test-jpms/src/test/java/module-info.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
open module equalsverifier_jpms_test {
requires equalsverifier_jpms;
requires nl.jqno.equalsverifier;

requires org.junit.jupiter.api;
Expand Down

0 comments on commit 623586f

Please sign in to comment.