This is an automated email from the ASF dual-hosted git repository.
sgoeschl pushed a commit to branch FREEMARKER-156
in repository https://gitbox.apache.org/repos/asf/freemarker-generator.git
The following commit(s) were added to refs/heads/FREEMARKER-156 by this push:
new 35213dd FREEMARKER-156 [freemarker-generator] Migrate to Mockito
35213dd is described below
commit 35213ddb87ed2618804f75be181c1f50cd515d1c
Author: Siegfried Goeschl <[email protected]>
AuthorDate: Tue Jan 26 21:38:44 2021 +0100
FREEMARKER-156 [freemarker-generator] Migrate to Mockito
---
.../generator/base/util/PropertiesFactory.java | 13 ++++
.../generator/cli/config/SuppliersTest.java | 1 +
freemarker-generator-maven-plugin/pom.xml | 2 +-
.../generator/maven/ConfigurationSupplier.java | 72 ++++++++++++++++++++++
.../freemarker/generator/maven/FactoryUtil.java | 50 ---------------
.../freemarker/generator/maven/FreeMarkerMojo.java | 43 ++-----------
.../generator/maven/GeneratingFileVisitor.java | 5 +-
.../generator/maven/JsonPropertiesProvider.java | 1 -
.../generator/maven/OutputGenerator.java | 4 +-
.../maven/OutputGeneratorPropertiesProvider.java | 1 -
.../generator/maven/ConfigurationSupplierTest.java | 54 ++++++++++++++++
.../generator/maven/FreeMarkerMojoTest.java | 5 +-
.../generator/maven/GeneratingFileVisitorTest.java | 1 -
.../maven/JsonPropertiesProviderTest.java | 1 -
.../generator/maven/OutputGeneratorTest.java | 42 -------------
.../freemarker/generator/maven/UnitTestHelper.java | 18 ++++++
freemarker-generator-tools/pom.xml | 6 ++
pom.xml | 5 ++
18 files changed, 181 insertions(+), 143 deletions(-)
diff --git
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/util/PropertiesFactory.java
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/util/PropertiesFactory.java
index 8805150..b077cf3 100644
---
a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/util/PropertiesFactory.java
+++
b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/util/PropertiesFactory.java
@@ -16,14 +16,27 @@
*/
package org.apache.freemarker.generator.base.util;
+import java.io.File;
+import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.StringReader;
import java.util.Map;
import java.util.Properties;
+/**
+ * Various helper methods to load property files.
+ */
public class PropertiesFactory {
+ public static Properties create(File file) {
+ try (InputStream is = new FileInputStream(file)) {
+ return create(is);
+ } catch (IOException e) {
+ throw new RuntimeException("Failed to load properties file: " +
file.getAbsolutePath());
+ }
+ }
+
public static Properties create(InputStream is) {
try {
final Properties properties = new Properties();
diff --git
a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/SuppliersTest.java
b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/SuppliersTest.java
index c59c955..78b6d68 100644
---
a/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/SuppliersTest.java
+++
b/freemarker-generator-cli/src/test/java/org/apache/freemarker/generator/cli/config/SuppliersTest.java
@@ -141,6 +141,7 @@ public class SuppliersTest {
assertNotNull(outputGenerator.getTemplateOutput().getWriter());
assertNull(outputGenerator.getTemplateOutput().getFile());
}
+
private static String fixSeparators(String str) {
if (OperatingSystem.isWindows()) {
return FilenameUtils.separatorsToWindows(str);
diff --git a/freemarker-generator-maven-plugin/pom.xml
b/freemarker-generator-maven-plugin/pom.xml
index 67ef461..d1f9515 100644
--- a/freemarker-generator-maven-plugin/pom.xml
+++ b/freemarker-generator-maven-plugin/pom.xml
@@ -78,7 +78,7 @@
<dependency>
<groupId>org.eclipse.sisu</groupId>
<artifactId>org.eclipse.sisu.plexus</artifactId>
- <version>0.3.3</version>
+ <version>0.3.4</version>
<exclusions>
<exclusion>
<groupId>org.codehaus.plexus</groupId>
diff --git
a/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/ConfigurationSupplier.java
b/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/ConfigurationSupplier.java
new file mode 100644
index 0000000..ed44a3a
--- /dev/null
+++
b/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/ConfigurationSupplier.java
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.freemarker.generator.maven;
+
+import freemarker.cache.FileTemplateLoader;
+import freemarker.template.Configuration;
+import freemarker.template.Version;
+import org.apache.freemarker.generator.base.util.PropertiesFactory;
+import org.apache.freemarker.generator.base.util.Validate;
+
+import java.io.File;
+import java.util.Properties;
+import java.util.function.Supplier;
+
+import static java.util.Objects.requireNonNull;
+
+public class ConfigurationSupplier implements Supplier<Configuration> {
+
+ private final String freeMarkerVersion;
+ private final File templateDirectory;
+ private final File sourceDirectory;
+
+ public ConfigurationSupplier(String freeMarkerVersion, File
templateDirectory, File sourceDirectory) {
+ Validate.notEmpty(freeMarkerVersion, "freeMarkerVersion is required");
+ Validate.fileExists(templateDirectory, "Required template directory
does not exist");
+
+ this.freeMarkerVersion = requireNonNull(freeMarkerVersion);
+ this.templateDirectory = requireNonNull(templateDirectory);
+ this.sourceDirectory = requireNonNull(sourceDirectory);
+ }
+
+ @Override
+ public Configuration get() {
+ final Configuration configuration = new Configuration(new
Version(freeMarkerVersion));
+ configuration.setDefaultEncoding("UTF-8");
+
+ try {
+ configuration.setTemplateLoader(new
FileTemplateLoader(templateDirectory));
+ } catch (Throwable t) {
+ throw new RuntimeException("Could not establish file template
loader for directory: " + templateDirectory, t);
+ }
+
+ final File freeMarkerProps = new File(sourceDirectory,
"freemarker.properties");
+
+ if (freeMarkerProps.isFile()) {
+ final Properties configProperties =
PropertiesFactory.create(freeMarkerProps);
+ try {
+ configuration.setSettings(configProperties);
+ } catch (Throwable t) {
+ throw new RuntimeException("Invalid setting(s) in " +
freeMarkerProps, t);
+ }
+ }
+
+ return configuration;
+ }
+}
diff --git
a/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/FactoryUtil.java
b/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/FactoryUtil.java
deleted file mode 100644
index a255d3f..0000000
---
a/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/FactoryUtil.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.generator.maven;
-
-import freemarker.template.Configuration;
-import freemarker.template.Version;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-
-/**
- * Simple utility class to call various constructors.
- * Needed because some jmockit features don't work well with constructors.
- */
-public class FactoryUtil {
-
- public static Configuration createConfiguration(String freeMarkerVersion) {
- return new Configuration(new Version(freeMarkerVersion));
- }
-
- public static File createFile(File parent, String child) {
- return new File(parent, child);
- }
-
- public static FileInputStream createFileInputStream(File file) throws
FileNotFoundException {
- return new FileInputStream(file);
- }
-
- public static File createFile(String name) {
- return new File(name);
- }
-}
diff --git
a/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/FreeMarkerMojo.java
b/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/FreeMarkerMojo.java
index b187e46..8137cdf 100644
---
a/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/FreeMarkerMojo.java
+++
b/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/FreeMarkerMojo.java
@@ -16,10 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.freemarker.generator.maven;
-import freemarker.cache.FileTemplateLoader;
import freemarker.template.Configuration;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.plugin.AbstractMojo;
@@ -30,11 +28,9 @@ import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
import java.io.File;
-import java.io.InputStream;
import java.nio.file.Files;
import java.util.HashMap;
import java.util.Map;
-import java.util.Properties;
@Mojo(name = "generate", defaultPhase = LifecyclePhase.GENERATE_SOURCES)
public class FreeMarkerMojo extends AbstractMojo {
@@ -69,14 +65,14 @@ public class FreeMarkerMojo extends AbstractMojo {
}
if (!generatorDirectory.isDirectory()) {
- throw new MojoExecutionException("Required directory does not
exist: " + generatorDirectory);
+ throw new MojoExecutionException("Required generator directory
does not exist: " + generatorDirectory);
}
if (!templateDirectory.isDirectory()) {
- throw new MojoExecutionException("Required directory does not
exist: " + templateDirectory);
+ throw new MojoExecutionException("Required template directory does
not exist: " + templateDirectory);
}
- final Configuration config = freeMarkerConfiguration();
+ final Configuration configuration = configuration();
if ("generate-sources".equals(mojo.getLifecyclePhase())) {
session.getCurrentProject().addCompileSourceRoot(outputDirectory.toString());
@@ -87,7 +83,7 @@ public class FreeMarkerMojo extends AbstractMojo {
final Map<String, OutputGeneratorPropertiesProvider>
extensionToBuilders = new HashMap<>(1);
extensionToBuilders.put(".json",
JsonPropertiesProvider.create(generatorDirectory, templateDirectory,
outputDirectory));
- final GeneratingFileVisitor fileVisitor =
GeneratingFileVisitor.create(config, session, extensionToBuilders);
+ final GeneratingFileVisitor fileVisitor =
GeneratingFileVisitor.create(configuration, session, extensionToBuilders);
try {
Files.walkFileTree(generatorDirectory.toPath(), fileVisitor);
} catch (Throwable t) {
@@ -96,34 +92,7 @@ public class FreeMarkerMojo extends AbstractMojo {
}
}
- private Configuration freeMarkerConfiguration() throws
MojoExecutionException{
- final Configuration configuration =
FactoryUtil.createConfiguration(freeMarkerVersion);
- configuration.setDefaultEncoding("UTF-8");
-
- try {
- configuration.setTemplateLoader(new
FileTemplateLoader(templateDirectory));
- } catch (Throwable t) {
- getLog().error("Could not establish file template loader for
directory: " + templateDirectory, t);
- throw new MojoExecutionException("Could not establish file
template loader for directory: " + templateDirectory);
- }
-
- final File freeMarkerProps = FactoryUtil.createFile(sourceDirectory,
"freemarker.properties");
- if (freeMarkerProps.isFile()) {
- final Properties configProperties = new Properties();
- try (InputStream is =
FactoryUtil.createFileInputStream(freeMarkerProps)) {
- configProperties.load(is);
- } catch (Throwable t) {
- getLog().error("Failed to load " + freeMarkerProps, t);
- throw new MojoExecutionException("Failed to load " +
freeMarkerProps);
- }
- try {
- configuration.setSettings(configProperties);
- } catch (Throwable t) {
- getLog().error("Invalid setting(s) in " + freeMarkerProps, t);
- throw new MojoExecutionException("Invalid setting(s) in " +
freeMarkerProps);
- }
- }
-
- return configuration;
+ private Configuration configuration() {
+ return new ConfigurationSupplier(freeMarkerVersion, templateDirectory,
sourceDirectory).get();
}
}
diff --git
a/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/GeneratingFileVisitor.java
b/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/GeneratingFileVisitor.java
index d4ef85a..e6796c6 100644
---
a/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/GeneratingFileVisitor.java
+++
b/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/GeneratingFileVisitor.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.freemarker.generator.maven;
import freemarker.template.Configuration;
@@ -52,8 +51,8 @@ public class GeneratingFileVisitor extends
SimpleFileVisitor<Path> {
/**
* Factory method that calls constructor, added to facilitate testing with
jmockit.
*
- * @param config FreeMarker configuration
- * @param session Maven session
+ * @param config FreeMarker configuration
+ * @param session Maven session
* @param extensionToBuilder builder extension
* @return GeneratingFileVisitor instance
*/
diff --git
a/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/JsonPropertiesProvider.java
b/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/JsonPropertiesProvider.java
index 1d16822..5b8757d 100644
---
a/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/JsonPropertiesProvider.java
+++
b/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/JsonPropertiesProvider.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.freemarker.generator.maven;
import com.google.gson.Gson;
diff --git
a/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/OutputGenerator.java
b/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/OutputGenerator.java
index 2ac3b4f..fabb1fe 100644
---
a/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/OutputGenerator.java
+++
b/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/OutputGenerator.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.freemarker.generator.maven;
import freemarker.template.Configuration;
@@ -141,8 +140,7 @@ class OutputGenerator {
* @param config Used to load the template from the template name.
*/
public void generate(Configuration config) {
- //Use "createFile" for testing purposes only
- final File outputFile =
FactoryUtil.createFile(outputLocation.toFile().toString());
+ final File outputFile = new
File(outputLocation.toFile().getAbsolutePath());
final File templateFile = templateLocation.toFile();
final File generatorFile = generatorLocation.toFile();
if (outputFile.exists()) {
diff --git
a/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/OutputGeneratorPropertiesProvider.java
b/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/OutputGeneratorPropertiesProvider.java
index 25b929b..97710c1 100644
---
a/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/OutputGeneratorPropertiesProvider.java
+++
b/freemarker-generator-maven-plugin/src/main/java/org/apache/freemarker/generator/maven/OutputGeneratorPropertiesProvider.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.freemarker.generator.maven;
import java.nio.file.Path;
diff --git
a/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/ConfigurationSupplierTest.java
b/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/ConfigurationSupplierTest.java
new file mode 100644
index 0000000..ab16e19
--- /dev/null
+++
b/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/ConfigurationSupplierTest.java
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.freemarker.generator.maven;
+
+import freemarker.template.Configuration;
+import org.junit.Test;
+
+import java.io.File;
+
+import static org.assertj.core.api.Assertions.*;
+
+public class ConfigurationSupplierTest {
+
+ private static final String FREEMARKER_VERSION = "2.3.30";
+ private static final File SOURCE_DIR = new
File("src/test/data/freemarker-mojo/data");
+ private static final File SOURCE_DIR_WITH_FREEMARKER_PROPS = new
File("src/test/data/freemarker-mojo");
+ private static final File TEMPLATE_DIR = new
File("src/test/data/freemarker-mojo/template");
+
+ @Test
+ public void shouldCreateConfiguration() {
+ final Configuration configuration = configuration(FREEMARKER_VERSION,
TEMPLATE_DIR, SOURCE_DIR);
+
+ assertThat(configuration.getDefaultEncoding()).isEqualTo("UTF-8");
+ assertThat(configuration.getBooleanFormat()).isEqualTo("true,false");
+ }
+
+ @Test
+ public void shouldCreateConfigurationUsingFreeMarkerPropertiesFile() {
+ final Configuration configuration = configuration(FREEMARKER_VERSION,
TEMPLATE_DIR, SOURCE_DIR_WITH_FREEMARKER_PROPS);
+
+ assertThat(configuration.getDefaultEncoding()).isEqualTo("UTF-8");
+ assertThat(configuration.getBooleanFormat()).isEqualTo("T,F");
+ }
+
+ private static Configuration configuration(String freeMarkerVersion, File
templateDirectory, File sourceDirectory) {
+ return new ConfigurationSupplier(freeMarkerVersion, templateDirectory,
sourceDirectory).get();
+ }
+}
diff --git
a/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/FreeMarkerMojoTest.java
b/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/FreeMarkerMojoTest.java
index e2498ec..b8f8fed 100644
---
a/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/FreeMarkerMojoTest.java
+++
b/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/FreeMarkerMojoTest.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.freemarker.generator.maven;
import org.apache.commons.io.FileUtils;
@@ -165,12 +164,12 @@ public class FreeMarkerMojoTest extends Assert {
assertThatExceptionOfType(MojoExecutionException.class)
.isThrownBy(mojo::execute)
- .withMessageStartingWith("Required directory does not exist");
+ .withMessageStartingWith("Required generator directory does
not exist");
FileUtils.forceMkdir(new File(testCaseOutputDir, "data"));
assertThatExceptionOfType(MojoExecutionException.class)
.isThrownBy(mojo::execute)
- .withMessageStartingWith("Required directory does not exist");
+ .withMessageStartingWith("Required template directory does not
exist");
FileUtils.forceMkdir(new File(testCaseOutputDir, "template"));
diff --git
a/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/GeneratingFileVisitorTest.java
b/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/GeneratingFileVisitorTest.java
index 32cc3c0..2b33462 100644
---
a/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/GeneratingFileVisitorTest.java
+++
b/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/GeneratingFileVisitorTest.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.freemarker.generator.maven;
import freemarker.template.Configuration;
diff --git
a/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/JsonPropertiesProviderTest.java
b/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/JsonPropertiesProviderTest.java
index 78ead87..bbf481a 100644
---
a/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/JsonPropertiesProviderTest.java
+++
b/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/JsonPropertiesProviderTest.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.freemarker.generator.maven;
import
org.apache.freemarker.generator.maven.OutputGenerator.OutputGeneratorBuilder;
diff --git
a/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/OutputGeneratorTest.java
b/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/OutputGeneratorTest.java
index bd8680a..d577a83 100644
---
a/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/OutputGeneratorTest.java
+++
b/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/OutputGeneratorTest.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.freemarker.generator.maven;
import freemarker.template.Configuration;
@@ -244,47 +243,6 @@ public class OutputGeneratorTest {
.getAbsolutePath());
}
- /**
- * No idea what the tests is going to test? I assume the intention
- * is that "mydir" can't be created because "generating-file-visitor"
- * directory does not exist but File#mkdirs happily create the missing
- * directory (unless you pass the mocked file instance).
- *
- @Test
- public void generate_cantCreateOutputFileParentDirTest(
- @Mocked FactoryUtil factoryUtil,
- @Mocked File mockOutputFile) {
-
- final File parentDir = new
File("target/test-output/generating-file-visitor/mydir");
- new Expectations(mockOutputFile, parentDir) {{
- FactoryUtil.createFile(anyString);
- result = mockOutputFile;
- mockOutputFile.exists();
- result = false;
- mockOutputFile.getParentFile();
- result = parentDir;
- parentDir.isDirectory();
- result = false;
- }};
-
- final OutputGenerator.OutputGeneratorBuilder builder =
OutputGenerator.builder();
- builder.addPomLastModifiedTimestamp(0);
- final File file = new File(DATA_DIR,
"mydir/missing-var-test.txt.json");
- builder.addGeneratorLocation(file.toPath());
- final File outputFile = new File(OUTPUT_DIR,
"mydir/missing-var-test.txt");
- builder.addOutputLocation(outputFile.toPath());
- final File templateFile = new File(TEMPLATE_DIR, "test.ftl"); //this
is missing a
-
- builder.addTemplateLocation(templateFile.toPath());
- builder.addDataModel(dataModel);
- final OutputGenerator generator = builder.create();
-
- Assertions.assertThatExceptionOfType(RuntimeException.class)
- .isThrownBy(() -> generator.generate(config))
- .withMessage("Could not create directory: " +
parentDir.getAbsoluteFile().toString());
- }
- */
-
@SuppressWarnings("unchecked")
private static Map<String, Object> dataModel() {
final HashMap<String, Object> result = new HashMap<>();
diff --git
a/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/UnitTestHelper.java
b/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/UnitTestHelper.java
index 114954f..96c70df 100644
---
a/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/UnitTestHelper.java
+++
b/freemarker-generator-maven-plugin/src/test/java/org/apache/freemarker/generator/maven/UnitTestHelper.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
package org.apache.freemarker.generator.maven;
import freemarker.cache.FileTemplateLoader;
diff --git a/freemarker-generator-tools/pom.xml
b/freemarker-generator-tools/pom.xml
index 635b9c1..5d1bcba 100644
--- a/freemarker-generator-tools/pom.xml
+++ b/freemarker-generator-tools/pom.xml
@@ -42,6 +42,12 @@
<artifactId>freemarker-generator-base</artifactId>
<version>${project.version}</version>
</dependency>
+ <!-- General -->
+ <dependency>
+ <!-- Overwrite version pulled in by fava-faker -->
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ </dependency>
<!-- CommonsCSVTool -->
<dependency>
<groupId>org.apache.commons</groupId>
diff --git a/pom.xml b/pom.xml
index 8512bf7..7c44d98 100644
--- a/pom.xml
+++ b/pom.xml
@@ -111,6 +111,11 @@
<version>${freemarker.version}</version>
</dependency>
<dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ <version>3.7</version>
+ </dependency>
+ <dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.7</version>