blob: 9a8f3ab4a34630211ef045b63f371995643e2f7e [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.commons.cli;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
* Test case for the PatternOptionBuilder class
*
* @author Henri Yandell
**/
public class PatternOptionBuilderTest
extends TestCase
{
public static TestSuite suite()
{
return new TestSuite(PatternOptionBuilderTest.class);
}
public void testSimplePattern()
{
try {
Options options = PatternOptionBuilder.parsePattern("a:b@cde>f+n%t/");
String[] args = new String[] { "-c", "-a", "foo", "-b", "java.util.Vector", "-e", "build.xml", "-f", "java.util.Calendar", "-n", "4.5", "-t", "http://jakarta.apache.org/" };
CommandLineParser parser = new PosixParser();
CommandLine line = parser.parse(options,args);
assertEquals("flag a", "foo", line.getOptionValue("a"));
assertEquals("string flag a", "foo", line.getOptionObject("a"));
assertEquals("object flag b", new java.util.Vector(), line.getOptionObject("b"));
assertTrue("boolean true flag c", line.hasOption("c"));
assertFalse("boolean false flag d", line.hasOption("d"));
assertEquals("file flag e", new java.io.File("build.xml"), line.getOptionObject("e"));
assertEquals("class flag f", java.util.Calendar.class, line.getOptionObject("f"));
assertEquals("number flag n", new Double(4.5), line.getOptionObject("n"));
assertEquals("url flag t", new java.net.URL("http://jakarta.apache.org/"), line.getOptionObject("t"));
// tests the char methods of CommandLine that delegate to the String methods
assertEquals("flag a", "foo", line.getOptionValue('a'));
assertEquals("string flag a", "foo", line.getOptionObject('a'));
assertEquals("object flag b", new java.util.Vector(), line.getOptionObject('b'));
assertTrue("boolean true flag c", line.hasOption('c'));
assertFalse("boolean false flag d", line.hasOption('d'));
assertEquals("file flag e", new java.io.File("build.xml"), line.getOptionObject('e'));
assertEquals("class flag f", java.util.Calendar.class, line.getOptionObject('f'));
assertEquals("number flag n", new Double(4.5), line.getOptionObject('n'));
assertEquals("url flag t", new java.net.URL("http://jakarta.apache.org/"), line.getOptionObject('t'));
/// DATES NOT SUPPORTED YET.
// assertEquals("number flag t", new java.util.Date(1023400137276L), line.getOptionObject('z'));
// input is: "Thu Jun 06 17:48:57 EDT 2002"
}
catch( ParseException exp ) {
fail( exp.getMessage() );
}
catch( java.net.MalformedURLException exp ) {
fail( exp.getMessage() );
}
}
}