Archived
0

refactoring: Cli-Parser

This commit is contained in:
2021-06-13 14:32:00 +03:00
parent 59b374e623
commit 95474a32c4
7 changed files with 172 additions and 0 deletions

View File

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