|
25 | 25 | importstaticcom.github.javaparser.ast.Modifier.Keyword.PUBLIC; |
26 | 26 | importstaticcom.github.javaparser.ast.Modifier.createModifierList; |
27 | 27 |
|
| 28 | +importcom.github.javaparser.ParserConfiguration; |
| 29 | +importcom.github.javaparser.StaticJavaParser; |
28 | 30 | importcom.github.javaparser.ast.NodeList; |
29 | 31 | importcom.github.javaparser.ast.body.ConstructorDeclaration; |
30 | 32 | importcom.github.javaparser.ast.body.Parameter; |
31 | 33 | importcom.github.javaparser.ast.expr.SimpleName; |
| 34 | +importcom.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt; |
32 | 35 | importcom.github.javaparser.ast.type.ArrayType; |
33 | 36 | importcom.github.javaparser.ast.type.PrimitiveType; |
34 | 37 | importcom.github.javaparser.printer.lexicalpreservation.AbstractLexicalPreservingTest; |
@@ -119,5 +122,32 @@ void replacingOnlyParameter() { |
119 | 122 |
|
120 | 123 | // Body |
121 | 124 |
|
| 125 | +@Test |
| 126 | +voidaddingConstructorInvocationAsSecondStatement() { |
| 127 | +ConstructorDeclarationcd =consider("public A() { int x; }"); |
| 128 | +cd.getBody().getStatements().add(newExplicitConstructorInvocationStmt().setThis(false)); |
| 129 | +assertTransformedToString("public A() { int x; super();" +System.lineSeparator() +"}",cd); |
| 130 | + } |
| 131 | + |
| 132 | +@Test |
| 133 | +voidmodifyingConstructorInvocationAsSecondStatement() { |
| 134 | +StaticJavaParser.getParserConfiguration().setLanguageLevel(ParserConfiguration.LanguageLevel.JAVA_25); |
| 135 | +ConstructorDeclarationcd =consider("public A() { int x; super(); }"); |
| 136 | +cd.getBody() |
| 137 | + .getStatements() |
| 138 | + .get(1) |
| 139 | + .asExplicitConstructorInvocationStmt() |
| 140 | + .setThis(true); |
| 141 | +assertTransformedToString("public A() { int x; this(); }",cd); |
| 142 | + } |
| 143 | + |
| 144 | +@Test |
| 145 | +voidremovingConstructorInvocationAsSecondStatement() { |
| 146 | +StaticJavaParser.getParserConfiguration().setLanguageLevel(ParserConfiguration.LanguageLevel.JAVA_25); |
| 147 | +ConstructorDeclarationcd =consider("public A() { int x; super(); }"); |
| 148 | +cd.getBody().getStatements().remove(1); |
| 149 | +assertTransformedToString("public A() { int x; }",cd); |
| 150 | + } |
| 151 | + |
122 | 152 | // Annotations |
123 | 153 | } |