This is an automated email from the ASF dual-hosted git repository.
sgoeschl pushed a commit to branch FREEMARKER-188
in repository https://gitbox.apache.org/repos/asf/freemarker-generator.git
The following commit(s) were added to refs/heads/FREEMARKER-188 by this push:
new c0a68ff FREEMARKER-188 Add more tests
c0a68ff is described below
commit c0a68ff90990d4ffee9e9dc1118f4b36ae7beeb5
Author: Siegfried Goeschl <[email protected]>
AuthorDate: Sun Sep 26 23:55:31 2021 +0200
FREEMARKER-188 Add more tests
---
.../DataSourceSeedingOutputGeneratorTest.java | 64 ++++++++++++++++------
.../config/TemplateSeedingOutputGeneratorTest.java | 13 ++++-
.../tools/commonsexec/CommonsExecToolTest.java | 22 ++++++++
3 files changed, 81 insertions(+), 18 deletions(-)
diff --git
a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/DataSourceSeedingOutputGeneratorTest.java
b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/DataSourceSeedingOutputGeneratorTest.java
index b1876e6..62d3217 100644
---
a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/DataSourceSeedingOutputGeneratorTest.java
+++
b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/DataSourceSeedingOutputGeneratorTest.java
@@ -12,36 +12,35 @@ import static org.junit.Assert.assertEquals;
public class DataSourceSeedingOutputGeneratorTest extends
AbstractOutputGeneratorTest {
+ /**
+ * Edge case - a single data source shall create a single output generator
+ */
@Test
- public void shouldCreateOutputGeneratorForAllDataSourcesInDirectory() {
+ public void shouldCreateOutputGeneratorForSingleDataSource() {
final OutputGeneratorDefinition outputGeneratorDefinition =
outputGeneratorDefinition();
outputGeneratorDefinition.templateSourceDefinition =
templateSourceDefinition(ANY_TEMPLATE);
outputGeneratorDefinition.templateOutputDefinition =
templateOutputDirectoryDefinition(ANY_OUTPUT_DIRECTORY_NAME);
- outputGeneratorDefinition.dataSourceDefinition =
dataSourceDefinition(ANY_DATASOURCE_DIRECTORY);
+ outputGeneratorDefinition.dataSourceDefinition =
dataSourceDefinition(ANY_DATASOURCE_FILE_01);
outputGeneratorDefinition.outputSeedDefinition =
outputSeedDefinition(SeedType.DATASOURCE);
outputGeneratorDefinition.outputMapperDefinition =
outputMapperDefinition("*.txt");
final Settings settings = settings(outputGeneratorDefinition);
final OutputGeneratorsSupplier outputGeneratorsSupplier = new
OutputGeneratorsSupplier(settings);
final List<OutputGenerator> outputGenerators =
outputGeneratorsSupplier.get();
- final OutputGenerator outputGenerator_01 = outputGenerators.get(0);
- final OutputGenerator outputGenerator_02 = outputGenerators.get(1);
+ final OutputGenerator outputGenerator = outputGenerators.get(0);
- assertEquals(2, outputGenerators.size());
+ assertEquals(1, outputGenerators.size());
- assertEquals(1, outputGenerator_01.getDataSources().size());
- assertEquals(OutputGenerator.SeedType.DATASOURCE,
outputGenerator_01.getSeedType());
- assertEquals(ANY_TEMPLATE_NAME,
outputGenerator_01.getTemplateSource().getName());
- assertEquals(new File(ANY_OUTPUT_DIRECTORY_NAME, "environments.txt"),
outputGenerator_01.getTemplateOutput().getFile());
- assertEquals("environments.json",
outputGenerator_01.getDataSources().get(0).getFileName());
-
- assertEquals(1, outputGenerator_02.getDataSources().size());
- assertEquals(OutputGenerator.SeedType.DATASOURCE,
outputGenerator_02.getSeedType());
- assertEquals(ANY_TEMPLATE_NAME,
outputGenerator_02.getTemplateSource().getName());
- assertEquals(new File(ANY_OUTPUT_DIRECTORY_NAME, "list.txt"),
outputGenerator_02.getTemplateOutput().getFile());
- assertEquals("list.json",
outputGenerator_02.getDataSources().get(0).getFileName());
+ assertEquals(1, outputGenerator.getDataSources().size());
+ assertEquals(OutputGenerator.SeedType.DATASOURCE,
outputGenerator.getSeedType());
+ assertEquals(ANY_TEMPLATE_NAME,
outputGenerator.getTemplateSource().getName());
+ assertEquals(new File(ANY_OUTPUT_DIRECTORY_NAME, "environments.txt"),
outputGenerator.getTemplateOutput().getFile());
+ assertEquals("environments.json",
outputGenerator.getDataSources().get(0).getFileName());
}
+ /**
+ * N given data sources -> N output generators
+ */
@Test
public void shouldCreateOutputGeneratorForEachDataSource() {
final OutputGeneratorDefinition outputGeneratorDefinition_01 =
outputGeneratorDefinition();
@@ -79,4 +78,37 @@ public class DataSourceSeedingOutputGeneratorTest extends
AbstractOutputGenerato
assertEquals(new File(ANY_OUTPUT_DIRECTORY_NAME, "list.txt"),
outputGenerator_02.getTemplateOutput().getFile());
assertEquals("list.json",
outputGenerator_02.getDataSources().get(0).getFileName());
}
+
+ /**
+ * N file data sources in a given directory -> N output generators
+ */
+ @Test
+ public void shouldCreateOutputGeneratorsForAllDataSourcesInDirectory() {
+ final OutputGeneratorDefinition outputGeneratorDefinition =
outputGeneratorDefinition();
+ outputGeneratorDefinition.templateSourceDefinition =
templateSourceDefinition(ANY_TEMPLATE);
+ outputGeneratorDefinition.templateOutputDefinition =
templateOutputDirectoryDefinition(ANY_OUTPUT_DIRECTORY_NAME);
+ outputGeneratorDefinition.dataSourceDefinition =
dataSourceDefinition(ANY_DATASOURCE_DIRECTORY);
+ outputGeneratorDefinition.outputSeedDefinition =
outputSeedDefinition(SeedType.DATASOURCE);
+ outputGeneratorDefinition.outputMapperDefinition =
outputMapperDefinition("*.txt");
+ final Settings settings = settings(outputGeneratorDefinition);
+ final OutputGeneratorsSupplier outputGeneratorsSupplier = new
OutputGeneratorsSupplier(settings);
+
+ final List<OutputGenerator> outputGenerators =
outputGeneratorsSupplier.get();
+ final OutputGenerator outputGenerator_01 = outputGenerators.get(0);
+ final OutputGenerator outputGenerator_02 = outputGenerators.get(1);
+
+ assertEquals(2, outputGenerators.size());
+
+ assertEquals(1, outputGenerator_01.getDataSources().size());
+ assertEquals(OutputGenerator.SeedType.DATASOURCE,
outputGenerator_01.getSeedType());
+ assertEquals(ANY_TEMPLATE_NAME,
outputGenerator_01.getTemplateSource().getName());
+ assertEquals(new File(ANY_OUTPUT_DIRECTORY_NAME, "environments.txt"),
outputGenerator_01.getTemplateOutput().getFile());
+ assertEquals("environments.json",
outputGenerator_01.getDataSources().get(0).getFileName());
+
+ assertEquals(1, outputGenerator_02.getDataSources().size());
+ assertEquals(OutputGenerator.SeedType.DATASOURCE,
outputGenerator_02.getSeedType());
+ assertEquals(ANY_TEMPLATE_NAME,
outputGenerator_02.getTemplateSource().getName());
+ assertEquals(new File(ANY_OUTPUT_DIRECTORY_NAME, "list.txt"),
outputGenerator_02.getTemplateOutput().getFile());
+ assertEquals("list.json",
outputGenerator_02.getDataSources().get(0).getFileName());
+ }
}
diff --git
a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/TemplateSeedingOutputGeneratorTest.java
b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/TemplateSeedingOutputGeneratorTest.java
index 3316c44..a21ec86 100644
---
a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/TemplateSeedingOutputGeneratorTest.java
+++
b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/TemplateSeedingOutputGeneratorTest.java
@@ -12,6 +12,9 @@ import static org.junit.Assert.assertEquals;
public class TemplateSeedingOutputGeneratorTest extends
AbstractOutputGeneratorTest {
+ /**
+ * One data source -> one output generator
+ */
@Test
public void shouldCreateSingleOutputGeneratorForMultipleDataSources() {
final OutputGeneratorDefinition outputGeneratorDefinition =
outputGeneratorDefinition();
@@ -35,8 +38,11 @@ public class TemplateSeedingOutputGeneratorTest extends
AbstractOutputGeneratorT
assertEquals("list.json",
outputGenerator.getDataSources().get(1).getFileName());
}
+ /**
+ * N file data sources for a given directory -> one output generator
+ */
@Test
- public void
shouldCreateSingleOutputGeneratorForAllDataSourcesInDirectory() {
+ public void
shouldCreateSingleOutputGeneratorForMultipleDataSourcesInDirectory() {
final OutputGeneratorDefinition outputGeneratorDefinition =
outputGeneratorDefinition();
outputGeneratorDefinition.templateSourceDefinition =
templateSourceDefinition(ANY_TEMPLATE);
outputGeneratorDefinition.templateOutputDefinition =
templateOutputDirectoryDefinition(ANY_OUTPUT_DIRECTORY_NAME);
@@ -58,8 +64,11 @@ public class TemplateSeedingOutputGeneratorTest extends
AbstractOutputGeneratorT
assertEquals("list.json",
outputGenerator.getDataSources().get(1).getFileName());
}
+ /**
+ * N output generator definitions -> N output generators
+ */
@Test
- public void shouldCreateMultipleOutputGenerators() {
+ public void shouldCreateOutputGeneratorForEachOutputGeneratorDefinition() {
final OutputGeneratorDefinition outputGeneratorDefinition_01 =
outputGeneratorDefinition();
outputGeneratorDefinition_01.templateSourceDefinition =
templateSourceDefinition(ANY_TEMPLATE);
outputGeneratorDefinition_01.templateOutputDefinition =
templateOutputDirectoryDefinition(ANY_OUTPUT_DIRECTORY_NAME);
diff --git
a/freemarker-generator-tools/src/test/java/org/apache/freemarker/generator/tools/commonsexec/CommonsExecToolTest.java
b/freemarker-generator-tools/src/test/java/org/apache/freemarker/generator/tools/commonsexec/CommonsExecToolTest.java
index 8f30444..495b8a4 100644
---
a/freemarker-generator-tools/src/test/java/org/apache/freemarker/generator/tools/commonsexec/CommonsExecToolTest.java
+++
b/freemarker-generator-tools/src/test/java/org/apache/freemarker/generator/tools/commonsexec/CommonsExecToolTest.java
@@ -18,11 +18,33 @@ package org.apache.freemarker.generator.tools.commonsexec;
import org.junit.Test;
+import java.util.Collections;
+
+import static junit.framework.TestCase.assertEquals;
import static junit.framework.TestCase.assertFalse;
public class CommonsExecToolTest {
@Test
+ public void shouldExecuteCommandLine() {
+ final String output = commonsExecTool().execute("echo Hello World!");
+
+ assertEquals("Hello World!\n", output);
+ }
+
+ @Test
+ public void shouldExecuteCommandLineArgs() {
+ final String output = commonsExecTool().execute("echo",
Collections.singletonList("Hello World!"));
+
+ assertEquals("\"Hello World!\"\n", output);
+ }
+
+ @Test(expected = RuntimeException.class)
+ public void shouldThrowExceptionForInvalidCommand() {
+ commonsExecTool().execute("does-not-exist.bat");
+ }
+
+ @Test
public void shouldReturnDescription() {
assertFalse(commonsExecTool().toString().isEmpty());
}