refactoring: Cli-Parser
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
package mc.cliparser;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
class CommandLineParserTest {
|
||||
|
||||
@Test
|
||||
void optionTest() {
|
||||
Option option = Option.builder().shortName("v").build();
|
||||
assertNull(option.longName());
|
||||
assertFalse(option.hasArgs());
|
||||
|
||||
option = Option.builder().longName("version").build();
|
||||
assertNull(option.shortName());
|
||||
assertFalse(option.hasArgs());
|
||||
|
||||
option = Option.builder().shortName("v").longName("value1").hasArgs(true).build();
|
||||
assertNotNull(option.shortName());
|
||||
assertNotNull(option.longName());
|
||||
assertTrue(option.hasArgs());
|
||||
}
|
||||
|
||||
@Test
|
||||
void shortOptionFlag() {
|
||||
Option option = Option.builder().shortName("v").build();
|
||||
|
||||
var parser = new CommandLineParser();
|
||||
parser.addOption(option);
|
||||
|
||||
CommandLine commandLine = parser.parse(new String[]{ "-v" });
|
||||
assertTrue(commandLine.has(option));
|
||||
}
|
||||
|
||||
@Test
|
||||
void longOptionFlag() {
|
||||
Option option = Option.builder().longName("version").build();
|
||||
|
||||
var parser = new CommandLineParser();
|
||||
parser.addOption(option);
|
||||
|
||||
CommandLine commandLine = parser.parse(new String[]{ "--version" });
|
||||
assertTrue(commandLine.has(option));
|
||||
}
|
||||
|
||||
@Test
|
||||
void argsOption() {
|
||||
Option option1 = Option.builder().shortName("v").longName("value1").hasArgs(true).build();
|
||||
Option option2 = Option.builder().shortName("a").longName("value2").hasArgs(true).build();
|
||||
|
||||
var parser = new CommandLineParser();
|
||||
parser.addOption(option1);
|
||||
parser.addOption(option2);
|
||||
|
||||
CommandLine commandLine = parser.parse(new String[]{ "--value1", "arg1", "-a", "arg2" });
|
||||
assertTrue(commandLine.has(option1));
|
||||
assertEquals("arg1", option1.value());
|
||||
assertTrue(commandLine.has(option2));
|
||||
assertEquals("arg2", option2.value());
|
||||
}
|
||||
|
||||
@Test
|
||||
void noPassOption() {
|
||||
Option option = Option.builder().longName("version").build();
|
||||
|
||||
var parser = new CommandLineParser();
|
||||
parser.addOption(option);
|
||||
|
||||
CommandLine commandLine = parser.parse(new String[]{ "--any-opt" });
|
||||
assertFalse(commandLine.has(option));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user