You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by sg...@apache.org on 2020/05/03 10:58:12 UTC
[freemarker-generator] branch experimental created (now fe6b50d)
This is an automated email from the ASF dual-hosted git repository.
sgoeschl pushed a change to branch experimental
in repository https://gitbox.apache.org/repos/asf/freemarker-generator.git.
at fe6b50d Improve examples, unit tests and documentation
This branch includes the following new commits:
new fe6b50d Improve examples, unit tests and documentation
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[freemarker-generator] 01/01: Improve examples,
unit tests and documentation
Posted by sg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
sgoeschl pushed a commit to branch experimental
in repository https://gitbox.apache.org/repos/asf/freemarker-generator.git
commit fe6b50d09a73edda68706ab856ec21e0f43ec214
Author: Siegfried Goeschl <si...@gmail.com>
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);