From 439031a5847757fe2c49aabbf675e909fc6d26f9 Mon Sep 17 00:00:00 2001 From: Ryan Beckett Date: Tue, 19 Sep 2017 22:50:23 -0400 Subject: Generate equals & hashcode visitors that ignore comments #729 --- .../ast/visitor/NoCommentEqualsVisitorTest.java | 54 ++++++++++++++++++++++ .../ast/visitor/NoCommentHashCodeVisitorTest.java | 34 ++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 javaparser-testing/src/test/java/com/github/javaparser/ast/visitor/NoCommentEqualsVisitorTest.java create mode 100644 javaparser-testing/src/test/java/com/github/javaparser/ast/visitor/NoCommentHashCodeVisitorTest.java (limited to 'javaparser-testing') diff --git a/javaparser-testing/src/test/java/com/github/javaparser/ast/visitor/NoCommentEqualsVisitorTest.java b/javaparser-testing/src/test/java/com/github/javaparser/ast/visitor/NoCommentEqualsVisitorTest.java new file mode 100644 index 000000000..1e2cdf810 --- /dev/null +++ b/javaparser-testing/src/test/java/com/github/javaparser/ast/visitor/NoCommentEqualsVisitorTest.java @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2007-2010 JĂșlio Vilmar Gesser. + * Copyright (C) 2011, 2013-2016 The JavaParser Team. + * + * This file is part of JavaParser. + * + * JavaParser can be used either under the terms of + * a) the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * b) the terms of the Apache License + * + * You should have received a copy of both licenses in LICENCE.LGPL and + * LICENCE.APACHE. Please refer to those files for details. + * + * JavaParser is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + */ + +package com.github.javaparser.ast.visitor; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import com.github.javaparser.JavaParser; +import com.github.javaparser.ast.CompilationUnit; + +public class NoCommentEqualsVisitorTest { + + @Test + public void testEquals() { + CompilationUnit p1 = JavaParser.parse("class X { }"); + CompilationUnit p2 = JavaParser.parse("class X { }"); + assertTrue(NoCommentEqualsVisitor.equals(p1, p2)); + } + + @Test + public void testEqualsWithDifferentComments() { + CompilationUnit p1 = JavaParser.parse("/* a */ class X { /** b */} //c"); + CompilationUnit p2 = JavaParser.parse("/* b */ class X { } //c"); + assertTrue(NoCommentEqualsVisitor.equals(p1, p2)); + } + + @Test + public void testNotEquals() { + CompilationUnit p1 = JavaParser.parse("class X { }"); + CompilationUnit p2 = JavaParser.parse("class Y { }"); + assertFalse(NoCommentEqualsVisitor.equals(p1, p2)); + } +} \ No newline at end of file diff --git a/javaparser-testing/src/test/java/com/github/javaparser/ast/visitor/NoCommentHashCodeVisitorTest.java b/javaparser-testing/src/test/java/com/github/javaparser/ast/visitor/NoCommentHashCodeVisitorTest.java new file mode 100644 index 000000000..506566984 --- /dev/null +++ b/javaparser-testing/src/test/java/com/github/javaparser/ast/visitor/NoCommentHashCodeVisitorTest.java @@ -0,0 +1,34 @@ +package com.github.javaparser.ast.visitor; + +import com.github.javaparser.JavaParser; +import com.github.javaparser.ast.CompilationUnit; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; + +public class NoCommentHashCodeVisitorTest { + + @Test + public void testEquals() { + CompilationUnit p1 = JavaParser.parse("class X { }"); + CompilationUnit p2 = JavaParser.parse("class X { }"); + assertEquals(p1.hashCode(), p2.hashCode()); + } + + @Test + public void testEqualsWithDifferentComments() { + CompilationUnit p1 = JavaParser.parse("/* a */ class X { /** b */} //c"); + CompilationUnit p2 = JavaParser.parse("/* b */ class X { } //c"); + assertEquals(p1.hashCode(), p2.hashCode()); + assertEquals(p1.getComments().size(), 3); + assertEquals(p2.getComments().size(), 2); + } + + @Test + public void testNotEquals() { + CompilationUnit p1 = JavaParser.parse("class X { }"); + CompilationUnit p2 = JavaParser.parse("class Y { }"); + assertNotEquals(p1.hashCode(), p2.hashCode()); + } +} \ No newline at end of file -- cgit v1.2.3