package com.cadrlife.devsearch.agent; import org.junit.Test; import java.io.ByteArrayOutputStream; import java.io.PrintStream; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class MainTest { @Test public void noArgUsage() throws Exception { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); int retVal = Main.exec(System.in, new PrintStream(outputStream), System.err, new String[]{}); String output = outputStream.toString(); // System.out.println(output); assertTrue(output, output.contains("Usage")); assertTrue(output, output.contains("update-index")); assertTrue(output, output.contains("checkout")); assertTrue(output, output.contains("update-contents")); assertEquals(1, retVal); } @Test public void unknownActionUsage() throws Exception { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); int retVal = Main.exec(System.in, new PrintStream(outputStream), System.err, new String[]{"other-action"}); String output = outputStream.toString(); // System.out.println(output); assertTrue(output, output.contains("Usage")); assertTrue(output, output.contains("update-index")); assertTrue(output, output.contains("checkout")); assertTrue(output, output.contains("update-contents")); assertEquals(1, retVal); } @Test public void updateIndexNoOptionsUsage() throws Exception { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); int retVal = Main.exec(System.in, new PrintStream(outputStream), System.err, new String[]{"update-index"}); String output = outputStream.toString(); assertTrue(output, output.contains("Usage")); assertTrue(output, output.contains("Missing required option")); assertEquals(1, retVal); } }