aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-09-23 16:08:46 +0100
committerMichael Williamson <mike@zwobble.org>2023-09-23 16:08:46 +0100
commit22b8e0b0b04f1320b76804c34785b97081d378c7 (patch)
tree96d81e524a8248af751cc8d0e86d4b6b2cf457e1 /src/test/java
parent9a61ec7d9a85e396b99f2727f226b680f8159d59 (diff)
Extract matcher for silent exit
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/patio/PatioExampleTests.java21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/test/java/org/shedlang/compiler/patio/PatioExampleTests.java b/src/test/java/org/shedlang/compiler/patio/PatioExampleTests.java
index 2718e85f..9187ea2c 100644
--- a/src/test/java/org/shedlang/compiler/patio/PatioExampleTests.java
+++ b/src/test/java/org/shedlang/compiler/patio/PatioExampleTests.java
@@ -1,17 +1,18 @@
package org.shedlang.compiler.patio;
import org.junit.jupiter.api.Test;
-import org.shedlang.compiler.testing.ExecutionResult;
import org.shedlang.compiler.patio.ast.PatioCompilationUnit;
import org.shedlang.compiler.patio.ast.PatioFunctionDefinition;
import org.shedlang.compiler.patio.ast.types.PatioTypes;
import org.shedlang.compiler.patio.instructions.Patio;
+import org.shedlang.compiler.testing.ExecutionResult;
+import org.zwobble.precisely.Matcher;
import java.io.IOException;
import java.util.List;
import static org.zwobble.precisely.AssertThat.assertThat;
-import static org.zwobble.precisely.Matchers.equalTo;
+import static org.zwobble.precisely.Matchers.*;
public abstract class PatioExampleTests {
protected static final String FUNCTION_NAME = "run";
@@ -43,9 +44,7 @@ public abstract class PatioExampleTests {
var result = run(patio);
- assertThat(result.stderr(), equalTo(""));
- assertThat(result.stdout(), equalTo(""));
- assertThat(result.exitCode(), equalTo(47));
+ assertThat(result, isSilentExit(47));
}
@Test
@@ -86,9 +85,15 @@ public abstract class PatioExampleTests {
var result = run(patio);
- assertThat(result.stderr(), equalTo(""));
- assertThat(result.stdout(), equalTo(""));
- assertThat(result.exitCode(), equalTo(47));
+ assertThat(result, isSilentExit(47));
+ }
+
+ private Matcher<ExecutionResult> isSilentExit(int exitCode) {
+ return allOf(
+ has("stderr", x -> x.stderr(), equalTo("")),
+ has("stdout", x -> x.stdout(), equalTo("")),
+ has("exitCode", x -> x.exitCode(), equalTo(exitCode))
+ );
}
protected abstract ExecutionResult run(PatioCompilationUnit patio) throws IOException, InterruptedException;