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 4fdf9c0d8d2eeacb887858f1ee512ae24fb3d209 Author: Siegfried Goeschl <[email protected]> AuthorDate: Mon Jan 25 21:32:43 2021 +0100 FREEMARKER-156 [freemarker-generator] Use commons-lang3 to set private fields and update to JMockit 1.41 - later on support for mock parameters in TestNG was dropped --- freemarker-generator-maven-plugin/pom.xml | 2 +- .../generator/maven/FreeMarkerMojoTest.java | 118 ++++++++++----------- 2 files changed, 60 insertions(+), 60 deletions(-) diff --git a/freemarker-generator-maven-plugin/pom.xml b/freemarker-generator-maven-plugin/pom.xml index cdcd5bd..e7a15ba 100644 --- a/freemarker-generator-maven-plugin/pom.xml +++ b/freemarker-generator-maven-plugin/pom.xml @@ -36,7 +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.40</jmockit.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> 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 c32b82a..c7e4cdd 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 @@ -22,11 +22,12 @@ package org.apache.freemarker.generator.maven; import freemarker.cache.FileTemplateLoader; import freemarker.cache.TemplateLoader; import freemarker.template.Configuration; -import mockit.Deencapsulation; +import freemarker.template.TemplateException; import mockit.Expectations; import mockit.Mocked; import mockit.Verifications; import org.apache.commons.io.FilenameUtils; +import org.apache.commons.lang3.reflect.FieldUtils; import org.apache.freemarker.generator.base.util.OperatingSystem; import org.apache.maven.execution.MavenSession; import org.apache.maven.plugin.MojoExecution; @@ -71,7 +72,7 @@ public class FreeMarkerMojoTest extends Assert { @Mocked MojoExecution mojoExecution, @Mocked GeneratingFileVisitor generatingFileVisitor, @Mocked Files files - ) throws MojoExecutionException, IOException { + ) throws MojoExecutionException, IOException, IllegalAccessException { new Expectations(mojoExecution, generatingFileVisitor) {{ mojoExecution.getLifecyclePhase(); @@ -87,19 +88,19 @@ public class FreeMarkerMojoTest extends Assert { .isThrownBy(mojo::execute) .withMessage("freeMarkerVersion is required"); - Deencapsulation.setField(mojo, "freeMarkerVersion", ""); + FieldUtils.writeField(mojo, "freeMarkerVersion", "", true); assertThatExceptionOfType(MojoExecutionException.class) .isThrownBy(mojo::execute) .withMessage("freeMarkerVersion is required"); final File testCaseOutputDir = new File(TEST_OUTPUT_DIR, "executeTest"); - Deencapsulation.setField(mojo, "freeMarkerVersion", FREEMARKER_VERSION); - Deencapsulation.setField(mojo, "sourceDirectory", testCaseOutputDir); - Deencapsulation.setField(mojo, "templateDirectory", new File(testCaseOutputDir, "template")); - Deencapsulation.setField(mojo, "generatorDirectory", new File(testCaseOutputDir, "data")); - Deencapsulation.setField(mojo, "outputDirectory", new File(testCaseOutputDir, "generated-files")); - Deencapsulation.setField(mojo, "mojo", mojoExecution); - Deencapsulation.setField(mojo, "session", session); + 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) @@ -152,7 +153,7 @@ public class FreeMarkerMojoTest extends Assert { @Mocked MojoExecution mojoExecution, @Mocked GeneratingFileVisitor generatingFileVisitor, @Mocked Files files - ) throws MojoExecutionException { + ) throws MojoExecutionException, IllegalAccessException { new Expectations(mojoExecution, generatingFileVisitor) {{ mojoExecution.getLifecyclePhase(); @@ -164,13 +165,13 @@ public class FreeMarkerMojoTest extends Assert { final FreeMarkerMojo mojo = new FreeMarkerMojo(); final File testCaseOutputDir = new File(TEST_OUTPUT_DIR, "generateTestSourceTest"); - Deencapsulation.setField(mojo, "freeMarkerVersion", FREEMARKER_VERSION); - Deencapsulation.setField(mojo, "sourceDirectory", testCaseOutputDir); - Deencapsulation.setField(mojo, "templateDirectory", new File(testCaseOutputDir, "template")); - Deencapsulation.setField(mojo, "generatorDirectory", new File(testCaseOutputDir, "data")); - Deencapsulation.setField(mojo, "outputDirectory", new File(testCaseOutputDir, "generated-files")); - Deencapsulation.setField(mojo, "mojo", mojoExecution); - Deencapsulation.setField(mojo, "session", session); + 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); new File(testCaseOutputDir, "data").mkdirs(); new File(testCaseOutputDir, "template").mkdirs(); @@ -191,7 +192,7 @@ public class FreeMarkerMojoTest extends Assert { @Mocked MojoExecution mojoExecution, @Mocked GeneratingFileVisitor generatingFileVisitor, @Mocked Files files - ) throws IOException { + ) throws IOException, IllegalAccessException { new Expectations(mojoExecution, generatingFileVisitor) {{ mojoExecution.getLifecyclePhase(); @@ -205,13 +206,13 @@ public class FreeMarkerMojoTest extends Assert { final FreeMarkerMojo mojo = new FreeMarkerMojo(); final File testCaseOutputDir = new File(TEST_OUTPUT_DIR, "generateTestSourceTest"); - Deencapsulation.setField(mojo, "freeMarkerVersion", FREEMARKER_VERSION); - Deencapsulation.setField(mojo, "sourceDirectory", testCaseOutputDir); - Deencapsulation.setField(mojo, "templateDirectory", new File(testCaseOutputDir, "template")); - Deencapsulation.setField(mojo, "generatorDirectory", new File(testCaseOutputDir, "data")); - Deencapsulation.setField(mojo, "outputDirectory", new File(testCaseOutputDir, "generated-files")); - Deencapsulation.setField(mojo, "mojo", mojoExecution); - Deencapsulation.setField(mojo, "session", session); + 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); new File(testCaseOutputDir, "data").mkdirs(); new File(testCaseOutputDir, "template").mkdirs(); @@ -227,7 +228,7 @@ public class FreeMarkerMojoTest extends Assert { @Mocked MavenProject project, @Mocked MojoExecution mojoExecution, @Mocked FactoryUtil factoryUtil, - @Mocked Configuration config) { + @Mocked Configuration config) throws IllegalAccessException { new Expectations(config, FactoryUtil.class) {{ FactoryUtil.createConfiguration(FREEMARKER_VERSION); @@ -240,13 +241,13 @@ public class FreeMarkerMojoTest extends Assert { final File testCaseOutputDir = new File(TEST_OUTPUT_DIR, "setTemplateLoaderException"); - Deencapsulation.setField(mojo, "freeMarkerVersion", FREEMARKER_VERSION); - Deencapsulation.setField(mojo, "sourceDirectory", testCaseOutputDir); - Deencapsulation.setField(mojo, "templateDirectory", new File(testCaseOutputDir, "template")); - Deencapsulation.setField(mojo, "generatorDirectory", new File(testCaseOutputDir, "data")); - Deencapsulation.setField(mojo, "outputDirectory", new File(testCaseOutputDir, "generated-files")); - Deencapsulation.setField(mojo, "mojo", mojoExecution); - Deencapsulation.setField(mojo, "session", session); + 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); new File(testCaseOutputDir, "data").mkdirs(); new File(testCaseOutputDir, "template").mkdirs(); @@ -261,19 +262,19 @@ public class FreeMarkerMojoTest extends Assert { @Mocked MavenSession session, @Mocked MavenProject project, @Mocked MojoExecution mojoExecution, - @Mocked Configuration config) throws Exception { + @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"); - Deencapsulation.setField(mojo, "freeMarkerVersion", FREEMARKER_VERSION); - Deencapsulation.setField(mojo, "sourceDirectory", sourceDirectory); - Deencapsulation.setField(mojo, "templateDirectory", new File(sourceDirectory, "template")); - Deencapsulation.setField(mojo, "generatorDirectory", new File(sourceDirectory, "data")); - Deencapsulation.setField(mojo, "outputDirectory", new File(testCaseOutputDir, "generated-files")); - Deencapsulation.setField(mojo, "mojo", mojoExecution); - Deencapsulation.setField(mojo, "session", session); + 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(); @@ -293,7 +294,7 @@ public class FreeMarkerMojoTest extends Assert { @Mocked MavenProject project, @Mocked MojoExecution mojoExecution, @Mocked FactoryUtil factoryUtil, - @Mocked Configuration config) throws Exception { + @Mocked Configuration config) throws IOException, IllegalAccessException { new Expectations(FactoryUtil.class) {{ FactoryUtil.createFileInputStream((File) any); @@ -305,15 +306,14 @@ public class FreeMarkerMojoTest extends Assert { final File sourceDirectory = new File("src/test/data/freemarker-mojo"); final File testCaseOutputDir = new File(TEST_OUTPUT_DIR, "loadFreemarkerPropertiesExceptionTest"); - Deencapsulation.setField(mojo, "freeMarkerVersion", FREEMARKER_VERSION); - Deencapsulation.setField(mojo, "sourceDirectory", sourceDirectory); - Deencapsulation.setField(mojo, "templateDirectory", new File(sourceDirectory, "template")); - Deencapsulation.setField(mojo, "generatorDirectory", new File(sourceDirectory, "data")); - Deencapsulation.setField(mojo, "outputDirectory", new File(testCaseOutputDir, "generated-files")); - Deencapsulation.setField(mojo, "mojo", mojoExecution); - Deencapsulation.setField(mojo, "session", session); + 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); - System.out.println("==== before mojo execute"); try { assertThatExceptionOfType(MojoExecutionException.class) .isThrownBy(mojo::execute) @@ -328,7 +328,7 @@ public class FreeMarkerMojoTest extends Assert { @Mocked MavenSession session, @Mocked MavenProject project, @Mocked MojoExecution mojoExecution, - @Mocked Configuration config) throws Exception { + @Mocked Configuration config) throws TemplateException, IllegalAccessException { new Expectations() {{ config.setSettings((Properties) any); @@ -340,13 +340,13 @@ public class FreeMarkerMojoTest extends Assert { final File sourceDirectory = new File("src/test/data/freemarker-mojo"); final File testCaseOutputDir = new File(TEST_OUTPUT_DIR, "loadFreemarkerProperties"); - Deencapsulation.setField(mojo, "freeMarkerVersion", FREEMARKER_VERSION); - Deencapsulation.setField(mojo, "sourceDirectory", sourceDirectory); - Deencapsulation.setField(mojo, "templateDirectory", new File(sourceDirectory, "template")); - Deencapsulation.setField(mojo, "generatorDirectory", new File(sourceDirectory, "data")); - Deencapsulation.setField(mojo, "outputDirectory", new File(testCaseOutputDir, "generated-files")); - Deencapsulation.setField(mojo, "mojo", mojoExecution); - Deencapsulation.setField(mojo, "session", session); + 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)
