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());
     }

Reply via email to