From 68366f7293319ee2b0b6a511d18d33de44155912 Mon Sep 17 00:00:00 2001
From: Minghao Li
Date: Sun, 10 Mar 2024 14:44:51 -0700
Subject: [PATCH] Issue #13345: enable EqualsHashCodeCheckExamplesTest
---
.../EqualsHashCodeCheckExamplesTest.java | 12 ++-
.../coding/equalshashcode/Example1.java | 52 ++++++++++++
.../checks/coding/equalshashcode/Example1.txt | 61 --------------
src/xdocs/checks/coding/equalshashcode.xml | 81 +++++++++----------
.../checks/coding/equalshashcode.xml.template | 4 +-
5 files changed, 98 insertions(+), 112 deletions(-)
create mode 100644 src/xdocs-examples/resources/com/puppycrawl/tools/checkstyle/checks/coding/equalshashcode/Example1.java
delete mode 100644 src/xdocs-examples/resources/com/puppycrawl/tools/checkstyle/checks/coding/equalshashcode/Example1.txt
diff --git a/src/xdocs-examples/java/com/puppycrawl/tools/checkstyle/checks/coding/EqualsHashCodeCheckExamplesTest.java b/src/xdocs-examples/java/com/puppycrawl/tools/checkstyle/checks/coding/EqualsHashCodeCheckExamplesTest.java
index a555be20f84..ec35148704d 100644
--- a/src/xdocs-examples/java/com/puppycrawl/tools/checkstyle/checks/coding/EqualsHashCodeCheckExamplesTest.java
+++ b/src/xdocs-examples/java/com/puppycrawl/tools/checkstyle/checks/coding/EqualsHashCodeCheckExamplesTest.java
@@ -19,12 +19,13 @@
package com.puppycrawl.tools.checkstyle.checks.coding;
-import org.junit.jupiter.api.Disabled;
+import static com.puppycrawl.tools.checkstyle.checks.coding.EqualsHashCodeCheck.MSG_KEY_EQUALS;
+import static com.puppycrawl.tools.checkstyle.checks.coding.EqualsHashCodeCheck.MSG_KEY_HASHCODE;
+
import org.junit.jupiter.api.Test;
import com.puppycrawl.tools.checkstyle.AbstractExamplesModuleTestSupport;
-@Disabled("until https://github.com/checkstyle/checkstyle/issues/13345")
public class EqualsHashCodeCheckExamplesTest extends AbstractExamplesModuleTestSupport {
@Override
protected String getPackageLocation() {
@@ -34,9 +35,12 @@ protected String getPackageLocation() {
@Test
public void testExample1() throws Exception {
final String[] expected = {
-
+ "11:3: " + getCheckMessage(MSG_KEY_EQUALS),
+ "18:3: " + getCheckMessage(MSG_KEY_HASHCODE),
+ "41:3: " + getCheckMessage(MSG_KEY_HASHCODE),
+ "47:3: " + getCheckMessage(MSG_KEY_EQUALS),
};
- verifyWithInlineConfigParser(getPath("Example1.txt"), expected);
+ verifyWithInlineConfigParser(getPath("Example1.java"), expected);
}
}
diff --git a/src/xdocs-examples/resources/com/puppycrawl/tools/checkstyle/checks/coding/equalshashcode/Example1.java b/src/xdocs-examples/resources/com/puppycrawl/tools/checkstyle/checks/coding/equalshashcode/Example1.java
new file mode 100644
index 00000000000..e275c7fc438
--- /dev/null
+++ b/src/xdocs-examples/resources/com/puppycrawl/tools/checkstyle/checks/coding/equalshashcode/Example1.java
@@ -0,0 +1,52 @@
+/*xml
+
+
+
+
+
+*/
+package com.puppycrawl.tools.checkstyle.checks.coding.equalshashcode;
+// xdoc section -- start
+class Example1 {
+ public int hashCode() { // violation, no valid 'equals'
+ return 0;
+ }
+ public boolean equals(String o) { return false; }
+}
+
+class ExampleNoHashCode {
+ public boolean equals(Object o) { // violation, no 'hashCode'
+ return false;
+ }
+ public boolean equals(String o) { return false; }
+}
+
+class ExampleBothMethods1 {
+ public int hashCode() { return 0; }
+ public boolean equals(Object o) { // ok, both methods exist
+ return false;
+ }
+ public boolean equals(String o) { return false; }
+}
+
+class ExampleBothMethods2 {
+ public int hashCode() { return 0; }
+ public boolean equals(java.lang.Object o) { // ok, both methods exist
+ return false;
+ }
+}
+
+class ExampleNoValidHashCode {
+ public static int hashCode(int i) { return 0; }
+ public boolean equals(Object o) { // violation, no valid 'hashCode'
+ return false;
+ }
+}
+
+class ExampleNoValidEquals {
+ public int hashCode() { // violation, no valid 'equals'
+ return 0;
+ }
+ public static boolean equals(Object o, Object o2) { return false; }
+}
+// xdoc section -- end
diff --git a/src/xdocs-examples/resources/com/puppycrawl/tools/checkstyle/checks/coding/equalshashcode/Example1.txt b/src/xdocs-examples/resources/com/puppycrawl/tools/checkstyle/checks/coding/equalshashcode/Example1.txt
deleted file mode 100644
index 33eb51e63ca..00000000000
--- a/src/xdocs-examples/resources/com/puppycrawl/tools/checkstyle/checks/coding/equalshashcode/Example1.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-/*xml
-
-
-
-
-
-*/
-
-// xdoc section -- start
-public static class Example1 {
- public int hashCode() {
- // code
- }
- public boolean equals(String o) { // violation, overloaded implementation of 'equals'
- // code
- }
-}
-public static class Example2 {
- public boolean equals(Object o) { // violation, no 'hashCode'
- // code
- }
- public boolean equals(String o) {
- // code
- }
-}
-public static class Example3 {
- public int hashCode() {
- // code
- }
- public boolean equals(Object o) { // OK
- // code
- }
- public boolean equals(String o) {
- // code
- }
-}
-public static class Example4 {
- public int hashCode() {
- // code
- }
- public boolean equals(java.lang.Object o) { // OK
- // code
- }
-}
-public static class Example5 {
- public static int hashCode(int i) {
- // code
- }
- public boolean equals(Object o) { // violation, overloaded implementation of 'hashCode'
- // code
- }
-}
-public static class Example6 {
- public int hashCode() { // violation, overloaded implementation of 'equals'
- // code
- }
- public static boolean equals(Object o, Object o2) {
- // code
- }
-}
-// xdoc section -- end
diff --git a/src/xdocs/checks/coding/equalshashcode.xml b/src/xdocs/checks/coding/equalshashcode.xml
index c95cb0ae84a..700f029efc9 100644
--- a/src/xdocs/checks/coding/equalshashcode.xml
+++ b/src/xdocs/checks/coding/equalshashcode.xml
@@ -40,56 +40,47 @@
Example:
diff --git a/src/xdocs/checks/coding/equalshashcode.xml.template b/src/xdocs/checks/coding/equalshashcode.xml.template
index b6ffaab875f..b8bb9d06c21 100644
--- a/src/xdocs/checks/coding/equalshashcode.xml.template
+++ b/src/xdocs/checks/coding/equalshashcode.xml.template
@@ -33,13 +33,13 @@
+ value="resources/com/puppycrawl/tools/checkstyle/checks/coding/equalshashcode/Example1.java"/>
Example:
+ value="resources/com/puppycrawl/tools/checkstyle/checks/coding/equalshashcode/Example1.java"/>