View Javadoc

1   /**
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *     http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.commons.cli2.bug;
18  
19  import junit.framework.TestCase;
20  
21  import org.apache.commons.cli2.Argument;
22  import org.apache.commons.cli2.CommandLine;
23  import org.apache.commons.cli2.Group;
24  import org.apache.commons.cli2.Option;
25  import org.apache.commons.cli2.builder.ArgumentBuilder;
26  import org.apache.commons.cli2.builder.GroupBuilder;
27  import org.apache.commons.cli2.commandline.Parser;
28  import org.apache.commons.cli2.option.PropertyOption;
29  
30  /**
31   * http://issues.apache.org/jira/browse/CLI-12
32   */
33  public class BugCLI12Test extends TestCase {
34  
35    public void testBug() {
36      Argument arg = new ArgumentBuilder().withName("file").create();
37  
38      PropertyOption option = new PropertyOption();
39  
40      Group group = new GroupBuilder().withOption(option).withOption(arg).create();
41  
42      Parser p = new Parser();
43      p.setGroup(group);
44  
45      CommandLine cl = p.parseAndHelp( new String[] { "-Dmyprop1=myval1", "-Dmyprop2=myval2", "myfile" } );
46      if(cl == null) {
47        assertTrue("Couldn't parse valid commandLine", false);
48      }
49  
50      assertEquals( "myval1", cl.getProperty(option, "myprop1"));
51      assertEquals( "myval2", cl.getProperty(option, "myprop2"));
52  
53      String extraArgs = (String) cl.getValue(arg);
54      assertEquals( "myfile", extraArgs);
55    }
56  
57  }