diff --git a/solve/gradle-parts/base.gradle b/solve/gradle-parts/base.gradle index 6851c021aa2a0b5aba2b438f97d5e18eebb290a5..eacb43e275cc07e081adc2a416852f1c426a6254 100644 --- a/solve/gradle-parts/base.gradle +++ b/solve/gradle-parts/base.gradle @@ -26,7 +26,7 @@ dependencies { testImplementation group: 'junit', name: 'junit', version: junitVersion testImplementation group: 'org.hamcrest', name: 'hamcrest-junit', version: '1.0.0.0' testImplementation 'com.opencsv:opencsv:3.8' - testImplementation 'com.github.stefanbirkner:system-rules:1.19.0' + testImplementation 'com.github.stefanbirkner:system-lambda:1.2.0' } mainClassName = 'de.tudresden.inf.st.ttc18live.LiveContestDriverXml' diff --git a/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/AbstractAllTest.java b/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/AbstractAllTest.java index b145a7df0138fbe8866e9d4f6a6212aad530a404..931b3b82271d1fb2e8969a780c767cf451d408f2 100644 --- a/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/AbstractAllTest.java +++ b/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/AbstractAllTest.java @@ -1,11 +1,13 @@ package de.tudresden.inf.st.ttc18live.test; +import com.github.stefanbirkner.systemlambda.Statement; +import com.github.stefanbirkner.systemlambda.SystemLambda; import com.opencsv.CSVReader; import de.tudresden.inf.st.ttc18live.AbstractLiveContestDriver; import de.tudresden.inf.st.ttc18live.LiveContestDriverXml; import org.junit.*; -import org.junit.contrib.java.lang.system.EnvironmentVariables; -import org.junit.contrib.java.lang.system.SystemOutRule; +//import org.junit.contrib.java.lang.system.EnvironmentVariables; +//import org.junit.contrib.java.lang.system.SystemOutRule; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; @@ -23,9 +25,9 @@ import java.util.*; */ @RunWith(Parameterized.class) public abstract class AbstractAllTest { - @Rule - public final EnvironmentVariables environmentVariables = new EnvironmentVariables(); - @Rule public final SystemOutRule systemOutRule = new SystemOutRule().enableLog(); +// @Rule +// public final EnvironmentVariables environmentVariables = new EnvironmentVariables(); +// @Rule public final SystemOutRule systemOutRule = new SystemOutRule().enableLog(); private final static int maxSequence = 5; private final static Path modelsPath = Paths.get("src", "test", "resources", "models"); @@ -74,11 +76,12 @@ public abstract class AbstractAllTest { } } - private void setVars() { - environmentVariables.set("ChangeSet", Integer.toString(size)); - environmentVariables.set("ChangePath", modelsPath.resolve(Integer.toString(size)).toFile().getAbsolutePath()); - environmentVariables.set("Sequences", Integer.toString(maxSequence)); - environmentVariables.set("Query", "Q" + query); + private void withVars(Statement statement) throws Exception { + SystemLambda.withEnvironmentVariable("ChangeSet", Integer.toString(size)) + .and("ChangePath", modelsPath.resolve(Integer.toString(size)).toFile().getAbsolutePath()) + .and("Sequences", Integer.toString(maxSequence)) + .and("Query", "Q" + query) + .execute(statement); } private AbstractLiveContestDriver driver; @@ -87,23 +90,19 @@ public abstract class AbstractAllTest { this.query = query; this.size = size; this.localExpected = expected.get(query).get(size); - setVars(); - } - - @Before - public void setupDriver() { - driver = createDriver(); } abstract AbstractLiveContestDriver createDriver(); @Test - public void test() { + public void test() throws Exception { System.out.println(query + "," + size + ":" + expected.get(query).get(size)); - systemOutRule.clearLog(); - driver.mainImpl(); + String systemOut = SystemLambda.tapSystemOut(() -> withVars(() -> { + driver = createDriver(); + driver.mainImpl(); + })); Map<Integer, String> actual = new HashMap<>(); - for (String line : systemOutRule.getLog().split("\n")) { + for (String line : systemOut.split("\n")) { String[] tokens = line.split(";"); if ("Elements".equals(tokens[6])) { int iteration = Integer.parseInt(tokens[4]); diff --git a/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/AllEmfTest.java b/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/AllEmfTest.java index 9859238d9b140f205bac45a115971ff4d65e6a88..e57dda5758894c4351121c2bba0000f825e119ae 100644 --- a/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/AllEmfTest.java +++ b/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/AllEmfTest.java @@ -16,11 +16,6 @@ public class AllEmfTest extends AbstractAllTest { @Override AbstractLiveContestDriver createDriver() { - return new LiveContestDriverEMF() { -// @Override -// public void Initial() { -// // do nothing (i.e. do not throw an Exception) -// } - }; + return new LiveContestDriverEMF(); } } diff --git a/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/AllXmlTest.java b/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/AllXmlTest.java index 8ae095e24e20619c29734ec07a2df98229d2fd15..c3bb53cbbdd1b6e7000016382dbc5c2c264af165 100644 --- a/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/AllXmlTest.java +++ b/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/AllXmlTest.java @@ -1,23 +1,7 @@ package de.tudresden.inf.st.ttc18live.test; -import com.opencsv.CSVReader; import de.tudresden.inf.st.ttc18live.AbstractLiveContestDriver; import de.tudresden.inf.st.ttc18live.LiveContestDriverXml; -import org.junit.*; -import org.junit.contrib.java.lang.system.EnvironmentVariables; -import org.junit.contrib.java.lang.system.SystemOutRule; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; - -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; /** * Test against given expected query results using XML solution.