This is an automated email from the ASF dual-hosted git repository.
sgoeschl pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/freemarker-generator.git
The following commit(s) were added to refs/heads/master by this push:
new 5bb2ca6 Improve examples, unit tests and documentation
5bb2ca6 is described below
commit 5bb2ca670d0ef7efb16a0f7ed68fe088e1a405e9
Author: Siegfried Goeschl <[email protected]>
AuthorDate: Sun May 3 12:57:55 2020 +0200
Improve examples, unit tests and documentation
---
freemarker-generator-cli/README.md | 2 +
.../org/apache/freemarker/generator/cli/Main.java | 6 +-
.../freemarker/generator/cli/ExamplesTest.java | 2 +
.../freemarker/generator/cli/PicocliTest.java | 71 +++++++++++++---------
4 files changed, 50 insertions(+), 31 deletions(-)
diff --git a/freemarker-generator-cli/README.md
b/freemarker-generator-cli/README.md
index bd9ec0e..587dadb 100644
--- a/freemarker-generator-cli/README.md
+++ b/freemarker-generator-cli/README.md
@@ -1116,9 +1116,11 @@ Sometimes we simply need to transform a JSON into an
equivalent YAML or the othe
```
> ./bin/freemarker-cli -t templates/yaml/json/transform.ftl
> site/sample/yaml/swagger-spec.yaml
> ./bin/freemarker-cli -i
> '${GsonTool.toJson(YamlTool.parse(DataSources.get(0)))}'
> site/sample/yaml/swagger-spec.yaml
+> ./bin/freemarker-cli -i '${GsonTool.toJson(yaml)}' -m
yaml=site/sample/yaml/swagger-spec.yaml
> ./bin/freemarker-cli -t templates/json/yaml/transform.ftl
> site/sample/json/swagger-spec.json
> ./bin/freemarker-cli -i
> '${YamlTool.toYaml(GsonTool.parse(DataSources.get(0)))}'
> site/sample/json/swagger-spec.json
+> ./bin/freemarker-cli -i '${YamlTool.toYaml(json)}' -m
json=site/sample/json/swagger-spec.json
```
## 6.16 Using Advanced FreeMarker Features
diff --git
a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/Main.java
b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/Main.java
index fa2cd12..eda635e 100644
---
a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/Main.java
+++
b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/Main.java
@@ -60,12 +60,12 @@ public class Main implements Callable<Integer> {
@ArgGroup(multiplicity = "1")
TemplateSourceOptions templateSourceOptions;
- static final class TemplateSourceOptions {
+ public static final class TemplateSourceOptions {
@Option(names = { "-t", "--template" }, description = "FreeMarker
template to render")
- private String template;
+ public String template;
@Option(names = { "-i", "--interactive" }, description = "Interactive
FreeMarker template")
- private String interactiveTemplate;
+ public String interactiveTemplate;
}
@Option(names = { "-b", "--basedir" }, description = "Optional template
base directory")
diff --git
a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/ExamplesTest.java
b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/ExamplesTest.java
index 147a2d7..fedc66c 100644
---
a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/ExamplesTest.java
+++
b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/ExamplesTest.java
@@ -108,7 +108,9 @@ public class ExamplesTest extends AbstractMainTest {
assertValid(execute("-i
${XmlTool.parse(DataSources.first)[\"recipients/person[1]/name\"]}
site/sample/xml/recipients.xml"));
assertValid(execute("-i
${JsoupTool.parse(DataSources.first).select(\"a\")[0]}
site/sample/html/dependencies.html"));
assertValid(execute("-i
${GsonTool.toJson(YamlTool.parse(DataSources.get(0)))}
site/sample/yaml/swagger-spec.yaml"));
+ assertValid(execute("-i ${GsonTool.toJson(yaml)} -m
yaml=site/sample/yaml/swagger-spec.yaml"));
assertValid(execute("-i
${YamlTool.toYaml(GsonTool.parse(DataSources.get(0)))}
site/sample/json/swagger-spec.json"));
+ assertValid(execute("-i ${YamlTool.toYaml(json)} -m
json=site/sample/json/swagger-spec.json"));
}
@Test
diff --git
a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/PicocliTest.java
b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/PicocliTest.java
index d465fd0..57f2844 100644
---
a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/PicocliTest.java
+++
b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/PicocliTest.java
@@ -24,42 +24,43 @@ import static org.junit.Assert.assertNull;
public class PicocliTest {
- private static final String TEMPLATE = "template.ftl";
+ private static final String ANY_TEMPLATE = "any.ftl";
+ private static final String OTHER_TEMPLATE = "other.ftl";
+ private static final String INTERACTIVE_TEMPLATE = "interactive-template";
private static final String ANY_FILE = "users.csv";
- private static final String ANY_NAMED_FILE = "users=users.csv";
private static final String OTHER_FILE = "transctions.csv";
private static final String ANY_FILE_URI = "file:///users.csv";
private static final String OTHER_FILE_URI = "file:///transctions.csv";
@Test
- public void testSinglePositionalParameter() {
- assertEquals(ANY_FILE_URI, parse("-t", TEMPLATE,
ANY_FILE_URI).sources.get(0));
- assertNull(ANY_FILE, parse("-t", TEMPLATE, ANY_FILE_URI).dataSources);
+ public void shouldParseSinglePositionalParameter() {
+ assertEquals(ANY_FILE_URI, parse("-t", ANY_TEMPLATE,
ANY_FILE_URI).sources.get(0));
+ assertNull(ANY_FILE, parse("-t", ANY_TEMPLATE,
ANY_FILE_URI).dataSources);
}
@Test
- public void testMultiplePositionalParameter() {
- assertEquals(ANY_FILE, parse("-t", TEMPLATE, ANY_FILE,
OTHER_FILE).sources.get(0));
- assertEquals(OTHER_FILE, parse("-t", TEMPLATE, ANY_FILE,
OTHER_FILE).sources.get(1));
+ public void shouldParseMultiplePositionalParameter() {
+ assertEquals(ANY_FILE, parse("-t", ANY_TEMPLATE, ANY_FILE,
OTHER_FILE).sources.get(0));
+ assertEquals(OTHER_FILE, parse("-t", ANY_TEMPLATE, ANY_FILE,
OTHER_FILE).sources.get(1));
- assertEquals(ANY_FILE, parse("-t", TEMPLATE, ANY_FILE,
OTHER_FILE_URI).sources.get(0));
- assertEquals(OTHER_FILE_URI, parse("-t", TEMPLATE, ANY_FILE,
OTHER_FILE_URI).sources.get(1));
+ assertEquals(ANY_FILE, parse("-t", ANY_TEMPLATE, ANY_FILE,
OTHER_FILE_URI).sources.get(0));
+ assertEquals(OTHER_FILE_URI, parse("-t", ANY_TEMPLATE, ANY_FILE,
OTHER_FILE_URI).sources.get(1));
- assertEquals(ANY_FILE_URI, parse("-t", TEMPLATE, ANY_FILE_URI,
OTHER_FILE_URI).sources.get(0));
- assertEquals(OTHER_FILE_URI, parse("-t", TEMPLATE, ANY_FILE_URI,
OTHER_FILE_URI).sources.get(1));
+ assertEquals(ANY_FILE_URI, parse("-t", ANY_TEMPLATE, ANY_FILE_URI,
OTHER_FILE_URI).sources.get(0));
+ assertEquals(OTHER_FILE_URI, parse("-t", ANY_TEMPLATE, ANY_FILE_URI,
OTHER_FILE_URI).sources.get(1));
}
@Test
- public void testSingleNamedDataSource() {
- assertEquals(ANY_FILE, parse("-t", TEMPLATE, ANY_FILE).sources.get(0));
- assertEquals(ANY_FILE, parse("-t", TEMPLATE, "-s",
ANY_FILE).dataSources.get(0));
- assertEquals(ANY_FILE, parse("-t", TEMPLATE, "--data-source",
ANY_FILE).dataSources.get(0));
- assertEquals(ANY_FILE_URI, parse("-t", TEMPLATE, "--data-source",
ANY_FILE_URI).dataSources.get(0));
+ public void shouldParseSingleNamedDataSource() {
+ assertEquals(ANY_FILE, parse("-t", ANY_TEMPLATE,
ANY_FILE).sources.get(0));
+ assertEquals(ANY_FILE, parse("-t", ANY_TEMPLATE, "-s",
ANY_FILE).dataSources.get(0));
+ assertEquals(ANY_FILE, parse("-t", ANY_TEMPLATE, "--data-source",
ANY_FILE).dataSources.get(0));
+ assertEquals(ANY_FILE_URI, parse("-t", ANY_TEMPLATE, "--data-source",
ANY_FILE_URI).dataSources.get(0));
}
@Test
- public void testMultipleNamedDataSource() {
- final Main main = parse("-t", TEMPLATE, "-s", ANY_FILE,
"--data-source", OTHER_FILE_URI);
+ public void shouldParseMultipleNamedDataSource() {
+ final Main main = parse("-t", ANY_TEMPLATE, "-s", ANY_FILE,
"--data-source", OTHER_FILE_URI);
assertEquals(ANY_FILE, main.dataSources.get(0));
assertEquals(OTHER_FILE_URI, main.dataSources.get(1));
@@ -67,14 +68,14 @@ public class PicocliTest {
}
@Test
- public void testSingleDataModel() {
- assertEquals(ANY_FILE, parse("-t", TEMPLATE, "-m",
ANY_FILE).dataModels.get(0));
- assertEquals(ANY_FILE, parse("-t", TEMPLATE, "--data-model",
ANY_FILE).dataModels.get(0));
+ public void shouldParseSingleDataModel() {
+ assertEquals(ANY_FILE, parse("-t", ANY_TEMPLATE, "-m",
ANY_FILE).dataModels.get(0));
+ assertEquals(ANY_FILE, parse("-t", ANY_TEMPLATE, "--data-model",
ANY_FILE).dataModels.get(0));
}
@Test
- public void testMultipleDataModels() {
- final Main main = parse("-t", TEMPLATE, "-m", ANY_FILE,
"--data-model", OTHER_FILE_URI);
+ public void shouldParseMultipleDataModels() {
+ final Main main = parse("-t", ANY_TEMPLATE, "-m", ANY_FILE,
"--data-model", OTHER_FILE_URI);
assertEquals(ANY_FILE, main.dataModels.get(0));
assertEquals(OTHER_FILE_URI, main.dataModels.get(1));
@@ -82,20 +83,34 @@ public class PicocliTest {
}
@Test
- public void testSingleParameter() {
- final Main main = parse("-t", TEMPLATE, "-P", "name:group=value");
+ public void shouldParseSingleParameter() {
+ final Main main = parse("-t", ANY_TEMPLATE, "-P", "name:group=value");
assertEquals("value", main.parameters.get("name:group"));
}
@Test
- public void testMultipleParameters() {
- final Main main = parse("-t", TEMPLATE, "-P", "name1:group=value1",
"-P", "name2:group=value2");
+ public void shouldParseMultipleParameters() {
+ final Main main = parse("-t", ANY_TEMPLATE, "-P",
"name1:group=value1", "-P", "name2:group=value2");
assertEquals("value1", main.parameters.get("name1:group"));
assertEquals("value2", main.parameters.get("name2:group"));
}
+ @Test
+ public void shouldParseSingleTemplate() {
+ final Main main = parse("-t", ANY_TEMPLATE);
+
+ assertEquals(ANY_TEMPLATE, main.templateSourceOptions.template);
+ }
+
+ @Test
+ public void shouldParseInteractiveTemplate() {
+ final Main main = parse("-i", INTERACTIVE_TEMPLATE);
+
+ assertEquals(INTERACTIVE_TEMPLATE,
main.templateSourceOptions.interactiveTemplate);
+ }
+
private static Main parse(String... args) {
final Main main = new Main();
new CommandLine(main).parseArgs(args);