Skip to content

Commit

Permalink
Issue #13345: enable EqualsHashCodeCheckExamplesTest
Browse files Browse the repository at this point in the history
  • Loading branch information
Lmh-java authored and romani committed Mar 15, 2024
1 parent bbb28a7 commit 68366f7
Show file tree
Hide file tree
Showing 5 changed files with 98 additions and 112 deletions.
Expand Up @@ -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() {
Expand All @@ -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);
}
}
@@ -0,0 +1,52 @@
/*xml
<module name="Checker">
<module name="TreeWalker">
<module name="EqualsHashCode"/>
</module>
</module>
*/
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

This file was deleted.

81 changes: 36 additions & 45 deletions src/xdocs/checks/coding/equalshashcode.xml
Expand Up @@ -40,56 +40,47 @@
</source>
<p id="Example1-code">Example:</p>
<source>
public static class Example1 {
public int hashCode() {
// code
}
public boolean equals(String o) { // violation, overloaded implementation of 'equals'
// code
}
class Example1 {
public int hashCode() { // violation, no valid 'equals'
return 0;
}
public boolean equals(String o) { return false; }
}
public static class Example2 {
public boolean equals(Object o) { // violation, no 'hashCode'
// code
}
public boolean equals(String o) {
// code
}

class ExampleNoHashCode {
public boolean equals(Object o) { // violation, no 'hashCode'
return false;
}
public boolean equals(String o) { return false; }
}
public static class Example3 {
public int hashCode() {
// code
}
public boolean equals(Object o) { // OK
// code
}
public boolean equals(String o) {
// code
}

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; }
}
public static class Example4 {
public int hashCode() {
// code
}
public boolean equals(java.lang.Object o) { // OK
// code
}

class ExampleBothMethods2 {
public int hashCode() { return 0; }
public boolean equals(java.lang.Object o) { // ok, both methods exist
return false;
}
}
public static class Example5 {
public static int hashCode(int i) {
// code
}
public boolean equals(Object o) { // violation, overloaded implementation of 'hashCode'
// code
}

class ExampleNoValidHashCode {
public static int hashCode(int i) { return 0; }
public boolean equals(Object o) { // violation, no valid 'hashCode'
return false;
}
}
public static class Example6 {
public int hashCode() { // violation, overloaded implementation of 'equals'
// code
}
public static boolean equals(Object o, Object o2) {
// code
}

class ExampleNoValidEquals {
public int hashCode() { // violation, no valid 'equals'
return 0;
}
public static boolean equals(Object o, Object o2) { return false; }
}
</source>
</subsection>
Expand Down
4 changes: 2 additions & 2 deletions src/xdocs/checks/coding/equalshashcode.xml.template
Expand Up @@ -33,13 +33,13 @@
</p>
<macro name="example">
<param name="path"
value="resources/com/puppycrawl/tools/checkstyle/checks/coding/equalshashcode/Example1.txt"/>
value="resources/com/puppycrawl/tools/checkstyle/checks/coding/equalshashcode/Example1.java"/>
<param name="type" value="config"/>
</macro>
<p id="Example1-code">Example:</p>
<macro name="example">
<param name="path"
value="resources/com/puppycrawl/tools/checkstyle/checks/coding/equalshashcode/Example1.txt"/>
value="resources/com/puppycrawl/tools/checkstyle/checks/coding/equalshashcode/Example1.java"/>
<param name="type" value="code"/>
</macro>
</subsection>
Expand Down

0 comments on commit 68366f7

Please sign in to comment.