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 841c7141260690e805ef140c0d37c6fc686b3f4a Author: Siegfried Goeschl <[email protected]> AuthorDate: Sat Jan 23 17:08:57 2021 +0100 FREEMARKER-156 [freemarker-generator] Migrate to Mockito --- .../generator/maven/OutputGeneratorTest.java | 64 ++++++---------------- 1 file changed, 17 insertions(+), 47 deletions(-) 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 95258b1..bd8680a 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 @@ -19,21 +19,15 @@ package org.apache.freemarker.generator.maven; -import freemarker.cache.FileTemplateLoader; import freemarker.template.Configuration; -import mockit.Expectations; -import mockit.Mocked; import org.assertj.core.api.*; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.BeforeClass; +import org.junit.Test; import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; -import java.nio.file.Path; -import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -53,37 +47,14 @@ public class OutputGeneratorTest { private Configuration config; - @SuppressWarnings("unchecked") - @BeforeMethod - public void setupDataModel() { - dataModel.clear(); - dataModel.put("testVar", "test value"); - dataModel.put("pomProperties", new HashMap<String, String>()); - ((Map<String, String>) dataModel.get("pomProperties")).put("pomVar", "pom value"); - } - @BeforeClass - public static void cleanFields() throws IOException { - if (!TEST_DIR.isDirectory()) { - throw new RuntimeException("Can't find required test data directory. " - + "If running test outside of maven, make sure working directory is the project directory. " - + "Looking for: " + TEST_DIR); - } - - // Clean output dir before each run. - final File outputDir = new File("target/test-output/generating-file-visitor"); - if (outputDir.exists()) { - // Recursively delete output from previous run. - Files.walk(outputDir.toPath()) - .sorted(Comparator.reverseOrder()) - .map(Path::toFile) - .forEach(File::delete); - } + public static void beforeClass() throws IOException { + UnitTestHelper.checkTestDir(TEST_DIR); + UnitTestHelper.deleteTestOutputDir(OUTPUT_DIR); } - @BeforeMethod - public void before() throws IOException { - config = configuration(); + public OutputGeneratorTest() { + config = UnitTestHelper.configuration(TEMPLATE_DIR); dataModel = dataModel(); } @@ -227,6 +198,7 @@ public class OutputGeneratorTest { builder.addTemplateLocation(templateFile.toPath()); builder.addDataModel(dataModel); final OutputGenerator generator = builder.create(); + Assertions.assertThatExceptionOfType(RuntimeException.class) .isThrownBy(() -> generator.generate(config)) .withMessage("Could not read template: missing.ftl"); @@ -245,6 +217,7 @@ public class OutputGeneratorTest { dataModel.remove("testVar"); builder.addDataModel(dataModel); final OutputGenerator generator = builder.create(); + Assertions.assertThatExceptionOfType(RuntimeException.class) .isThrownBy(() -> generator.generate(config)) .withMessageStartingWith("Could not process template associated with data file"); @@ -271,6 +244,12 @@ 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, @@ -299,10 +278,12 @@ public class OutputGeneratorTest { 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() { @@ -312,15 +293,4 @@ public class OutputGeneratorTest { ((Map<String, String>) result.get("pomProperties")).put("pomVar", "pom value"); return result; } - - private static Configuration configuration() { - try { - final Configuration configuration = new Configuration(Configuration.VERSION_2_3_23); - configuration.setDefaultEncoding("UTF-8"); - configuration.setTemplateLoader(new FileTemplateLoader(TEMPLATE_DIR)); - return configuration; - } catch (Exception e) { - throw new RuntimeException("Failed to create Freemarker configuration", e); - } - } }
