aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/com/squareup
diff options
context:
space:
mode:
authorFlorian Enner <florian@hebirobotics.com>2020-01-04 18:10:32 +0100
committerEgor Andreevich <egor@squareup.com>2020-01-04 12:10:32 -0500
commit25d19845b866c04a2fb3e11ce3d43ccb2e7b98cd (patch)
tree2c753f13b9d5b62b2c99c58f426e722c25dabe4b /src/test/java/com/squareup
parent3d65852a482185e464c4986b862394691ac197da (diff)
downloadjavapoet-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.java46
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();
+ }
+
}