aboutsummaryrefslogtreecommitdiff
path: root/javaparser-testing/src/test/java/com/github/javaparser/ast/body/MethodDeclarationTest.java
diff options
context:
space:
mode:
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.java87
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());
+ }
+}