Skip to content

Commit

Permalink
Added more test cases for modifying annotations on a method declaration
Browse files Browse the repository at this point in the history
  • Loading branch information
ThLeu committed May 11, 2018
1 parent 3d25e5a commit 28da957
Showing 1 changed file with 55 additions and 2 deletions.
Expand Up @@ -22,8 +22,10 @@
package com.github.javaparser.printer.lexicalpreservation.transformations.ast.body;

import com.github.javaparser.ast.Modifier;
import com.github.javaparser.ast.NodeList;
import com.github.javaparser.ast.body.MethodDeclaration;
import com.github.javaparser.ast.body.Parameter;
import com.github.javaparser.ast.expr.MarkerAnnotationExpr;
import com.github.javaparser.ast.expr.SimpleName;
import com.github.javaparser.ast.expr.StringLiteralExpr;
import com.github.javaparser.ast.type.ArrayType;
Expand Down Expand Up @@ -124,14 +126,15 @@ public void replacingOnlyParameter() {

// Annotations
@Test
public void annotationIndentation() {
public void addingToExistingAnnotations() {
considerCode(
"class X {" + EOL +
" @Test" + EOL +
" public void testCase() {" + EOL +
" }" + EOL +
"}" + EOL
);

cu.getType(0).getMethods().get(0).addSingleMemberAnnotation(
"org.junit.Ignore",
new StringLiteralExpr("flaky test"));
Expand All @@ -145,4 +148,54 @@ public void annotationIndentation() {
"}\n", result);
}

}
@Test
public void addingAnnotationsNoModifiers() {
considerCode(
"class X {" + EOL +
" void testCase() {" + EOL +
" }" + EOL +
"}" + EOL
);

cu.getType(0).getMethods().get(0).addMarkerAnnotation("Test");
cu.getType(0).getMethods().get(0).addMarkerAnnotation("Override");

String result = LexicalPreservingPrinter.print(cu.findCompilationUnit().get());
assertEqualsNoEol("class X {\n" +
" @Test\n" +
" @Override\n" +
" void testCase() {\n" +
" }\n" +
"}\n", result);
}

@Test
public void replacingAnnotations() {
considerCode(
"class X {" + EOL +
" @Override" + EOL +
" public void testCase() {" + EOL +
" }" + EOL +
"}" + EOL
);

cu.getType(0).getMethods().get(0).setAnnotations(new NodeList<>(new MarkerAnnotationExpr("Test")));

String result = LexicalPreservingPrinter.print(cu.findCompilationUnit().get());
assertEqualsNoEol(
"class X {\n" +
" @Test\n" +
" public void testCase() {\n" +
" }\n" +
"}\n", result);
}

@Test
public void addingAnnotationsShort() {
MethodDeclaration it = consider("void testMethod(){}");
it.addMarkerAnnotation("Override");
assertTransformedToString(
"@Override" + EOL +
"void testMethod(){}", it);
}
}

0 comments on commit 28da957

Please sign in to comment.