From 4f25c1feb3ff247f3d355227d3db96410212f195 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Fournier?= Date: Sun, 17 Sep 2017 22:54:40 +0200 Subject: [PATCH] Add test case for operations --- .../multifile/JavaMultifileVisitorTest.java | 51 +++++++--- .../testdata/MultifileVisitorTestData2.java | 92 ++++++++----------- 2 files changed, 80 insertions(+), 63 deletions(-) diff --git a/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/multifile/JavaMultifileVisitorTest.java b/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/multifile/JavaMultifileVisitorTest.java index bcf9a6f379..6c3a835627 100644 --- a/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/multifile/JavaMultifileVisitorTest.java +++ b/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/multifile/JavaMultifileVisitorTest.java @@ -18,8 +18,8 @@ import net.sourceforge.pmd.lang.java.ast.JavaParserVisitorAdapter; import net.sourceforge.pmd.lang.java.ast.JavaQualifiedName; import net.sourceforge.pmd.lang.java.multifile.signature.JavaFieldSigMask; import net.sourceforge.pmd.lang.java.multifile.signature.JavaOperationSigMask; +import net.sourceforge.pmd.lang.java.multifile.signature.JavaOperationSignature.Role; import net.sourceforge.pmd.lang.java.multifile.signature.JavaSignature.Visibility; -import net.sourceforge.pmd.lang.java.multifile.testdata.MultifileVisitorTestData; import net.sourceforge.pmd.lang.java.multifile.testdata.MultifileVisitorTestData2; /** @@ -44,7 +44,7 @@ public class JavaMultifileVisitorTest { @Test public void testOperationsAreThere() { - ASTCompilationUnit acu = parseAndVisitForClass(MultifileVisitorTestData.class); + ASTCompilationUnit acu = parseAndVisitForClass(MultifileVisitorTestData2.class); final ProjectMirror toplevel = PackageStats.INSTANCE; @@ -63,13 +63,13 @@ public class JavaMultifileVisitorTest { @Test public void testFieldsAreThere() { - parseAndVisitForClass(MultifileVisitorTestData.class); + parseAndVisitForClass(MultifileVisitorTestData2.class); final ProjectMirror toplevel = PackageStats.INSTANCE; final JavaFieldSigMask fieldSigMask = new JavaFieldSigMask(); - JavaQualifiedName clazz = JavaQualifiedName.ofClass(MultifileVisitorTestData.class); + JavaQualifiedName clazz = JavaQualifiedName.ofClass(MultifileVisitorTestData2.class); String[] fieldNames = {"x", "y", "z", "t"}; Visibility[] visibilities = {Visibility.PUBLIC, Visibility.PRIVATE, Visibility.PROTECTED, Visibility.PACKAGE}; @@ -81,27 +81,56 @@ public class JavaMultifileVisitorTest { } + @Test + public void testBothClassesOperationsAreThere() { + parseAndVisitForClass(MultifileVisitorTestData2.class); + parseAndVisitForClass(MultifileVisitorTestData2.class); + + final ProjectMirror toplevel = PackageStats.INSTANCE; + + final JavaOperationSigMask operationSigMask = new JavaOperationSigMask(); + + JavaQualifiedName clazz = JavaQualifiedName.ofClass(MultifileVisitorTestData2.class); + JavaQualifiedName clazz2 = JavaQualifiedName.ofClass(MultifileVisitorTestData2.class); + + String[] opNames = {"getX()", "getY()", "setX(String)", "setY(String)", + "mymethod1()", "mymethod2()", "mystatic1()", + "mystatic2(String)", "mystatic2(String, String)"}; + Role[] roles = {Role.GETTER_OR_SETTER, Role.GETTER_OR_SETTER, Role.GETTER_OR_SETTER, Role.GETTER_OR_SETTER, + Role.METHOD, Role.METHOD, Role.STATIC, Role.STATIC, Role.STATIC}; + + + for (int i = 0; i < opNames.length; i++) { + operationSigMask.restrictRolesTo(roles[i]); + JavaQualifiedName name1 = JavaQualifiedName.ofString(clazz.toString() + "#" + opNames[i]); + JavaQualifiedName name2 = JavaQualifiedName.ofString(clazz2.toString() + "#" + opNames[i]); + + assertTrue(toplevel.hasMatchingSig(name1, operationSigMask)); + assertTrue(toplevel.hasMatchingSig(name2, operationSigMask)); + } + } + + @Test public void testBothClassesFieldsAreThere() { - parseAndVisitForClass(MultifileVisitorTestData.class); + parseAndVisitForClass(MultifileVisitorTestData2.class); parseAndVisitForClass(MultifileVisitorTestData2.class); final ProjectMirror toplevel = PackageStats.INSTANCE; final JavaFieldSigMask fieldSigMask = new JavaFieldSigMask(); - JavaQualifiedName clazz = JavaQualifiedName.ofClass(MultifileVisitorTestData.class); + JavaQualifiedName clazz = JavaQualifiedName.ofClass(MultifileVisitorTestData2.class); JavaQualifiedName clazz2 = JavaQualifiedName.ofClass(MultifileVisitorTestData2.class); - String[] fieldNames1 = {"x", "y", "z", "t"}; - String[] fieldNames2 = {"x2", "y2", "z2", "t2"}; + String[] fieldNames = {"x", "y", "z", "t"}; Visibility[] visibilities = {Visibility.PUBLIC, Visibility.PRIVATE, Visibility.PROTECTED, Visibility.PACKAGE}; - for (int i = 0; i < fieldNames1.length; i++) { + for (int i = 0; i < fieldNames.length; i++) { fieldSigMask.restrictVisibilitiesTo(visibilities[i]); - assertTrue(toplevel.hasMatchingSig(clazz, fieldNames1[i], fieldSigMask)); - assertTrue(toplevel.hasMatchingSig(clazz2, fieldNames2[i], fieldSigMask)); + assertTrue(toplevel.hasMatchingSig(clazz, fieldNames[i], fieldSigMask)); + assertTrue(toplevel.hasMatchingSig(clazz2, fieldNames[i], fieldSigMask)); } } diff --git a/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/multifile/testdata/MultifileVisitorTestData2.java b/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/multifile/testdata/MultifileVisitorTestData2.java index 1ac12844ca..3c8b63a6bb 100644 --- a/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/multifile/testdata/MultifileVisitorTestData2.java +++ b/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/multifile/testdata/MultifileVisitorTestData2.java @@ -11,77 +11,65 @@ package net.sourceforge.pmd.lang.java.multifile.testdata; */ public class MultifileVisitorTestData2 { - public String x2; - protected String z2; - String t2; - private String y2; - + public String x; + private String y; + protected String z; + String t; public MultifileVisitorTestData2() { } - private MultifileVisitorTestData2(String x) { } + public String getX() { + return x; + } - public String getX2() { - return x2; + public String getY() { + return y; + } + + public void setX(String n) { + x = n; + } + + public void setY(String n) { + y = n; } - public String getY2() { - return y2; - } + public static class NestedClass { - - public void setX2(String n) { - x2 = n; - } - - - public void setY2(String n) { - y2 = n; - } - - - public void mymethod12() { - - } - - - private void mymethod22() { - - } - - - protected static void mystatic12() { - - } - - - private static void mystatic22(String k) { - - } - - - private static void mystatic22(String k, String l) { - - } - - - public static class NestedClass2 { - - public NestedClass2() { + public NestedClass() { } - - public void nestedMethod12() { + public void nestedMethod1() { } } + public void mymethod1() { + + } + + private void mymethod2() { + + } + + protected static void mystatic1() { + + } + + private static void mystatic2(String k) { + + } + + private static void mystatic2(String k, String l) { + + } + }