package jdrivesync.cli;
import jdrivesync.exception.JDriveSyncException;
import org.junit.Test;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;
public class CliParserTest {
@Test
public void testLocalDirPresent() {
CliParser cliParser = new CliParser();
Options options = cliParser.parse(new String[]{"-l", System.getProperty("user.dir")});
assertThat(options.getLocalRootDir().isPresent(), is(true));
assertThat(options.getLocalRootDir().get().getAbsolutePath(), is(System.getProperty("user.dir")));
}
@Test
public void testLocalDirMissing() {
CliParser cliParser = new CliParser();
boolean exceptionThrown = false;
try {
cliParser.parse(new String[]{"-l"});
} catch (JDriveSyncException e) {
exceptionThrown = true;
assertThat(e.getReason(), is(JDriveSyncException.Reason.InvalidCliParameter));
}
assertThat(exceptionThrown, is(true));
}
@Test
public void testLocalDirMissingButNewOptionInstead() {
CliParser cliParser = new CliParser();
boolean exceptionThrown = false;
try {
cliParser.parse(new String[]{"-l", "-r"});
} catch (JDriveSyncException e) {
exceptionThrown = true;
assertThat(e.getReason(), is(JDriveSyncException.Reason.InvalidCliParameter));
}
assertThat(exceptionThrown, is(true));
}
@Test
public void testInvalidParameter() {
CliParser cliParser = new CliParser();
boolean exceptionThrown = false;
try {
cliParser.parse(new String[]{"-&"});
} catch (JDriveSyncException e) {
exceptionThrown = true;
assertThat(e.getReason(), is(JDriveSyncException.Reason.InvalidCliParameter));
}
assertThat(exceptionThrown, is(true));
}
}