From 22b8e0b0b04f1320b76804c34785b97081d378c7 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 23 Sep 2023 16:08:46 +0100 Subject: Extract matcher for silent exit --- .../shedlang/compiler/patio/PatioExampleTests.java | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'src/test/java') 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 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; -- cgit v1.2.3