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);
}
}