diff options
Diffstat (limited to 'javaparser-testing/src/test/java/com/github/javaparser/ast/body/MethodDeclarationTest.java')
-rw-r--r-- | javaparser-testing/src/test/java/com/github/javaparser/ast/body/MethodDeclarationTest.java | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/javaparser-testing/src/test/java/com/github/javaparser/ast/body/MethodDeclarationTest.java b/javaparser-testing/src/test/java/com/github/javaparser/ast/body/MethodDeclarationTest.java new file mode 100644 index 000000000..1cbab66ad --- /dev/null +++ b/javaparser-testing/src/test/java/com/github/javaparser/ast/body/MethodDeclarationTest.java @@ -0,0 +1,87 @@ +package com.github.javaparser.ast.body; + +import org.junit.Ignore; +import org.junit.Test; + +import static com.github.javaparser.JavaParser.parseBodyDeclaration; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; + +public class MethodDeclarationTest { + @Test + public void annotationsAllowedAfterGenericsAndBeforeReturnType() { + parseBodyDeclaration("public <T> @Abc String method() {return null;}"); + } + + @Test + public void annotationsAllowedBeforeGenerics() { + parseBodyDeclaration("public @Abc <T> String method() {return null;}"); + } + + @Test + public void explicitReceiverParameters1() { + MethodDeclaration method = parseBodyDeclaration("void InnerInner(@mypackage.Anno Source.@mypackage.Anno Inner Source.Inner.this) { }").asMethodDeclaration(); + assertEquals("Source.Inner.this", method.getReceiverParameter().get().getNameAsString()); + } + + @Test + public void explicitReceiverParameters2() { + MethodDeclaration method = parseBodyDeclaration("void x(A this) { }").asMethodDeclaration(); + assertEquals("this", method.getReceiverParameter().get().getNameAsString()); + } + + @Test + public void explicitReceiverParameters3() { + MethodDeclaration method = parseBodyDeclaration("void x(A that) { }").asMethodDeclaration(); + assertFalse(method.getReceiverParameter().isPresent()); + } + + @Test + public void signaturesEqual() { + MethodDeclaration method1 = parseBodyDeclaration("void x(String a) { }").asMethodDeclaration(); + MethodDeclaration method2 = parseBodyDeclaration("int x(String z);").asMethodDeclaration(); + assertEquals(method1.getSignature(), method2.getSignature()); + } + + @Test + public void signaturesEqualWhenGenericsDiffer() { + MethodDeclaration method1 = parseBodyDeclaration("void x(List<Long> a) { }").asMethodDeclaration(); + MethodDeclaration method2 = parseBodyDeclaration("void x(List<Integer> a) { }").asMethodDeclaration(); + assertEquals(method1.getSignature(), method2.getSignature()); + } + + @Test + public void signaturesEqualWhenAnnotationsDiffer() { + MethodDeclaration method1 = parseBodyDeclaration("void x(@A @B List a) { }").asMethodDeclaration(); + MethodDeclaration method2 = parseBodyDeclaration("void x(@C List a) { }").asMethodDeclaration(); + assertEquals(method1.getSignature(), method2.getSignature()); + } + + @Test + public void signaturesDifferentName() { + MethodDeclaration method1 = parseBodyDeclaration("void x(String a) { }").asMethodDeclaration(); + MethodDeclaration method2 = parseBodyDeclaration("int y(String z);").asMethodDeclaration(); + assertNotEquals(method1.getSignature(), method2.getSignature()); + } + + @Test + public void signaturesDifferentTypes() { + MethodDeclaration method1 = parseBodyDeclaration("void x(String a) { }").asMethodDeclaration(); + MethodDeclaration method2 = parseBodyDeclaration("int x(int z);").asMethodDeclaration(); + assertNotEquals(method1.getSignature(), method2.getSignature()); + } + + @Test + public void signaturesDifferentVarargs() { + MethodDeclaration method1 = parseBodyDeclaration("int x(int z);").asMethodDeclaration(); + MethodDeclaration method2 = parseBodyDeclaration("int x(int... z);").asMethodDeclaration(); + assertNotEquals(method1.getSignature(), method2.getSignature()); + } + + @Test + public void signatureToString() { + MethodDeclaration method1 = parseBodyDeclaration("int x(int z, String q);").asMethodDeclaration(); + assertEquals("x(int, String)", method1.getSignature().toString()); + } +} |