diff options
author | Thibault Gagnaux <thibault.gagnaux@bit.admin.ch> | 2021-07-08 12:18:42 +0200 |
---|---|---|
committer | Thibault Gagnaux <thibault.gagnaux@bit.admin.ch> | 2021-07-08 16:04:54 +0200 |
commit | ce39d8f5cdfae2788c4664e08d895afead76c682 (patch) | |
tree | f61be38f42c1b93a8b0cebdaaad52a90931b870e /src/test | |
parent | 2fceaad440fffc1f6edbd8e4887469cc948edb5d (diff) | |
download | frege-gradle-plugin-ce39d8f5cdfae2788c4664e08d895afead76c682.tar.gz frege-gradle-plugin-ce39d8f5cdfae2788c4664e08d895afead76c682.tar.bz2 frege-gradle-plugin-ce39d8f5cdfae2788c4664e08d895afead76c682.zip |
Refactor: Uses junit5 nested tests for a better structure
Setups missing java 11 in the github workflow
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/java/ch/fhnw/thga/gradleplugins/FregeDTOTest.java | 67 | ||||
-rw-r--r-- | src/test/java/ch/fhnw/thga/gradleplugins/GradleBuildFileConversionTest.java | 74 |
2 files changed, 74 insertions, 67 deletions
diff --git a/src/test/java/ch/fhnw/thga/gradleplugins/FregeDTOTest.java b/src/test/java/ch/fhnw/thga/gradleplugins/FregeDTOTest.java deleted file mode 100644 index 8df6eae..0000000 --- a/src/test/java/ch/fhnw/thga/gradleplugins/FregeDTOTest.java +++ /dev/null @@ -1,67 +0,0 @@ -package ch.fhnw.thga.gradleplugins; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.stream.Stream; -import java.util.stream.Collectors; - -import org.junit.jupiter.api.Test; - -public class FregeDTOTest { - private final FregeDTOBuilder fregeBuilder = new FregeDTOBuilder(); - - private static String buildFilePluginString(String pluginId) { - return String.format("id '%s'", pluginId); - } - - static String createPluginsSection(Stream<String> pluginIds) { - String plugins = pluginIds.map(pluginId -> buildFilePluginString(pluginId)).collect(Collectors.joining("\n ")); - return String.format("plugins {\n %s\n}\n", plugins); - } - - // TODO: Is there a better alternative? - // needed helper method because reflection does NOT return the fields in order - private void assertStringContainsSubStrings(String s, Stream<String> subStrings) { - assertTrue(subStrings.allMatch(substring -> s.contains(substring))); - } - - @Test - void given_version_then_fregeDTO_can_be_converted_to_build_file_string() { - FregeDTO fregeDTO = fregeBuilder.version("'3.25'").build(); - String expected = "version = '3.25'"; - assertEquals(expected, fregeDTO.toBuildFile()); - } - - @Test - void given_version_and_release_then_fregeDTO_can_be_converted_to_build_file_string() { - FregeDTO fregeDTO = fregeBuilder.version("'3.25'").release("'3.25alpha'").build(); - String expected = "version = '3.25'\n release = '3.25alpha'"; - assertStringContainsSubStrings(expected, fregeDTO.toBuildFile().lines()); - } - - @Test - void given_version_release_and_compiler_download_dir_then_fregeDTO_can_be_converted_to_build_file_string() { - FregeDTO fregeDTO = fregeBuilder.version("'3.25'").release("'3.25alpha'") - .compilerDownloadDir("layout.projectDirectory.dir('dist')").build(); - String expected = "version = '3.25'\n release = '3.25alpha'\n compilerDownloadDir = layout.projectDirectory.dir('dist')"; - assertStringContainsSubStrings(expected, fregeDTO.toBuildFile().lines()); - } - - @Test - void given_single_plugin_id_then_it_is_correctly_converted_to_build_file_string() { - String pluginId = "frege"; - Stream<String> pluginIds = Stream.of(pluginId); - String expected = "plugins {\n" + " id '" + pluginId + "'\n" + "}\n"; - assertEquals(expected, createPluginsSection(pluginIds)); - } - - @Test - void given_multiple_plugin_ids_then_they_are_correctly_converted_to_build_file_string() { - String fregeId = "frege"; - String javaId = "java"; - Stream<String> pluginIds = Stream.of(fregeId, javaId); - String expected = "plugins {\n" + " id '" + fregeId + "'\n" + " id '" + javaId + "'\n" + "}\n"; - assertEquals(expected, createPluginsSection(pluginIds)); - } -} diff --git a/src/test/java/ch/fhnw/thga/gradleplugins/GradleBuildFileConversionTest.java b/src/test/java/ch/fhnw/thga/gradleplugins/GradleBuildFileConversionTest.java new file mode 100644 index 0000000..80c8827 --- /dev/null +++ b/src/test/java/ch/fhnw/thga/gradleplugins/GradleBuildFileConversionTest.java @@ -0,0 +1,74 @@ +package ch.fhnw.thga.gradleplugins; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.stream.Stream; +import java.util.stream.Collectors; + +import org.junit.jupiter.api.DisplayNameGenerator; +import org.junit.jupiter.api.IndicativeSentencesGeneration; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.TestInstance.Lifecycle; + +@TestInstance(Lifecycle.PER_CLASS) +public class GradleBuildFileConversionTest { + private final FregeDTOBuilder fregeBuilder = new FregeDTOBuilder(); + + private static String buildFilePluginString(String pluginId) { + return String.format("id '%s'", pluginId); + } + + static String createPluginsSection(Stream<String> pluginIds) { + String plugins = pluginIds.map(pluginId -> buildFilePluginString(pluginId)).collect(Collectors.joining("\n ")); + return String.format("plugins {\n %s\n}\n", plugins); + } + + private void assertStringContainsSubStrings(String s, Stream<String> subStrings) { + assertTrue(subStrings.allMatch(substring -> s.contains(substring))); + } + + @Nested + @IndicativeSentencesGeneration(separator = " -> ", generator = DisplayNameGenerator.ReplaceUnderscores.class) + class Converting_Frege_DTO_to_build_file_key_value_pairs_works { + + @Test + void given_single_version_property() { + FregeDTO fregeDTO = fregeBuilder.version("'3.25'").build(); + String expected = "version = '3.25'"; + assertEquals(expected, fregeDTO.toBuildFile()); + } + + @Test + void given_multiple_properties_in_non_deterministic_order() { + FregeDTO fregeDTO = fregeBuilder.version("'3.25'").release("'3.25alpha'") + .compilerDownloadDir("layout.projectDirectory.dir('dist')").build(); + String expected = "version = '3.25'\n release = '3.25alpha'\n compilerDownloadDir = layout.projectDirectory.dir('dist')"; + assertStringContainsSubStrings(expected, fregeDTO.toBuildFile().lines()); + } + } + + @Nested + @IndicativeSentencesGeneration(separator = " -> ", generator = DisplayNameGenerator.ReplaceUnderscores.class) + class Creating_plugin_section_works { + + @Test + void given_single_plugin_id() { + String pluginId = "frege"; + Stream<String> pluginIds = Stream.of(pluginId); + String expected = "plugins {\n" + " id '" + pluginId + "'\n" + "}\n"; + assertEquals(expected, createPluginsSection(pluginIds)); + } + + @Test + void given_multiple_plugin_ids() { + String fregeId = "frege"; + String javaId = "java"; + Stream<String> pluginIds = Stream.of(fregeId, javaId); + String expected = "plugins {\n" + " id '" + fregeId + "'\n" + " id '" + javaId + "'\n" + "}\n"; + assertEquals(expected, createPluginsSection(pluginIds)); + } + } +} |