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 2021/01/25 22:10:26 UTC
[freemarker-generator] branch FREEMARKER-156 updated (d639d07 ->
33c248d)
This is an automated email from the ASF dual-hosted git repository.
sgoeschl pushed a change to branch FREEMARKER-156
in repository https://gitbox.apache.org/repos/asf/freemarker-generator.git.
from d639d07 FREEMARKER-156 [freemarker-generator] Cleanup tests
new 1599a19 FREEMARKER-156 [freemarker-generator] Cleanup tests
new 3858ed0 FREEMARKER-156 [freemarker-generator] Cleanup tests
new 33c248d FREEMARKER-156 [freemarker-generator] Migrate to Mockito
The 3 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.
Summary of changes:
freemarker-generator-maven-plugin/pom.xml | 14 -
.../freemarker/generator/maven/FreeMarkerMojo.java | 50 ++--
.../generator/maven/FreeMarkerMojoTest.java | 307 +++++----------------
3 files changed, 96 insertions(+), 275 deletions(-)
[freemarker-generator] 02/03: FREEMARKER-156 [freemarker-generator]
Cleanup tests
Posted by sg...@apache.org.
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
commit 3858ed0e009ff3a1c4912dc070b1f52e259455c5
Author: Siegfried Goeschl <si...@gmail.com>
AuthorDate: Mon Jan 25 22:09:58 2021 +0100
FREEMARKER-156 [freemarker-generator] Cleanup tests
---
.../generator/maven/FreeMarkerMojoTest.java | 69 ++++++++++++++++------
1 file changed, 50 insertions(+), 19 deletions(-)
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 1fbe016..47faad7 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
@@ -47,6 +47,7 @@ import java.util.Map;
import java.util.Properties;
import static org.assertj.core.api.Assertions.*;
+import static org.mockito.Mockito.*;
public class FreeMarkerMojoTest extends Assert {
@@ -76,16 +77,7 @@ public class FreeMarkerMojoTest extends Assert {
final FreeMarkerMojo mojo = new FreeMarkerMojo();
- // Validate freeMarkerVersion is required.
- assertThatExceptionOfType(MojoExecutionException.class)
- .isThrownBy(mojo::execute)
- .withMessage("freeMarkerVersion is required");
-
FieldUtils.writeField(mojo, "freeMarkerVersion", "", true);
- assertThatExceptionOfType(MojoExecutionException.class)
- .isThrownBy(mojo::execute)
- .withMessage("freeMarkerVersion is required");
-
final File testCaseOutputDir = new File(TEST_OUTPUT_DIR, "executeTest");
FieldUtils.writeField(mojo, "freeMarkerVersion", FREEMARKER_VERSION, true);
FieldUtils.writeField(mojo, "sourceDirectory", testCaseOutputDir, true);
@@ -95,17 +87,7 @@ public class FreeMarkerMojoTest extends Assert {
FieldUtils.writeField(mojo, "mojo", mojoExecution, true);
FieldUtils.writeField(mojo, "session", session, true);
- // Validate source directory.
- assertThatExceptionOfType(MojoExecutionException.class)
- .isThrownBy(mojo::execute)
- .withMessageStartingWith("Required directory does not exist");
-
FileUtils.forceMkdir(new File(testCaseOutputDir, "data"));
- assertThatExceptionOfType(MojoExecutionException.class)
- .isThrownBy(mojo::execute)
- .withMessageStartingWith("Required directory does not exist");
-
-
FileUtils.forceMkdir(new File(testCaseOutputDir, "template"));
// Validate minimum configuration.
@@ -350,6 +332,55 @@ public class FreeMarkerMojoTest extends Assert {
.withMessage(fixSeparators("Invalid setting(s) in src/test/data/freemarker-mojo/freemarker.properties"));
}
+ @Test
+ public void execute_checkPluginParametersTest()
+ throws MojoExecutionException, IOException, IllegalAccessException {
+
+ UnitTestHelper.deleteTestOutputDir(TEST_OUTPUT_DIR);
+
+ final MavenSession session = mock(MavenSession.class);
+ final MojoExecution mojoExecution = mock(MojoExecution.class);
+ final FreeMarkerMojo mojo = new FreeMarkerMojo();
+
+ // Validate freeMarkerVersion is required.
+
+ FieldUtils.writeField(mojo, "freeMarkerVersion", null, true);
+ assertThatExceptionOfType(MojoExecutionException.class)
+ .isThrownBy(mojo::execute)
+ .withMessage("freeMarkerVersion is required");
+
+ FieldUtils.writeField(mojo, "freeMarkerVersion", "", true);
+ assertThatExceptionOfType(MojoExecutionException.class)
+ .isThrownBy(mojo::execute)
+ .withMessage("freeMarkerVersion is required");
+
+ final File testCaseOutputDir = new File(TEST_OUTPUT_DIR, "executeTest");
+ FieldUtils.writeField(mojo, "freeMarkerVersion", FREEMARKER_VERSION, true);
+ FieldUtils.writeField(mojo, "sourceDirectory", testCaseOutputDir, true);
+ FieldUtils.writeField(mojo, "templateDirectory", new File(testCaseOutputDir, "template"), true);
+ FieldUtils.writeField(mojo, "generatorDirectory", new File(testCaseOutputDir, "data"), true);
+ FieldUtils.writeField(mojo, "outputDirectory", new File(testCaseOutputDir, "generated-files"), true);
+ FieldUtils.writeField(mojo, "mojo", mojoExecution, true);
+ FieldUtils.writeField(mojo, "session", session, true);
+
+ // Validate source directory.
+
+ assertThatExceptionOfType(MojoExecutionException.class)
+ .isThrownBy(mojo::execute)
+ .withMessageStartingWith("Required directory does not exist");
+
+ FileUtils.forceMkdir(new File(testCaseOutputDir, "data"));
+ assertThatExceptionOfType(MojoExecutionException.class)
+ .isThrownBy(mojo::execute)
+ .withMessageStartingWith("Required directory does not exist");
+
+ FileUtils.forceMkdir(new File(testCaseOutputDir, "template"));
+
+ // Validate minimum configuration.
+
+ mojo.execute();
+ }
+
private static String fixSeparators(String str) {
if (OperatingSystem.isWindows()) {
return FilenameUtils.separatorsToWindows(str);
[freemarker-generator] 03/03: FREEMARKER-156 [freemarker-generator]
Migrate to Mockito
Posted by sg...@apache.org.
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
commit 33c248dfb6db764047da148c5c31f42722fb56cd
Author: Siegfried Goeschl <si...@gmail.com>
AuthorDate: Mon Jan 25 23:10:11 2021 +0100
FREEMARKER-156 [freemarker-generator] Migrate to Mockito
---
freemarker-generator-maven-plugin/pom.xml | 14 -
.../freemarker/generator/maven/FreeMarkerMojo.java | 50 ++--
.../generator/maven/FreeMarkerMojoTest.java | 286 +++------------------
3 files changed, 70 insertions(+), 280 deletions(-)
diff --git a/freemarker-generator-maven-plugin/pom.xml b/freemarker-generator-maven-plugin/pom.xml
index e7a15ba..67ef461 100644
--- a/freemarker-generator-maven-plugin/pom.xml
+++ b/freemarker-generator-maven-plugin/pom.xml
@@ -36,9 +36,7 @@
<maven-plugin-api.version>3.6.3</maven-plugin-api.version>
<maven-plugin-annotations.version>3.6.0</maven-plugin-annotations.version>
<gson.version>2.8.6</gson.version>
- <jmockit.version>1.41</jmockit.version>
<mockito.version>3.7.7</mockito.version>
- <org.testng.version>7.3.0</org.testng.version>
<assertj-core.version>3.18.1</assertj-core.version>
</properties>
@@ -109,24 +107,12 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.jmockit</groupId>
- <artifactId>jmockit</artifactId>
- <version>${jmockit.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>${assertj-core.version}</version>
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.testng</groupId>
- <artifactId>testng</artifactId>
- <version>${org.testng.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito.version}</version>
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 5ea8bc1..b187e46 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
@@ -72,15 +72,36 @@ public class FreeMarkerMojo extends AbstractMojo {
throw new MojoExecutionException("Required directory does not exist: " + generatorDirectory);
}
- final Configuration config = FactoryUtil.createConfiguration(freeMarkerVersion);
-
- config.setDefaultEncoding("UTF-8");
-
if (!templateDirectory.isDirectory()) {
throw new MojoExecutionException("Required directory does not exist: " + templateDirectory);
}
+
+ final Configuration config = freeMarkerConfiguration();
+
+ if ("generate-sources".equals(mojo.getLifecyclePhase())) {
+ session.getCurrentProject().addCompileSourceRoot(outputDirectory.toString());
+ } else if ("generate-test-sources".equals(mojo.getLifecyclePhase())) {
+ session.getCurrentProject().addTestCompileSourceRoot(outputDirectory.toString());
+ }
+
+ final Map<String, OutputGeneratorPropertiesProvider> extensionToBuilders = new HashMap<>(1);
+ extensionToBuilders.put(".json", JsonPropertiesProvider.create(generatorDirectory, templateDirectory, outputDirectory));
+
+ final GeneratingFileVisitor fileVisitor = GeneratingFileVisitor.create(config, session, extensionToBuilders);
try {
- config.setTemplateLoader(new FileTemplateLoader(templateDirectory));
+ Files.walkFileTree(generatorDirectory.toPath(), fileVisitor);
+ } catch (Throwable t) {
+ getLog().error("Failed to process files in generator dir: " + generatorDirectory, t);
+ throw new MojoExecutionException("Failed to process files in generator dir: " + generatorDirectory);
+ }
+ }
+
+ 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);
@@ -96,28 +117,13 @@ public class FreeMarkerMojo extends AbstractMojo {
throw new MojoExecutionException("Failed to load " + freeMarkerProps);
}
try {
- config.setSettings(configProperties);
+ configuration.setSettings(configProperties);
} catch (Throwable t) {
getLog().error("Invalid setting(s) in " + freeMarkerProps, t);
throw new MojoExecutionException("Invalid setting(s) in " + freeMarkerProps);
}
}
- if ("generate-sources".equals(mojo.getLifecyclePhase())) {
- session.getCurrentProject().addCompileSourceRoot(outputDirectory.toString());
- } else if ("generate-test-sources".equals(mojo.getLifecyclePhase())) {
- session.getCurrentProject().addTestCompileSourceRoot(outputDirectory.toString());
- }
-
- final Map<String, OutputGeneratorPropertiesProvider> extensionToBuilders = new HashMap<>(1);
- extensionToBuilders.put(".json", JsonPropertiesProvider.create(generatorDirectory, templateDirectory, outputDirectory));
-
- final GeneratingFileVisitor fileVisitor = GeneratingFileVisitor.create(config, session, extensionToBuilders);
- try {
- Files.walkFileTree(generatorDirectory.toPath(), fileVisitor);
- } catch (Throwable t) {
- getLog().error("Failed to process files in generator dir: " + generatorDirectory, t);
- throw new MojoExecutionException("Failed to process files in generator dir: " + generatorDirectory);
- }
+ return configuration;
}
}
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 47faad7..e2498ec 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
@@ -19,13 +19,6 @@
package org.apache.freemarker.generator.maven;
-import freemarker.cache.FileTemplateLoader;
-import freemarker.cache.TemplateLoader;
-import freemarker.template.Configuration;
-import freemarker.template.TemplateException;
-import mockit.Expectations;
-import mockit.Mocked;
-import mockit.Verifications;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang3.reflect.FieldUtils;
@@ -35,15 +28,13 @@ import org.apache.maven.plugin.MojoExecution;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
import org.junit.Assert;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
+import org.junit.BeforeClass;
+import org.junit.Test;
import java.io.File;
import java.io.IOException;
-import java.nio.file.FileVisitor;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.Map;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Properties;
import static org.assertj.core.api.Assertions.*;
@@ -60,90 +51,30 @@ public class FreeMarkerMojoTest extends Assert {
}
@Test
- public void executeTest(
- @Mocked MavenSession session,
- @Mocked MavenProject project,
- @Mocked MojoExecution mojoExecution,
- @Mocked GeneratingFileVisitor generatingFileVisitor,
- @Mocked Files files
- ) throws MojoExecutionException, IOException, IllegalAccessException {
-
- new Expectations(mojoExecution, generatingFileVisitor) {{
- mojoExecution.getLifecyclePhase();
- result = "generate-sources";
- session.getCurrentProject();
- result = project;
- }};
+ public void execute_generateSourceTest() throws MojoExecutionException, IOException, IllegalAccessException {
- final FreeMarkerMojo mojo = new FreeMarkerMojo();
-
- FieldUtils.writeField(mojo, "freeMarkerVersion", "", true);
- final File testCaseOutputDir = new File(TEST_OUTPUT_DIR, "executeTest");
- FieldUtils.writeField(mojo, "freeMarkerVersion", FREEMARKER_VERSION, true);
- FieldUtils.writeField(mojo, "sourceDirectory", testCaseOutputDir, true);
- FieldUtils.writeField(mojo, "templateDirectory", new File(testCaseOutputDir, "template"), true);
- FieldUtils.writeField(mojo, "generatorDirectory", new File(testCaseOutputDir, "data"), true);
- FieldUtils.writeField(mojo, "outputDirectory", new File(testCaseOutputDir, "generated-files"), true);
- FieldUtils.writeField(mojo, "mojo", mojoExecution, true);
- FieldUtils.writeField(mojo, "session", session, true);
-
- FileUtils.forceMkdir(new File(testCaseOutputDir, "data"));
- FileUtils.forceMkdir(new File(testCaseOutputDir, "template"));
-
- // Validate minimum configuration.
- mojo.execute();
-
- new Verifications() {{
- project.addCompileSourceRoot(fixSeparators("target/test-output/freemarker-mojo/executeTest/generated-files"));
- times = 1;
-
- final Configuration config;
- final MavenSession capturedSession;
- final Map<String, OutputGeneratorPropertiesProvider> builders;
-
- GeneratingFileVisitor.create(
- config = withCapture(),
- capturedSession = withCapture(),
- builders = withCapture());
- times = 1;
-
- assertEquals("UTF-8", config.getDefaultEncoding());
- assertEquals(session, capturedSession);
- final TemplateLoader loader = config.getTemplateLoader();
- assertTrue(loader instanceof FileTemplateLoader);
-
- final Path path;
- final FileVisitor<Path> fileVisitor;
+ final File mockFile = mock(File.class);
+ final MavenSession session = mock(MavenSession.class);
+ final MavenProject project = mock(MavenProject.class);
+ final MojoExecution mojoExecution = mock(MojoExecution.class);
- Files.walkFileTree(path = withCapture(), fileVisitor = withCapture());
- times = 1;
+ final List<MavenProject> projects = new ArrayList<>();
+ projects.add(project);
- assertEquals(new File(testCaseOutputDir, "data").toPath(), path);
- assertTrue(fileVisitor instanceof GeneratingFileVisitor);
- }};
- }
-
- @Test
- public void execute_generateTestSourceTest(
- @Mocked MavenSession session,
- @Mocked MavenProject project,
- @Mocked MojoExecution mojoExecution,
- @Mocked GeneratingFileVisitor generatingFileVisitor,
- @Mocked Files files
- ) throws MojoExecutionException, IOException, IllegalAccessException {
-
- new Expectations(mojoExecution, generatingFileVisitor) {{
- mojoExecution.getLifecyclePhase();
- result = "generate-test-sources";
- session.getCurrentProject();
- result = project;
- }};
+ when(session.getAllProjects()).thenReturn(projects);
+ when(session.getCurrentProject()).thenReturn(project);
+ when(session.getCurrentProject().getProperties()).thenReturn(new Properties());
+ when(project.getFile()).thenReturn(mockFile);
+ when(mockFile.lastModified()).thenReturn(10L);
+ when(mojoExecution.getLifecyclePhase()).thenReturn("generate-sources");
final FreeMarkerMojo mojo = new FreeMarkerMojo();
+ final File sourceDirectory = new File("src/test/data/freemarker-mojo");
+ final File testCaseOutputDir = new File(TEST_OUTPUT_DIR, "executeTest");
- final File testCaseOutputDir = new File(TEST_OUTPUT_DIR, "generateTestSourceTest");
+ FieldUtils.writeField(mojo, "freeMarkerVersion", "", true);
FieldUtils.writeField(mojo, "freeMarkerVersion", FREEMARKER_VERSION, true);
- FieldUtils.writeField(mojo, "sourceDirectory", testCaseOutputDir, true);
+ FieldUtils.writeField(mojo, "sourceDirectory", sourceDirectory, true);
FieldUtils.writeField(mojo, "templateDirectory", new File(testCaseOutputDir, "template"), true);
FieldUtils.writeField(mojo, "generatorDirectory", new File(testCaseOutputDir, "data"), true);
FieldUtils.writeField(mojo, "outputDirectory", new File(testCaseOutputDir, "generated-files"), true);
@@ -155,181 +86,48 @@ public class FreeMarkerMojoTest extends Assert {
mojo.execute();
- new Verifications() {{
- project.addTestCompileSourceRoot(fixSeparators("target/test-output/freemarker-mojo/generateTestSourceTest/generated-files"));
- times = 1;
- }};
+ verify(project).addCompileSourceRoot(fixSeparators("target/test-output/freemarker-mojo/executeTest/generated-files"));
+ verify(project, times(0)).addTestCompileSourceRoot(anyString());
}
- @SuppressWarnings({ "rawtypes", "unchecked" })
@Test
- public void execute_walkFileTreeExceptionTest(
- @Mocked MavenSession session,
- @Mocked MavenProject project,
- @Mocked MojoExecution mojoExecution,
- @Mocked GeneratingFileVisitor generatingFileVisitor,
- @Mocked Files files
- ) throws IOException, IllegalAccessException {
-
- new Expectations(mojoExecution, generatingFileVisitor) {{
- mojoExecution.getLifecyclePhase();
- result = "generate-test-sources";
- session.getCurrentProject();
- result = project;
- Files.walkFileTree((Path) any, (FileVisitor) any);
- result = new RuntimeException("test exception");
- }};
-
- final FreeMarkerMojo mojo = new FreeMarkerMojo();
+ public void execute_generateTestSourceTest() throws MojoExecutionException, IOException, IllegalAccessException {
- final File testCaseOutputDir = new File(TEST_OUTPUT_DIR, "generateTestSourceTest");
- FieldUtils.writeField(mojo, "freeMarkerVersion", FREEMARKER_VERSION, true);
- FieldUtils.writeField(mojo, "sourceDirectory", testCaseOutputDir, true);
- FieldUtils.writeField(mojo, "templateDirectory", new File(testCaseOutputDir, "template"), true);
- FieldUtils.writeField(mojo, "generatorDirectory", new File(testCaseOutputDir, "data"), true);
- FieldUtils.writeField(mojo, "outputDirectory", new File(testCaseOutputDir, "generated-files"), true);
- FieldUtils.writeField(mojo, "mojo", mojoExecution, true);
- FieldUtils.writeField(mojo, "session", session, true);
+ final File mockFile = mock(File.class);
+ final MavenSession session = mock(MavenSession.class);
+ final MavenProject project = mock(MavenProject.class);
+ final MojoExecution mojoExecution = mock(MojoExecution.class);
- FileUtils.forceMkdir(new File(testCaseOutputDir, "data"));
- FileUtils.forceMkdir(new File(testCaseOutputDir, "template"));
+ final List<MavenProject> projects = new ArrayList<>();
+ projects.add(project);
- assertThatExceptionOfType(MojoExecutionException.class)
- .isThrownBy(mojo::execute)
- .withMessageStartingWith("Failed to process files in generator dir");
- }
-
- @Test
- public void execute_setTemplateLoaderExceptionTest(
- @Mocked MavenSession session,
- @Mocked MavenProject project,
- @Mocked MojoExecution mojoExecution,
- @Mocked FactoryUtil factoryUtil,
- @Mocked Configuration config) throws IOException, IllegalAccessException {
-
- new Expectations(config, FactoryUtil.class) {{
- FactoryUtil.createConfiguration(FREEMARKER_VERSION);
- result = config;
- config.setTemplateLoader((TemplateLoader) any);
- result = new RuntimeException("test exception");
- }};
+ when(session.getAllProjects()).thenReturn(projects);
+ when(session.getCurrentProject()).thenReturn(project);
+ when(session.getCurrentProject().getProperties()).thenReturn(new Properties());
+ when(project.getFile()).thenReturn(mockFile);
+ when(mockFile.lastModified()).thenReturn(10L);
+ when(mojoExecution.getLifecyclePhase()).thenReturn("generate-test-sources");
final FreeMarkerMojo mojo = new FreeMarkerMojo();
+ final File sourceDirectory = new File("src/test/data/freemarker-mojo");
+ final File testCaseOutputDir = new File(TEST_OUTPUT_DIR, "generateTestSourceTest");
- final File testCaseOutputDir = new File(TEST_OUTPUT_DIR, "setTemplateLoaderException");
-
+ FieldUtils.writeField(mojo, "freeMarkerVersion", "", true);
FieldUtils.writeField(mojo, "freeMarkerVersion", FREEMARKER_VERSION, true);
- FieldUtils.writeField(mojo, "sourceDirectory", testCaseOutputDir, true);
+ FieldUtils.writeField(mojo, "sourceDirectory", sourceDirectory, true);
FieldUtils.writeField(mojo, "templateDirectory", new File(testCaseOutputDir, "template"), true);
FieldUtils.writeField(mojo, "generatorDirectory", new File(testCaseOutputDir, "data"), true);
FieldUtils.writeField(mojo, "outputDirectory", new File(testCaseOutputDir, "generated-files"), true);
FieldUtils.writeField(mojo, "mojo", mojoExecution, true);
FieldUtils.writeField(mojo, "session", session, true);
-
FileUtils.forceMkdir(new File(testCaseOutputDir, "data"));
FileUtils.forceMkdir(new File(testCaseOutputDir, "template"));
- assertThatExceptionOfType(MojoExecutionException.class)
- .isThrownBy(mojo::execute)
- .withMessageStartingWith("Could not establish file template loader for directory");
- }
-
- @Test
- public void execute_loadFreemarkerPropertiesTest(
- @Mocked MavenSession session,
- @Mocked MavenProject project,
- @Mocked MojoExecution mojoExecution,
- @Mocked Configuration config) throws MojoExecutionException, TemplateException, IllegalAccessException {
-
- final FreeMarkerMojo mojo = new FreeMarkerMojo();
-
- final File sourceDirectory = new File("src/test/data/freemarker-mojo");
- final File testCaseOutputDir = new File(TEST_OUTPUT_DIR, "loadFreemarkerProperties");
-
- FieldUtils.writeField(mojo, "freeMarkerVersion", FREEMARKER_VERSION, true);
- FieldUtils.writeField(mojo, "sourceDirectory", sourceDirectory, true);
- FieldUtils.writeField(mojo, "templateDirectory", new File(sourceDirectory, "template"), true);
- FieldUtils.writeField(mojo, "generatorDirectory", new File(sourceDirectory, "data"), true);
- FieldUtils.writeField(mojo, "outputDirectory", new File(testCaseOutputDir, "generated-files"), true);
- FieldUtils.writeField(mojo, "mojo", mojoExecution, true);
- FieldUtils.writeField(mojo, "session", session, true);
-
mojo.execute();
- new Verifications() {{
- final Properties properties;
-
- config.setSettings(properties = withCapture());
- times = 1;
-
- assertEquals("T,F", properties.getProperty("boolean_format"));
- }};
- }
-
- @Test
- public void execute_loadFreemarkerPropertiesExceptionTest(
- @Mocked MavenSession session,
- @Mocked MavenProject project,
- @Mocked MojoExecution mojoExecution,
- @Mocked FactoryUtil factoryUtil,
- @Mocked Configuration config) throws IOException, IllegalAccessException {
-
- new Expectations(FactoryUtil.class) {{
- FactoryUtil.createFileInputStream((File) any);
- result = new RuntimeException("test exception");
- }};
-
- final FreeMarkerMojo mojo = new FreeMarkerMojo();
-
- final File sourceDirectory = new File("src/test/data/freemarker-mojo");
- final File testCaseOutputDir = new File(TEST_OUTPUT_DIR, "loadFreemarkerPropertiesExceptionTest");
-
- FieldUtils.writeField(mojo, "freeMarkerVersion", FREEMARKER_VERSION, true);
- FieldUtils.writeField(mojo, "sourceDirectory", sourceDirectory, true);
- FieldUtils.writeField(mojo, "templateDirectory", new File(sourceDirectory, "template"), true);
- FieldUtils.writeField(mojo, "generatorDirectory", new File(sourceDirectory, "data"), true);
- FieldUtils.writeField(mojo, "outputDirectory", new File(testCaseOutputDir, "generated-files"), true);
- FieldUtils.writeField(mojo, "mojo", mojoExecution, true);
- FieldUtils.writeField(mojo, "session", session, true);
-
- try {
- assertThatExceptionOfType(MojoExecutionException.class)
- .isThrownBy(mojo::execute)
- .withMessage(fixSeparators("Failed to load src/test/data/freemarker-mojo/freemarker.properties"));
- } catch (Throwable t) {
- t.printStackTrace();
- }
- }
-
- @Test
- public void execute_setSettingsExceptionTest(
- @Mocked MavenSession session,
- @Mocked MavenProject project,
- @Mocked MojoExecution mojoExecution,
- @Mocked Configuration config) throws TemplateException, IllegalAccessException {
-
- new Expectations() {{
- config.setSettings((Properties) any);
- result = new RuntimeException("test exception");
- }};
-
- final FreeMarkerMojo mojo = new FreeMarkerMojo();
-
- final File sourceDirectory = new File("src/test/data/freemarker-mojo");
- final File testCaseOutputDir = new File(TEST_OUTPUT_DIR, "loadFreemarkerProperties");
-
- FieldUtils.writeField(mojo, "freeMarkerVersion", FREEMARKER_VERSION, true);
- FieldUtils.writeField(mojo, "sourceDirectory", sourceDirectory, true);
- FieldUtils.writeField(mojo, "templateDirectory", new File(sourceDirectory, "template"), true);
- FieldUtils.writeField(mojo, "generatorDirectory", new File(sourceDirectory, "data"), true);
- FieldUtils.writeField(mojo, "outputDirectory", new File(testCaseOutputDir, "generated-files"), true);
- FieldUtils.writeField(mojo, "mojo", mojoExecution, true);
- FieldUtils.writeField(mojo, "session", session, true);
-
- assertThatExceptionOfType(MojoExecutionException.class)
- .isThrownBy(mojo::execute)
- .withMessage(fixSeparators("Invalid setting(s) in src/test/data/freemarker-mojo/freemarker.properties"));
+ verify(project, times(0)).addCompileSourceRoot(anyString());
+ verify(project).addTestCompileSourceRoot(fixSeparators("target/test-output/freemarker-mojo/generateTestSourceTest/generated-files"));
}
@Test
[freemarker-generator] 01/03: FREEMARKER-156 [freemarker-generator]
Cleanup tests
Posted by sg...@apache.org.
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
commit 1599a191b4abddb4efc73c9a52cebe2d40e70f05
Author: Siegfried Goeschl <si...@gmail.com>
AuthorDate: Mon Jan 25 21:54:02 2021 +0100
FREEMARKER-156 [freemarker-generator] Cleanup tests
---
.../java/org/apache/freemarker/generator/maven/FreeMarkerMojoTest.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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 1fe8ad0..1fbe016 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
@@ -43,7 +43,6 @@ import java.io.IOException;
import java.nio.file.FileVisitor;
import java.nio.file.Files;
import java.nio.file.Path;
-import java.util.Comparator;
import java.util.Map;
import java.util.Properties;
@@ -262,6 +261,7 @@ public class FreeMarkerMojoTest extends Assert {
@Mocked Configuration config) throws MojoExecutionException, TemplateException, IllegalAccessException {
final FreeMarkerMojo mojo = new FreeMarkerMojo();
+
final File sourceDirectory = new File("src/test/data/freemarker-mojo");
final File testCaseOutputDir = new File(TEST_OUTPUT_DIR, "loadFreemarkerProperties");