Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJayaprakash Arthanareeswaran2013-04-04 10:06:38 +0000
committerJayaprakash Arthanareeswaran2013-04-04 10:09:13 +0000
commit91c6ddff6bd7fe61320d5046ec5ff027fe20fd88 (patch)
tree7235b02db314c8ff3a771cabdf186dfbd07a9023
parent4ec31f2318860628c1e1a1e762dba2d5b54e8d3c (diff)
downloadeclipse.jdt.core-91c6ddff6bd7fe61320d5046ec5ff027fe20fd88.tar.gz
eclipse.jdt.core-91c6ddff6bd7fe61320d5046ec5ff027fe20fd88.tar.xz
eclipse.jdt.core-91c6ddff6bd7fe61320d5046ec5ff027fe20fd88.zip
Fix for bug 403985 - Adding new regression test
-rw-r--r--org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingMethodDeclTest.java63
-rw-r--r--org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingTypeDeclTest.java1
2 files changed, 62 insertions, 2 deletions
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingMethodDeclTest.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingMethodDeclTest.java
index 0961e993ab..2e63c5026c 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingMethodDeclTest.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingMethodDeclTest.java
@@ -26,6 +26,7 @@ import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IPackageFragment;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.dom.*;
+import org.eclipse.jdt.core.dom.Modifier.ModifierKeyword;
import org.eclipse.jdt.core.dom.rewrite.ASTRewrite;
import org.eclipse.jdt.core.dom.rewrite.ListRewrite;
import org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants;
@@ -3584,5 +3585,65 @@ public class ASTRewritingMethodDeclTest extends ASTRewritingTest {
buf.append("}\n");
assertEqualString(preview, buf.toString());
}
-
+ // https://bugs.eclipse.org/bugs/show_bug.cgi?id=403985
+ public void testBug403985_since_8() throws Exception {
+ String contents =
+ "public interface X {\n" +
+ " static void foo(){}\n" +
+ " public default void foo(int i){}\n" +
+ " public default int foo2(int i) { return 0;}\n" +
+ " public void foo3(int i);\n" +
+ " public default int foo4(int i) { return 0;}\n" +
+ "}\n";
+ IPackageFragment pack1= this.sourceFolder.createPackageFragment("test1", false, null);
+ ICompilationUnit cu= pack1.createCompilationUnit("X.java", contents, false, null);
+ CompilationUnit astRoot= createAST(cu);
+ AST ast = astRoot.getAST();
+ ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());
+ TypeDeclaration type= findTypeDeclaration(astRoot, "X");
+ MethodDeclaration[] methods = type.getMethods();
+ assertEquals("Incorrect no of methods", 5, methods.length);
+ MethodDeclaration method = methods[0];
+ { // Change default method to static and vice versa
+ ListRewrite listRewrite = rewrite.getListRewrite(method, MethodDeclaration.MODIFIERS2_PROPERTY);
+ ASTNode newMod = ast.newModifier(ModifierKeyword.DEFAULT_KEYWORD);
+ listRewrite.replace((ASTNode) method.modifiers().get(0), newMod, null);
+
+ method = methods[1];
+ listRewrite = rewrite.getListRewrite(method, MethodDeclaration.MODIFIERS2_PROPERTY);
+ newMod = ast.newModifier(ModifierKeyword.STATIC_KEYWORD);
+ listRewrite.replace((ASTNode) method.modifiers().get(1), newMod, null);
+ }
+ { // Remove default and the body
+ method = methods[2];
+ ListRewrite listRewrite = rewrite.getListRewrite(method, MethodDeclaration.MODIFIERS2_PROPERTY);
+ listRewrite.remove((ASTNode) method.modifiers().get(1), null);
+ rewrite.set(method, MethodDeclaration.BODY_PROPERTY, null, null);
+ }
+ { // Add a default and body
+ method = methods[3];
+ ListRewrite listRewrite = rewrite.getListRewrite(method, MethodDeclaration.MODIFIERS2_PROPERTY);
+ ASTNode newMod = ast.newModifier(ModifierKeyword.DEFAULT_KEYWORD);
+ listRewrite.insertAt(newMod, 1, null);
+ Block newBlock = ast.newBlock();
+ rewrite.set(method, MethodDeclaration.BODY_PROPERTY, newBlock, null);
+ }
+ { // Alter parameters for a default method
+ method = methods[4];
+ ListRewrite listRewrite = rewrite.getListRewrite(method, MethodDeclaration.PARAMETERS_PROPERTY);
+ listRewrite.remove((ASTNode) method.parameters().get(0), null);
+ listRewrite = rewrite.getListRewrite(method, MethodDeclaration.MODIFIERS2_PROPERTY);
+ listRewrite.remove((ASTNode) method.modifiers().get(0), null);
+ }
+ String preview = evaluateRewrite(cu, rewrite);
+ contents =
+ "public interface X {\n" +
+ " default void foo(){}\n" +
+ " public static void foo(int i){}\n" +
+ " public int foo2(int i);\n" +
+ " public default void foo3(int i) {\n }\n" +
+ " default int foo4() { return 0;}\n" +
+ "}\n";
+ assertEqualString(preview, contents);
+ }
}
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingTypeDeclTest.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingTypeDeclTest.java
index 546a5cbf93..fb83aea60d 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingTypeDeclTest.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingTypeDeclTest.java
@@ -1929,5 +1929,4 @@ public class ASTRewritingTypeDeclTest extends ASTRewritingTest {
assertEqualString(preview, buf.toString());
}
-
}

Back to the top