aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/java/jopt-simple/src/test/java/joptsimple/OptionParserTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/java/jopt-simple/src/test/java/joptsimple/OptionParserTest.java')
-rw-r--r--third_party/java/jopt-simple/src/test/java/joptsimple/OptionParserTest.java318
1 files changed, 0 insertions, 318 deletions
diff --git a/third_party/java/jopt-simple/src/test/java/joptsimple/OptionParserTest.java b/third_party/java/jopt-simple/src/test/java/joptsimple/OptionParserTest.java
deleted file mode 100644
index 5538f2d171..0000000000
--- a/third_party/java/jopt-simple/src/test/java/joptsimple/OptionParserTest.java
+++ /dev/null
@@ -1,318 +0,0 @@
-/*
- The MIT License
-
- Copyright (c) 2004-2015 Paul R. Holser, Jr.
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-package joptsimple;
-
-import static java.lang.Boolean.*;
-import static java.util.Arrays.*;
-import static java.util.Collections.*;
-
-import org.hamcrest.Description;
-import org.hamcrest.TypeSafeMatcher;
-import org.junit.Test;
-
-import static joptsimple.ExceptionMatchers.*;
-import static org.junit.Assert.*;
-
-/**
- * @author <a href="mailto:pholser@alumni.rice.edu">Paul Holser</a>
- */
-public class OptionParserTest extends AbstractOptionParserFixture {
- @Test
- public void optionsAndNonOptionsInterspersed() {
- parser.accepts( "i" ).withOptionalArg();
- parser.accepts( "j" ).withOptionalArg();
- parser.accepts( "k" );
-
- OptionSet options =
- parser.parse( "-ibar", "-i", "junk", "xyz", "-jixnay", "foo", "-k", "blah", "--", "yermom" );
-
- assertOptionDetected( options, "i" );
- assertOptionDetected( options, "j" );
- assertOptionDetected( options, "k" );
- assertEquals( asList( "bar", "junk" ), options.valuesOf( "i" ) );
- assertEquals( singletonList( "ixnay" ), options.valuesOf( "j" ) );
- assertEquals( emptyList(), options.valuesOf( "k" ) );
- assertEquals( asList( "xyz", "foo", "blah", "yermom" ), options.nonOptionArguments() );
- }
-
- @Test
- public void shortOptionSpecifiedAsLongOptionWithoutArgument() {
- parser.accepts( "x" );
-
- OptionSet options = parser.parse( "--x" );
- assertOptionDetected( options, "x" );
- assertEquals( emptyList(), options.valuesOf( "x" ) );
- assertEquals( emptyList(), options.nonOptionArguments() );
- }
-
- @Test
- public void longOptionLeadsWithSingleDash() {
- parser.accepts( "quiet" );
- parser.accepts( "queen" );
-
- OptionSet options = parser.parse( "-quiet" );
- assertOptionDetected( options, "quiet" );
- assertEquals( emptyList(), options.valuesOf( "quiet" ) );
- assertEquals( emptyList(), options.nonOptionArguments() );
- }
-
- @Test
- public void parsesLongOptionAsAbbreviatedShortOption() {
- parser.accepts( "queen" );
-
- parser.parse( "-que" );
- }
-
- @Test
- public void parsesLongOptionAsAbbreviatedLongOption() {
- parser.accepts( "queen" );
-
- parser.parse( "--que" );
- }
-
- @Test
- public void longOptionLeadsWithSingleDashAmbiguous() {
- parser.accepts( "quiet" );
- parser.accepts( "queen" );
- thrown.expect( UnrecognizedOptionException.class );
- thrown.expect( withOption( "q" ) );
-
- parser.parse( "-q" );
- }
-
- @Test
- public void longOptionLeadsWithSingleDashAmbiguousButShortsAreLegal() {
- parser.accepts( "quiet" );
- parser.accepts( "queen" );
- parser.accepts( "q" );
- parser.accepts( "u" );
-
- OptionSet options = parser.parse( "-qu" );
- assertOptionDetected( options, "q" );
- assertOptionDetected( options, "u" );
- assertOptionNotDetected( options, "quiet" );
- assertOptionNotDetected( options, "queen" );
- assertEquals( emptyList(), options.valuesOf( "q" ) );
- assertEquals( emptyList(), options.valuesOf( "u" ) );
- assertEquals( emptyList(), options.nonOptionArguments() );
- }
-
- @Test
- public void longOptionLeadsWithSingleDashAmbiguousButAShortIsIllegal() {
- parser.accepts( "quiet" );
- parser.accepts( "queen" );
- parser.accepts( "q" );
- thrown.expect( UnrecognizedOptionException.class );
- thrown.expect( withOption( "u" ) );
-
- parser.parse( "-qu" );
- }
-
- @Test
- public void longOptionLeadsWithSingleDashAmbiguousButAShortAcceptsAnArgument() {
- parser.accepts( "quiet" );
- parser.accepts( "queen" );
- parser.accepts( "q" ).withOptionalArg();
-
- OptionSet options = parser.parse( "-qu" );
- assertOptionDetected( options, "q" );
- assertOptionNotDetected( options, "quiet" );
- assertOptionNotDetected( options, "queen" );
- assertEquals( singletonList( "u" ), options.valuesOf( "q" ) );
- assertEquals( emptyList(), options.nonOptionArguments() );
- }
-
- @Test
- public void resetHappensAfterParsing() {
- parser.accepts( "i" ).withOptionalArg();
- parser.accepts( "j" ).withOptionalArg();
- parser.accepts( "k" );
-
- String[] args = { "-ibar", "-i", "junk", "xyz", "-jixnay", "foo", "-k", "blah", "--", "yermom" };
-
- OptionSet options = parser.parse( args );
- assertEquals( options, parser.parse( args ) );
- }
-
- @Test
- public void typedArguments() {
- parser.accepts( "a" ).withRequiredArg().ofType( Boolean.class );
- parser.accepts( "b" ).withOptionalArg().ofType( Integer.class );
-
- OptionSet options = parser.parse( "-a", "false", "-b", "3", "extra" );
-
- assertOptionDetected( options, "a" );
- assertOptionDetected( options, "b" );
- assertEquals( FALSE, options.valueOf( "a" ) );
- assertEquals( singletonList( FALSE ), options.valuesOf( "a" ) );
- assertEquals( Integer.valueOf( "3" ), options.valueOf( "b" ) );
- assertEquals( singletonList( Integer.valueOf( "3" ) ), options.valuesOf( "b" ) );
- assertEquals( singletonList( "extra" ), options.nonOptionArguments() );
- }
-
- @Test
- public void allowsMixingOfOptionsAndNonOptions() {
- parser.accepts( "i" ).withRequiredArg();
- parser.accepts( "j" ).withOptionalArg();
- parser.accepts( "k" );
-
- OptionSet options = parser.parse( "a", "b", "c", "-i", "boo", "d", "e", "-k", "f", "-j" );
-
- assertOptionDetected( options, "i" );
- assertEquals( singletonList( "boo" ), options.valuesOf( "i" ) );
- assertOptionDetected( options, "j" );
- assertEquals( emptyList(), options.valuesOf( "j" ) );
- assertOptionDetected( options, "k" );
- assertEquals( emptyList(), options.valuesOf( "k" ) );
- assertEquals( asList( "a", "b", "c", "d", "e", "f" ), options.nonOptionArguments() );
- }
-
- @Test
- public void disallowsMixingOfOptionsAndNonOptionsUnderPosixlyCorrect() {
- parser.accepts( "i" ).withRequiredArg();
- parser.accepts( "j" ).withOptionalArg();
- parser.accepts( "k" );
- parser.posixlyCorrect( true );
-
- OptionSet options = parser.parse( "a", "b", "c", "-i", "boo", "d", "e", "-k", "f", "-j" );
-
- assertOptionNotDetected( options, "i" );
- assertEquals( emptyList(), options.valuesOf( "i" ) );
- assertOptionNotDetected( options, "j" );
- assertEquals( emptyList(), options.valuesOf( "j" ) );
- assertOptionNotDetected( options, "k" );
- assertEquals( emptyList(), options.valuesOf( "j" ) );
- assertEquals( asList( "a", "b", "c", "-i", "boo", "d", "e", "-k", "f", "-j" ), options.nonOptionArguments() );
- }
-
- @Test
- public void doubleHyphenSignalsEndsOfOptions() {
- OptionSet options = new OptionParser( "ab:c::de:f::" ) {
- {
- accepts( "verbose" );
- }
- }.parse( "-a", "-b=foo", "-c=bar", "--", "-d", "-verbose", "-e", "baz", "-f", "biz" );
-
- assertOptionDetected( options, "a" );
- assertEquals( emptyList(), options.valuesOf( "a" ) );
- assertOptionDetected( options, "b" );
- assertEquals( singletonList( "foo" ), options.valuesOf( "b" ) );
- assertOptionDetected( options, "c" );
- assertEquals( singletonList( "bar" ), options.valuesOf( "c" ) );
- assertOptionNotDetected( options, "d" );
- assertOptionNotDetected( options, "verbose" );
- assertOptionNotDetected( options, "e" );
- assertOptionNotDetected( options, "f" );
- assertEquals( asList( "-d", "-verbose", "-e", "baz", "-f", "biz" ), options.nonOptionArguments() );
- }
-
- @Test
- public void allowsEmptyStringAsArgumentOfOption() {
- OptionSpec<String> optionI = parser.accepts( "i" ).withOptionalArg();
-
- OptionSet options = parser.parse( "-i", "" );
-
- assertOptionDetected( options, "i" );
- assertEquals( "", optionI.value( options ) );
- }
-
- @Test
- public void allowsWhitespaceyStringAsArgumentOfOption() {
- String whitespace = " \t\t\n\n\f\f \r\r ";
- OptionSpec<String> optionJ = parser.accepts( "j" ).withRequiredArg();
-
- OptionSet options = parser.parse( "-j", whitespace );
-
- assertOptionDetected( options, "j" );
- assertEquals( whitespace, optionJ.value( options ) );
- }
-
- @Test
- public void allowsEmbeddedWhitespaceInArgumentOfOption() {
- String withEmbeddedWhitespace = " look at me, I'm flaunting the rules! ";
- OptionSpec<String> optionJ = parser.accepts( "j" ).withRequiredArg();
-
- OptionSet options = parser.parse( "-j", withEmbeddedWhitespace );
-
- assertOptionDetected( options, "j" );
- assertEquals( withEmbeddedWhitespace, optionJ.value( options ) );
- }
-
- @Test
- public void requiredOptionWithArgMissing() {
- parser.accepts( "t" ).withOptionalArg().required();
- thrown.expect( MissingRequiredOptionsException.class );
- thrown.expect( withOption( "t" ) );
-
- parser.parse();
- }
-
- @Test
- public void requiredOptionButHelpOptionPresent() {
- parser.accepts( "t" ).withOptionalArg().required();
- parser.accepts( "h" ).forHelp();
-
- parser.parse( "-h" );
- }
-
- @Test
- public void configurationPerformedLaterOverrideThosePerformedEarlierForTheSameOption() {
- parser.accepts( "t" ).withRequiredArg();
- parser.accepts( "t" ).withOptionalArg();
-
- parser.parse( "-t" );
- }
-
- @Test
- public void requiredOptionWithSynonymsMissing() {
- parser.acceptsAll( asList( "h", "help", "?" ) );
- parser.acceptsAll( asList( "f", "ff", "csv-file-name" ) ).withRequiredArg().required();
-
- thrown.expect( MissingRequiredOptionsException.class );
- thrown.expectMessage( new TypeSafeMatcher<String>() {
- @Override
- protected boolean matchesSafely( String item ) {
- return "Missing required option(s) [f/csv-file-name/ff]".equals( item );
- }
-
- public void describeTo(Description description) {
- // purposely doing nothing here
- }
- } );
-
- parser.parse();
- }
-
- @Test
- public void abbreviationsCanBeDisallowed() {
- OptionParser parser = new OptionParser(false);
- parser.accepts( "abbreviatable" );
-
- thrown.expect( UnrecognizedOptionException.class );
-
- parser.parse( "--abb" );
- }
-}