package bjc.everge; import java.io.*; import java.util.*; import static org.junit.Assert.*; import static bjc.everge.TestUtils.*; import org.junit.Test; import bjc.utils.ioutils.*; /** * Unit tests for Everge front-end. * * @author Ben Culkin. */ @SuppressWarnings("javadoc") public class EvergeTest { @Test public void testConstruct() { @SuppressWarnings("unused") Everge evg = new Everge(); assertTrue(true); } @Test public void testArgs() { Everge evg = new Everge(); List errs = new ArrayList<>(); boolean stat = evg.processArgs(errs, "-v"); if (!stat) { for (String err : errs) { System.err.println(err); } assertTrue(false); } } @Test public void testLoad() { ByteArrayOutputStream baos = new ByteArrayOutputStream(); ByteArrayOutputStream errBaos = new ByteArrayOutputStream(); OutputStream normOut = new MirrorOutputStream(baos/*, System.out*/); OutputStream normErr = new MirrorOutputStream(errBaos/*, System.err*/); Everge evg = new Everge(); evg.setOutput(normOut); evg.setError(normErr); evg.processArgs("--verbosity", "4"); List errs = new ArrayList<>(); boolean stat = evg.processArgs(errs, "--input-status", "line", "--file", "data/test/evg-test1.evg", "data/test/evg-test1.inp"); if (!stat) { System.err.println("[ERROR] Did not succesfully process args"); for (String err : errs) { System.err.println(err); } System.err.println("[ERROR] Normal Output:\n--------------------"); System.err.println(baos.toString().trim()); System.err.println( "--------------------\n[ERROR] Error Output:\n------------------"); System.err.println(errBaos.toString().trim()); System.err.println("--------------------"); assertTrue(false); } String outp = baos.toString().trim(); assertMatches("b\\Rb", outp); } }