aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/ch/fhnw/thga
diff options
context:
space:
mode:
authorThibault Gagnaux <thibault.gagnaux@bit.admin.ch>2021-07-08 12:18:42 +0200
committerThibault Gagnaux <thibault.gagnaux@bit.admin.ch>2021-07-08 16:04:54 +0200
commitce39d8f5cdfae2788c4664e08d895afead76c682 (patch)
treef61be38f42c1b93a8b0cebdaaad52a90931b870e /src/test/java/ch/fhnw/thga
parent2fceaad440fffc1f6edbd8e4887469cc948edb5d (diff)
downloadfrege-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/java/ch/fhnw/thga')
-rw-r--r--src/test/java/ch/fhnw/thga/gradleplugins/FregeDTOTest.java67
-rw-r--r--src/test/java/ch/fhnw/thga/gradleplugins/GradleBuildFileConversionTest.java74
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));
+ }
+ }
+}