aboutsummaryrefslogtreecommitdiff
path: root/src/functionalTest/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/functionalTest/java')
-rw-r--r--src/functionalTest/java/ch/fhnw/thga/gradleplugins/CompileFregeTaskFunctionalTest.java2
-rw-r--r--src/functionalTest/java/ch/fhnw/thga/gradleplugins/InitFregeTaskFunctionalTest.java96
-rw-r--r--src/functionalTest/java/ch/fhnw/thga/gradleplugins/ReplFregeTaskFunctionalTest.java2
-rw-r--r--src/functionalTest/java/ch/fhnw/thga/gradleplugins/RunFregeTaskFunctionalTest.java2
-rw-r--r--src/functionalTest/java/ch/fhnw/thga/gradleplugins/SetupFregeTaskFunctionalTest.java33
-rw-r--r--src/functionalTest/java/ch/fhnw/thga/gradleplugins/SharedFunctionalTestLogic.java79
6 files changed, 116 insertions, 98 deletions
diff --git a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/CompileFregeTaskFunctionalTest.java b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/CompileFregeTaskFunctionalTest.java
index 90a459c..642f958 100644
--- a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/CompileFregeTaskFunctionalTest.java
+++ b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/CompileFregeTaskFunctionalTest.java
@@ -5,7 +5,7 @@ import static ch.fhnw.thga.gradleplugins.FregePlugin.COMPILE_FREGE_TASK_NAME;
import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.createFregeSection;
import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.runAndFailGradleTask;
import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.runGradleTask;
-import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.NEW_LINE;
+import static ch.fhnw.thga.gradleplugins.SharedTaskLogic.NEW_LINE;
import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.MINIMAL_BUILD_FILE_CONFIG;
import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.COMPLETION_FR;
import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.assertFileExists;
diff --git a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/InitFregeTaskFunctionalTest.java b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/InitFregeTaskFunctionalTest.java
new file mode 100644
index 0000000..cd1f4ab
--- /dev/null
+++ b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/InitFregeTaskFunctionalTest.java
@@ -0,0 +1,96 @@
+package ch.fhnw.thga.gradleplugins;
+
+import static ch.fhnw.thga.gradleplugins.FregeExtension.DEFAULT_RELATIVE_SOURCE_DIR;
+import static ch.fhnw.thga.gradleplugins.FregePlugin.COMPILE_FREGE_TASK_NAME;
+import static ch.fhnw.thga.gradleplugins.FregePlugin.INIT_FREGE_TASK_NAME;
+import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.MINIMAL_BUILD_FILE_CONFIG;
+import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.assertFileExists;
+import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.runGradleTask;
+import static org.gradle.testkit.runner.TaskOutcome.SUCCESS;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.io.File;
+
+import org.gradle.api.Project;
+import org.gradle.testkit.runner.BuildResult;
+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.io.TempDir;
+
+import ch.fhnw.thga.gradleplugins.fregeproject.FregeProjectBuilder;
+import ch.fhnw.thga.gradleplugins.fregeproject.ProjectRoot;
+
+public class InitFregeTaskFunctionalTest
+{
+ private static ProjectRoot FREGE_PROJECT_BUILDER = FregeProjectBuilder.builder();
+
+ @Nested
+ @IndicativeSentencesGeneration(
+ separator = " -> ",
+ generator = DisplayNameGenerator.ReplaceUnderscores.class)
+ class Init_frege_task_works {
+ @Test
+ void given_minimal_build_file_config(
+ @TempDir File testProjectDir)
+ throws Exception
+ {
+ Project project = FREGE_PROJECT_BUILDER
+ .projectRoot(testProjectDir)
+ .buildFile(MINIMAL_BUILD_FILE_CONFIG)
+ .build();
+
+ BuildResult result = runGradleTask(testProjectDir, INIT_FREGE_TASK_NAME);
+
+ assertTrue(
+ project
+ .getTasks()
+ .getByName(INIT_FREGE_TASK_NAME) instanceof InitFregeTask
+ );
+ assertEquals(
+ SUCCESS,
+ result.task(":" + INIT_FREGE_TASK_NAME).getOutcome()
+ );
+ assertFileExists(
+ testProjectDir.toPath().resolve(DEFAULT_RELATIVE_SOURCE_DIR).toFile(),
+ "examples/HelloFrege.fr"
+ );
+
+ BuildResult compileHelloFrege = runGradleTask(testProjectDir, COMPILE_FREGE_TASK_NAME);
+ assertEquals(SUCCESS, compileHelloFrege.task(":" + COMPILE_FREGE_TASK_NAME).getOutcome());
+ }
+
+ @Test
+ void given_custom_module_name_on_command_line(
+ @TempDir File testProjectDir)
+ throws Exception
+ {
+ Project project = FREGE_PROJECT_BUILDER
+ .projectRoot(testProjectDir)
+ .buildFile(MINIMAL_BUILD_FILE_CONFIG)
+ .build();
+
+ BuildResult result = runGradleTask(
+ testProjectDir,
+ INIT_FREGE_TASK_NAME,
+ "--moduleName=ch.fhnw.thga.HelloFrege"
+ );
+
+ assertTrue(
+ project
+ .getTasks()
+ .getByName(INIT_FREGE_TASK_NAME) instanceof InitFregeTask
+ );
+ assertEquals(
+ SUCCESS,
+ result.task(":" + INIT_FREGE_TASK_NAME).getOutcome()
+ );
+ assertFileExists(
+ testProjectDir.toPath().resolve(DEFAULT_RELATIVE_SOURCE_DIR).toFile(),
+ "ch/fhnw/thga/HelloFrege.fr"
+ );
+ }
+ }
+}
diff --git a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/ReplFregeTaskFunctionalTest.java b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/ReplFregeTaskFunctionalTest.java
index 652a3c2..792883d 100644
--- a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/ReplFregeTaskFunctionalTest.java
+++ b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/ReplFregeTaskFunctionalTest.java
@@ -4,7 +4,7 @@ import static ch.fhnw.thga.gradleplugins.FregeExtension.DEFAULT_RELATIVE_SOURCE_
import static ch.fhnw.thga.gradleplugins.FregePlugin.REPL_FREGE_TASK_NAME;
import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.COMPLETION_FR;
import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.MINIMAL_BUILD_FILE_CONFIG;
-import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.NEW_LINE;
+import static ch.fhnw.thga.gradleplugins.SharedTaskLogic.NEW_LINE;
import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.assertFileDoesNotExist;
import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.assertFileExists;
import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.createFregeSection;
diff --git a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/RunFregeTaskFunctionalTest.java b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/RunFregeTaskFunctionalTest.java
index 9170547..ab93b3e 100644
--- a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/RunFregeTaskFunctionalTest.java
+++ b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/RunFregeTaskFunctionalTest.java
@@ -2,7 +2,7 @@ package ch.fhnw.thga.gradleplugins;
import static ch.fhnw.thga.gradleplugins.FregeExtension.DEFAULT_RELATIVE_SOURCE_DIR;
import static ch.fhnw.thga.gradleplugins.FregePlugin.RUN_FREGE_TASK_NAME;
-import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.NEW_LINE;
+import static ch.fhnw.thga.gradleplugins.SharedTaskLogic.NEW_LINE;
import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.createFregeSection;
import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.runAndFailGradleTask;
import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.runGradleTask;
diff --git a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/SetupFregeTaskFunctionalTest.java b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/SetupFregeTaskFunctionalTest.java
index 6781764..b0ced6d 100644
--- a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/SetupFregeTaskFunctionalTest.java
+++ b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/SetupFregeTaskFunctionalTest.java
@@ -2,6 +2,7 @@ package ch.fhnw.thga.gradleplugins;
import static ch.fhnw.thga.gradleplugins.FregeExtension.DEFAULT_RELATIVE_COMPILER_DOWNLOAD_DIR;
import static ch.fhnw.thga.gradleplugins.FregePlugin.SETUP_FREGE_TASK_NAME;
+import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.assertFileExists;
import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.createFregeSection;
import static ch.fhnw.thga.gradleplugins.SharedFunctionalTestLogic.runGradleTask;
import static org.gradle.testkit.runner.TaskOutcome.SUCCESS;
@@ -16,8 +17,8 @@ import org.gradle.testkit.runner.BuildResult;
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.Tag;
+import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
import ch.fhnw.thga.gradleplugins.fregeproject.FregeProjectBuilder;
@@ -26,20 +27,22 @@ import ch.fhnw.thga.gradleplugins.fregeproject.ProjectRoot;
@Tag("network")
class SetupFregeTaskFunctionalTest
{
- private static FregeDTOBuilder FREGE_BUILDER = FregeDTOBuilder.builder();
+ private static FregeDTOBuilder FREGE_BUILDER = FregeDTOBuilder.builder();
private static ProjectRoot FREGE_PROJECT_BUILDER = FregeProjectBuilder.builder();
@Nested
- @IndicativeSentencesGeneration(separator = " -> ", generator = DisplayNameGenerator.ReplaceUnderscores.class)
+ @IndicativeSentencesGeneration(
+ separator = " -> ",
+ generator = DisplayNameGenerator.ReplaceUnderscores.class)
class Setup_frege_task_works {
@Test
void given_minimal_build_file_config(@TempDir File testProjectDir) throws Exception
{
String minimalBuildFileConfig = createFregeSection(
FREGE_BUILDER
- .version("'3.25.84'")
- .release("'3.25alpha'")
- .build()
+ .version("'3.25.84'")
+ .release("'3.25alpha'")
+ .build()
);
Project project = FREGE_PROJECT_BUILDER
@@ -56,12 +59,9 @@ class SetupFregeTaskFunctionalTest
.getByName(SETUP_FREGE_TASK_NAME) instanceof SetupFregeTask
);
assertEquals(SUCCESS, result.task(":" + SETUP_FREGE_TASK_NAME).getOutcome());
- assertTrue(
- testProjectDir
- .toPath()
- .resolve(Paths.get(DEFAULT_RELATIVE_COMPILER_DOWNLOAD_DIR, "frege3.25.84.jar"))
- .toFile()
- .exists()
+ assertFileExists(
+ testProjectDir,
+ Paths.get(DEFAULT_RELATIVE_COMPILER_DOWNLOAD_DIR, "frege3.25.84.jar").toString()
);
}
@@ -92,12 +92,9 @@ class SetupFregeTaskFunctionalTest
.getByName(SETUP_FREGE_TASK_NAME) instanceof SetupFregeTask
);
assertEquals(SUCCESS, result.task(":" + SETUP_FREGE_TASK_NAME).getOutcome());
- assertTrue(
- testProjectDir
- .toPath()
- .resolve(Paths.get("dist", "frege3.25.84.jar"))
- .toFile()
- .exists()
+ assertFileExists(
+ testProjectDir,
+ Paths.get("dist", "frege3.25.84.jar").toString()
);
}
}
diff --git a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/SharedFunctionalTestLogic.java b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/SharedFunctionalTestLogic.java
index f935b28..1e6330c 100644
--- a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/SharedFunctionalTestLogic.java
+++ b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/SharedFunctionalTestLogic.java
@@ -1,20 +1,13 @@
package ch.fhnw.thga.gradleplugins;
+import static ch.fhnw.thga.gradleplugins.FregeExtension.DEFAULT_RELATIVE_SOURCE_DIR;
import static ch.fhnw.thga.gradleplugins.FregePlugin.FREGE_EXTENSION_NAME;
-import static ch.fhnw.thga.gradleplugins.FregePlugin.FREGE_PLUGIN_ID;
-import static ch.fhnw.thga.gradleplugins.GradleBuildFileConversionTest.createPluginsSection;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
-import static ch.fhnw.thga.gradleplugins.FregeExtension.DEFAULT_RELATIVE_SOURCE_DIR;
+import static ch.fhnw.thga.gradleplugins.SharedTaskLogic.NEW_LINE;
-import java.io.BufferedWriter;
import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.stream.Stream;
-import org.gradle.api.Project;
-import org.gradle.testfixtures.ProjectBuilder;
import org.gradle.testkit.runner.BuildResult;
import org.gradle.testkit.runner.GradleRunner;
@@ -22,7 +15,6 @@ import ch.fhnw.thga.gradleplugins.fregeproject.FregeSourceFile;
public class SharedFunctionalTestLogic
{
- public static final String NEW_LINE = System.lineSeparator();
public static final String MINIMAL_BUILD_FILE_CONFIG = createFregeSection(
FregeDTOBuilder
.builder()
@@ -83,31 +75,6 @@ public class SharedFunctionalTestLogic
System.lineSeparator());
}
- private static void writeFile(
- File destination,
- String content,
- boolean append)
- throws IOException
- {
- try (BufferedWriter output = new BufferedWriter(new FileWriter(destination, append)))
- {
- output.write(content);
- }
-
- }
-
- static File writeToFile(File destination, String content) throws IOException
- {
- writeFile(destination, content, false);
- return destination;
- }
-
- static File appendToFile(File destination, String content) throws IOException
- {
- writeFile(destination, System.lineSeparator() + content, true);
- return destination;
- }
-
static BuildResult runGradleTask(File testProjectDir, String... args)
{
return GradleRunner
@@ -127,46 +94,4 @@ public class SharedFunctionalTestLogic
.withArguments(args)
.buildAndFail();
}
-
- static File createSettingsFile(File testProjectDir) throws IOException
- {
- File settingsFile = new File(testProjectDir, "settings.gradle");
- return writeToFile(settingsFile, "rootProject.name='frege-plugin'");
- }
-
- private static File createFregePluginBuildFile(
- File testProjectDir)
- throws IOException
- {
- File buildFile = new File(testProjectDir, "build.gradle");
- return writeToFile(
- buildFile,
- createPluginsSection(Stream.of(FREGE_PLUGIN_ID)));
- }
-
- static File createFregeBuildFile(
- File testProjectDir,
- String fregeBuildFileConfig)
- throws IOException
- {
- return appendToFile(
- createFregePluginBuildFile(
- testProjectDir),
- fregeBuildFileConfig);
- }
-
- static Project createFregeGradleProject(
- File testProjectDir,
- String fregeBuildFileConfig)
- throws Exception
- {
- createSettingsFile(testProjectDir);
- createFregeBuildFile(testProjectDir, fregeBuildFileConfig);
- Project project = ProjectBuilder
- .builder()
- .withProjectDir(testProjectDir)
- .build();
- project.getPluginManager().apply(FREGE_PLUGIN_ID);
- return project;
- }
}