diff options
author | Florian Enner <florian@hebirobotics.com> | 2020-01-04 18:10:32 +0100 |
---|---|---|
committer | Egor Andreevich <egor@squareup.com> | 2020-01-04 12:10:32 -0500 |
commit | 25d19845b866c04a2fb3e11ce3d43ccb2e7b98cd (patch) | |
tree | 2c753f13b9d5b62b2c99c58f426e722c25dabe4b /src/test/java/com/squareup | |
parent | 3d65852a482185e464c4986b862394691ac197da (diff) | |
download | javapoet-25d19845b866c04a2fb3e11ce3d43ccb2e7b98cd.tar.gz |
added convenience overloads for code blocks in control flow (#752)
* added convenience overloads for code blocks in control flow
* added javadoc and test
* added test for do while block
* fixed continuation space count
Diffstat (limited to 'src/test/java/com/squareup')
-rw-r--r-- | src/test/java/com/squareup/javapoet/MethodSpecTest.java | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/src/test/java/com/squareup/javapoet/MethodSpecTest.java b/src/test/java/com/squareup/javapoet/MethodSpecTest.java index 8704ec1..5d3a434 100644 --- a/src/test/java/com/squareup/javapoet/MethodSpecTest.java +++ b/src/test/java/com/squareup/javapoet/MethodSpecTest.java @@ -21,8 +21,9 @@ import java.io.IOException; import java.lang.annotation.ElementType; import java.lang.annotation.Target; import java.util.Arrays; -import java.util.Collection; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.concurrent.Callable; import java.util.concurrent.TimeoutException; import javax.lang.model.element.ExecutableElement; @@ -416,4 +417,47 @@ public final class MethodSpecTest { + " codeWithNoNewline();\n" + "}\n"); } + + @Test public void controlFlowWithNamedCodeBlocks() { + Map<String, Object> m = new HashMap<>(); + m.put("field", "valueField"); + m.put("threshold", "5"); + + MethodSpec methodSpec = MethodSpec.methodBuilder("method") + .beginControlFlow(named("if ($field:N > $threshold:L)", m)) + .nextControlFlow(named("else if ($field:N == $threshold:L)", m)) + .endControlFlow() + .build(); + + assertThat(methodSpec.toString()).isEqualTo("" + + "void method() {\n" + + " if (valueField > 5) {\n" + + " } else if (valueField == 5) {\n" + + " }\n" + + "}\n"); + } + + @Test public void doWhileWithNamedCodeBlocks() { + Map<String, Object> m = new HashMap<>(); + m.put("field", "valueField"); + m.put("threshold", "5"); + + MethodSpec methodSpec = MethodSpec.methodBuilder("method") + .beginControlFlow("do") + .addStatement(named("$field:N--", m)) + .endControlFlow(named("while ($field:N > $threshold:L)", m)) + .build(); + + assertThat(methodSpec.toString()).isEqualTo("" + + "void method() {\n" + + " do {\n" + + " valueField--;\n" + + " } while (valueField > 5);\n" + + "}\n"); + } + + private static CodeBlock named(String format, Map<String, ?> args){ + return CodeBlock.builder().addNamed(format, args).build(); + } + } |