66 lines
2.4 KiB
Groovy
66 lines
2.4 KiB
Groovy
package com.jdbernard.util
|
|
|
|
import groovy.util.GroovyTestCase
|
|
|
|
import org.junit.Test
|
|
|
|
import static com.jdbernard.util.LightOptionParser.parseOptions
|
|
|
|
public class LightOptionParserTests extends GroovyTestCase {
|
|
|
|
def helpDef = ['h': [longName: 'help']]
|
|
def confDef = ['c': [longName: 'config', required: true, arguments: 1]]
|
|
def fullDef = [
|
|
h: [longName: 'help'],
|
|
c: [longName: 'config-file', required: true, arguments: 1],
|
|
i: [longName: 'input-file', arguments: 'variable'],
|
|
o: [longName: 'output-file2', arguments: 2]]
|
|
|
|
void testShortFlagPresent1() { assert parseOptions(helpDef, ["-h"]).h }
|
|
void testShortFlagPresent2() { assert parseOptions(helpDef, ["-h"]).help }
|
|
void testLongFlagPresent() { assert parseOptions(helpDef, ["--help"]).h}
|
|
void testShortFlagPresent() { assert parseOptions(helpDef, ["--help"]).help }
|
|
|
|
void testFlagAbsent1() { assert !parseOptions(helpDef, ["arg"]).h }
|
|
void testFlagAbsent2() { assert !parseOptions(helpDef, ["arg"]).help }
|
|
|
|
void testRequiredOptionMissing() {
|
|
try {
|
|
parseOptions(confDef, ["arg"])
|
|
assert false }
|
|
catch (Exception e) {} }
|
|
|
|
void testSingleArg1() {
|
|
assert parseOptions(confDef, ["-c", "confFile"]).c == ["confFile"] }
|
|
|
|
void testSingleArg2() {
|
|
assert parseOptions(confDef, ["-c", "confFile"]).config == ["confFile"] }
|
|
|
|
void testUnclaimedArgsAndFlag() {
|
|
def opts = parseOptions(helpDef, ["arg1", "-h", "arg2"])
|
|
assert opts.args == ["arg1", "arg2"] }
|
|
|
|
void testUnclaimedAndClaimedArgs() {
|
|
def opts = parseOptions(fullDef, ["-c", "confFile", "arg1"])
|
|
assert opts.args == ["arg1"]
|
|
assert opts.c == ["confFile"] }
|
|
|
|
/*void testMultipleArgs1() {
|
|
def opts = parseOptions(fullDef, ["-c", "confFile", ""])
|
|
assert .conf == ["confFile"] }*/
|
|
|
|
void testFull() {
|
|
def opts = parseOptions(fullDef,
|
|
["-c", "cfgFile", "arg1", "-i", "in1", "in2", "in3",
|
|
"-o", "out1", "out2", "arg2", "-h", "-i", "in4"])
|
|
|
|
assert opts.h
|
|
assert opts.c == ["cfgFile"]
|
|
assert opts['config-file'] == ["cfgFile"]
|
|
assert opts.args == ["arg1", "arg2"]
|
|
assert opts.i == ["in1", "in2", "in3", "in4"]
|
|
assert opts["input-file"] == ["in1", "in2", "in3", "in4"]
|
|
assert opts.o == ["out1", "out2"]
|
|
assert opts["output-file2"] == ["out1", "out2"] }
|
|
}
|