3f68c67e0aa58e56e2fa846dd3c72e9ff7b4678f
[Mograsim.git] / net.mograsim.logic.model.am2900 / test / net / mograsim / logic / model / am2900 / util / DisplayStateOnFailure.java
1 package net.mograsim.logic.model.am2900.util;
2
3 import java.util.Objects;
4
5 import org.junit.jupiter.api.extension.AfterTestExecutionCallback;
6 import org.junit.jupiter.api.extension.ExtensionContext;
7
8 import net.mograsim.logic.model.am2900.TestableCircuit;
9
10 public class DisplayStateOnFailure implements AfterTestExecutionCallback
11 {
12         public static final boolean ACTIVE = true;
13
14         private final TestableCircuit circuitUnderTest;
15
16         public DisplayStateOnFailure(TestableCircuit circuitUnderTest)
17         {
18                 this.circuitUnderTest = Objects.requireNonNull(circuitUnderTest);
19         }
20
21         @Override
22         public void afterTestExecution(ExtensionContext context) throws Exception
23         {
24                 if (ACTIVE && context.getExecutionException().isPresent())
25                 {
26                         context.getExecutionException().get().printStackTrace();
27                         circuitUnderTest.displayState();
28                 }
29         }
30 }