package environment; import static org.junit.Assert.*; import java.util.*; import org.junit.*; import error.ErrorManager; public class RuntimeEnvironmentTester { private static final String TERMINATED_SUCCESSFULLY = "TERMINATED_SUCCESSFULLY"; private static final String TERMINATED_EXCEPTIONALLY = "TERMINATED_EXCEPTIONALLY"; private RuntimeEnvironment environment; private Set indicatorSet; public RuntimeEnvironmentTester() { this.environment = RuntimeEnvironment.getInstance(); } @Before public void setUp() { this.indicatorSet = new HashSet<>(); } @Test public void assignInputName() { this.environment.setInputName("test"); assertEquals("test", this.environment.getInputName()); } @Test public void assignInput() { this.environment.setInput(System.in); assertEquals(System.in, this.environment.getInput()); } @Test public void assignOutput() { this.environment.setOutput(System.out); assertEquals(System.out, this.environment.getOutput()); } @Test public void assignErrorOutput() { this.environment.setErrorOutput(System.err); assertEquals(System.err, this.environment.getErrorOutput()); } @Test public void assignTerminationFunction() { environment.setTerminationFunction(() -> indicatorSet.add(TERMINATED_SUCCESSFULLY)); environment.terminateSuccessfully(); assertTrue(indicatorSet.contains(TERMINATED_SUCCESSFULLY)); } @Test public void assignErrorTerminationFunction() { environment.setErrorTerminationFunction(() -> indicatorSet.add(TERMINATED_EXCEPTIONALLY)); environment.terminateExceptionally(); assertTrue(indicatorSet.contains(TERMINATED_EXCEPTIONALLY)); } @Test public void assignErrorManager() { ErrorManager errorManager = new ErrorManager(); this.environment.setErrorManager(errorManager); assertEquals(errorManager, this.environment.getErrorManager()); } }