package joptsimple.examples;
import static java.util.Collections.*;
import joptsimple.OptionParser;
import joptsimple.OptionSet;
import org.junit.Test;
import static org.junit.Assert.*;
public class LongOptionsWithArgumentsTest {
@Test
public void supportsLongOptionsWithArgumentsAndAbbreviations() {
OptionParser parser = new OptionParser();
parser.accepts( "flag" );
parser.accepts( "count" ).withRequiredArg();
parser.accepts( "level" ).withOptionalArg();
OptionSet options = parser.parse( "-flag", "--co", "3", "--lev" );
assertTrue( options.has( "flag" ) );
assertTrue( options.has( "count" ) );
assertTrue( options.hasArgument( "count" ) );
assertEquals( "3", options.valueOf( "count" ) );
assertEquals( singletonList( "3" ), options.valuesOf( "count" ) );
assertTrue( options.has( "level" ) );
assertFalse( options.hasArgument( "level" ) );
assertNull( options.valueOf( "level" ) );
assertEquals( emptyList(), options.valuesOf( "level" ) );
}
@Test
public void supportsLongOptionsWithEmptyArguments() {
OptionParser parser = new OptionParser();
parser.accepts( "verbose" );
parser.accepts( "brief" );
parser.accepts( "add" );
parser.accepts( "append" );
parser.accepts( "delete" ).withRequiredArg();
parser.accepts( "create" ).withRequiredArg();
parser.accepts( "file" ).withRequiredArg();
OptionSet options = parser.parse( "--delete", "", "--add" );
assertTrue( options.has( "delete" ) );
assertTrue( options.hasArgument( "delete" ) );
assertEquals( "", options.valueOf( "delete" ) );
assertTrue( options.has( "add" ) );
options = parser.parse( "--delete=", "--add" );
assertTrue( options.has( "delete" ) );
assertTrue( options.hasArgument( "delete" ) );
assertEquals( "", options.valueOf( "delete" ) );
assertTrue( options.has( "add" ) );
}
}