Modified: oodt/trunk/cli/src/test/org/apache/oodt/cas/cli/parser/TestStdCmdLineOptionParser.java URL: http://svn.apache.org/viewvc/oodt/trunk/cli/src/test/org/apache/oodt/cas/cli/parser/TestStdCmdLineOptionParser.java?rev=1198891&r1=1198890&r2=1198891&view=diff ============================================================================== --- oodt/trunk/cli/src/test/org/apache/oodt/cas/cli/parser/TestStdCmdLineOptionParser.java (original) +++ oodt/trunk/cli/src/test/org/apache/oodt/cas/cli/parser/TestStdCmdLineOptionParser.java Mon Nov 7 19:38:18 2011 @@ -16,29 +16,12 @@ */ package org.apache.oodt.cas.cli.parser; -//OODT static imports -import static org.apache.oodt.cas.cli.util.CmdLineUtils.getOptionInstanceByName; - //JDK imports import java.io.IOException; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; +import java.util.List; //OODT imports -import org.apache.oodt.cas.cli.option.CmdLineOption; -import org.apache.oodt.cas.cli.option.CmdLineOptionInstance; -import org.apache.oodt.cas.cli.option.GroupCmdLineOption; -import org.apache.oodt.cas.cli.option.GroupSubOption; -import org.apache.oodt.cas.cli.option.HelpCmdLineOption; -import org.apache.oodt.cas.cli.option.SimpleCmdLineOption; -import org.apache.oodt.cas.cli.parser.StdCmdLineOptionParser; -import org.apache.oodt.cas.cli.util.Args; - -//Google imports -import com.google.common.collect.Lists; +import org.apache.oodt.cas.cli.util.ParsedArg; //JUnit imports import junit.framework.TestCase; @@ -51,137 +34,57 @@ import junit.framework.TestCase; public class TestStdCmdLineOptionParser extends TestCase { public void testParser() throws IOException { - Args args = new Args( + String[] args = "--group --list one two three four --scalar one --none --group --list one --scalar one" - .split(" ")); - Set<CmdLineOption> options = new HashSet<CmdLineOption>(); - SimpleCmdLineOption listOption, scalarOption, noneOption; - options.add(listOption = createSimpleOption("list", true)); - options.add(scalarOption = createSimpleOption("scalar", true)); - options.add(noneOption = createSimpleOption("none", false)); - options.add(noneOption = createGroupOption("group", new GroupSubOption( - listOption, true), new GroupSubOption(scalarOption, true), - new GroupSubOption(noneOption, false))); - options.add(new HelpCmdLineOption()); + .split(" "); // Parse args. - StdCmdLineOptionParser parser = new StdCmdLineOptionParser(); - Set<CmdLineOptionInstance> specifiedOptions = parser.parse(args, options); - - // Check that two option instances where returned. - assertEquals(2, specifiedOptions.size()); - - // Find first and second group. - Iterator<CmdLineOptionInstance> iter = specifiedOptions.iterator(); - CmdLineOptionInstance firstGroup = iter.next(); - CmdLineOptionInstance secondGroup = iter.next(); - if (getOptionInstanceByName("none", firstGroup.getSubOptions()) == null) { - CmdLineOptionInstance tmpHold = firstGroup; - firstGroup = secondGroup; - secondGroup = tmpHold; - } - - // verify first group's list was found and found its 4 args. - CmdLineOptionInstance firstGroupList = getOptionInstanceByName("list", - firstGroup.getSubOptions()); - assertNotNull(firstGroupList); - assertEquals(Arrays.asList("one", "two", "three", "four"), - firstGroupList.getValues()); - - // verify first group's scalar was found and found its 1 args. - CmdLineOptionInstance firstGroupScalar = getOptionInstanceByName( - "scalar", firstGroup.getSubOptions()); - assertNotNull(firstGroupScalar); - assertEquals(Arrays.asList("one"), firstGroupScalar.getValues()); - - // verify first group's none was found and found no args. - CmdLineOptionInstance firstGroupNone = getOptionInstanceByName("none", - firstGroup.getSubOptions()); - assertNotNull(firstGroupNone); - assertTrue(firstGroupNone.getValues().isEmpty()); - - // verify second group's list was found and found its 1 args. - CmdLineOptionInstance secondGroupList = getOptionInstanceByName("list", - secondGroup.getSubOptions()); - assertNotNull(secondGroupList); - assertEquals(Arrays.asList("one"), secondGroupList.getValues()); - - // verify second group's scalar was found and found its 1 args. - CmdLineOptionInstance secondGroupScalar = getOptionInstanceByName( - "scalar", secondGroup.getSubOptions()); - assertNotNull(secondGroupScalar); - assertEquals(Arrays.asList("one"), secondGroupScalar.getValues()); - - // verify second group's none was not found - CmdLineOptionInstance secondGroupNone = getOptionInstanceByName("none", - secondGroup.getSubOptions()); - assertNull(secondGroupNone); - } - - public void testGetOptions() throws IOException { - Args args = new Args("--scalar one --none".split(" ")); - SimpleCmdLineOption option = createSimpleOption( - StdCmdLineOptionParser.getOptionName(args.getAndIncrement()), true); - CmdLineOptionInstance specifiedOption = StdCmdLineOptionParser.getOption( - args, option); - assertEquals(specifiedOption.getOption(), option); - assertEquals(Arrays.asList("one"), specifiedOption.getValues()); - assertTrue(specifiedOption.getSubOptions().isEmpty()); - } + StdCmdLineParser parser = new StdCmdLineParser(); + List<ParsedArg> parsedArgs = parser.parse(args); - public void testUseDefaultValues() throws IOException { - Args args = new Args("--scalar --none".split(" ")); - SimpleCmdLineOption option = createSimpleOption( - StdCmdLineOptionParser.getOptionName(args.getAndIncrement()), true); - option.setDefaultArgs(Lists.newArrayList("one")); - CmdLineOptionInstance specifiedOption = StdCmdLineOptionParser.getOption( - args, option); - assertEquals(specifiedOption.getOption(), option); - assertEquals(Arrays.asList("one"), specifiedOption.getValues()); - assertTrue(specifiedOption.getSubOptions().isEmpty()); - } + // Check that 14 option instances where returned. + assertEquals(14, parsedArgs.size()); - public void testGetValues() { - Args args = new Args( - "--list one two three four --scalar one --none".split(" ")); - assertEquals("--list", args.getAndIncrement()); - assertEquals(Arrays.asList("one", "two", "three", "four"), - StdCmdLineOptionParser.getValues(args)); - assertEquals("--scalar", args.getAndIncrement()); - assertEquals(Arrays.asList("one"), StdCmdLineOptionParser.getValues(args)); - assertEquals("--none", args.getAndIncrement()); - assertEquals(Collections.emptyList(), - StdCmdLineOptionParser.getValues(args)); - assertNull(args.getCurrentArg()); + // Check that all args where found and assigned the appropriate type. + assertEquals("group", parsedArgs.get(0).getName()); + assertEquals(ParsedArg.Type.OPTION, parsedArgs.get(0).getType()); + assertEquals("list", parsedArgs.get(1).getName()); + assertEquals(ParsedArg.Type.OPTION, parsedArgs.get(1).getType()); + assertEquals("one", parsedArgs.get(2).getName()); + assertEquals(ParsedArg.Type.VALUE, parsedArgs.get(2).getType()); + assertEquals("two", parsedArgs.get(3).getName()); + assertEquals(ParsedArg.Type.VALUE, parsedArgs.get(3).getType()); + assertEquals("three", parsedArgs.get(4).getName()); + assertEquals(ParsedArg.Type.VALUE, parsedArgs.get(4).getType()); + assertEquals("four", parsedArgs.get(5).getName()); + assertEquals(ParsedArg.Type.VALUE, parsedArgs.get(5).getType()); + assertEquals("scalar", parsedArgs.get(6).getName()); + assertEquals(ParsedArg.Type.OPTION, parsedArgs.get(6).getType()); + assertEquals("one", parsedArgs.get(7).getName()); + assertEquals(ParsedArg.Type.VALUE, parsedArgs.get(7).getType()); + assertEquals("none", parsedArgs.get(8).getName()); + assertEquals(ParsedArg.Type.OPTION, parsedArgs.get(8).getType()); + assertEquals("group", parsedArgs.get(9).getName()); + assertEquals(ParsedArg.Type.OPTION, parsedArgs.get(9).getType()); + assertEquals("list", parsedArgs.get(10).getName()); + assertEquals(ParsedArg.Type.OPTION, parsedArgs.get(10).getType()); + assertEquals("one", parsedArgs.get(11).getName()); + assertEquals(ParsedArg.Type.VALUE, parsedArgs.get(11).getType()); + assertEquals("scalar", parsedArgs.get(12).getName()); + assertEquals(ParsedArg.Type.OPTION, parsedArgs.get(12).getType()); + assertEquals("one", parsedArgs.get(13).getName()); + assertEquals(ParsedArg.Type.VALUE, parsedArgs.get(13).getType()); } public void testIsOption() { - assertTrue(StdCmdLineOptionParser.isOption("--arg")); - assertTrue(StdCmdLineOptionParser.isOption("-arg")); - assertFalse(StdCmdLineOptionParser.isOption("arg")); + assertTrue(StdCmdLineParser.isOption("--arg")); + assertTrue(StdCmdLineParser.isOption("-arg")); + assertFalse(StdCmdLineParser.isOption("arg")); } public void testGetOptionName() { - assertEquals("arg", StdCmdLineOptionParser.getOptionName("--arg")); - assertEquals("arg", StdCmdLineOptionParser.getOptionName("-arg")); - assertNull(StdCmdLineOptionParser.getOptionName("arg")); - } - - private static GroupCmdLineOption createGroupOption(String longName, - GroupSubOption... subOptions) { - GroupCmdLineOption option = new GroupCmdLineOption(); - option.setLongOption(longName); - option.setShortOption(longName); - option.setSubOptions(Lists.newArrayList(subOptions)); - return option; - } - - private static SimpleCmdLineOption createSimpleOption(String longName, - boolean hasArgs) { - SimpleCmdLineOption option = new SimpleCmdLineOption(); - option.setLongOption(longName); - option.setShortOption(longName); - option.setHasArgs(hasArgs); - return option; + assertEquals("arg", StdCmdLineParser.getOptionName("--arg")); + assertEquals("arg", StdCmdLineParser.getOptionName("-arg")); + assertNull(StdCmdLineParser.getOptionName("arg")); } }
Copied: oodt/trunk/cli/src/test/org/apache/oodt/cas/cli/util/TestCmdLineIterable.java (from r1196505, oodt/trunk/cli/src/test/org/apache/oodt/cas/cli/util/TestArgs.java) URL: http://svn.apache.org/viewvc/oodt/trunk/cli/src/test/org/apache/oodt/cas/cli/util/TestCmdLineIterable.java?p2=oodt/trunk/cli/src/test/org/apache/oodt/cas/cli/util/TestCmdLineIterable.java&p1=oodt/trunk/cli/src/test/org/apache/oodt/cas/cli/util/TestArgs.java&r1=1196505&r2=1198891&rev=1198891&view=diff ============================================================================== --- oodt/trunk/cli/src/test/org/apache/oodt/cas/cli/util/TestArgs.java (original) +++ oodt/trunk/cli/src/test/org/apache/oodt/cas/cli/util/TestCmdLineIterable.java Mon Nov 7 19:38:18 2011 @@ -17,10 +17,11 @@ package org.apache.oodt.cas.cli.util; //JDK imports +import java.io.IOException; import java.util.Arrays; //OODT imports -import org.apache.oodt.cas.cli.util.Args; +import org.apache.oodt.cas.cli.parser.StdCmdLineParser; //JUnit imports import junit.framework.TestCase; @@ -30,31 +31,42 @@ import junit.framework.TestCase; * * @author bfoster (Brian Foster) */ -public class TestArgs extends TestCase { +public class TestCmdLineIterable extends TestCase { private static final String ARGS_STRING = "--operation download --url http://somewhere.com --user foo --pass bar --toDir /tmp"; - public void testIteration() { + public void testIteration() throws IOException { StringBuffer argsString = new StringBuffer(""); - Args args = createArgs(); - for (String arg : args) { - argsString.append(arg).append(" "); + CmdLineIterable<ParsedArg> args = createArgs(); + for (ParsedArg arg : args) { + if (arg.getType().equals(ParsedArg.Type.OPTION)) { + argsString.append("--"); + } + argsString.append(arg.getName()).append(" "); int i = 0; - for (String argInner : args) { - argsString.append(argInner).append(" "); + for (ParsedArg argInner : args) { + if (argInner.getType().equals(ParsedArg.Type.OPTION)) { + argsString.append("--"); + } + argsString.append(argInner.getName()).append(" "); if (i++ > 1) { break; } } - argsString.append(args.getAndIncrement()).append(" "); + arg = args.getAndIncrement(); + if (arg.getType().equals(ParsedArg.Type.OPTION)) { + argsString.append("--"); + } + argsString.append(arg.getName()).append(" "); } assertEquals(Arrays.asList(ARGS_STRING.split(" ")), Arrays.asList(argsString.toString().split(" "))); } - public void testIndexOutOfBoundsException() { - Args args = new Args(new String[] {}); + public void testIndexOutOfBoundsException() throws IOException { + CmdLineIterable<ParsedArg> args = new CmdLineIterable<ParsedArg>( + new StdCmdLineParser().parse(new String[] {})); try { args.iterator().next(); fail("Should have thrown IndexOutOfBoundsException"); @@ -62,7 +74,8 @@ public class TestArgs extends TestCase { } } - private Args createArgs() { - return new Args(ARGS_STRING.split(" ")); + private CmdLineIterable<ParsedArg> createArgs() throws IOException { + return new CmdLineIterable<ParsedArg>( + new StdCmdLineParser().parse(ARGS_STRING.split(" "))); } } Propchange: oodt/trunk/cli/src/test/org/apache/oodt/cas/cli/util/TestCmdLineIterable.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Modified: oodt/trunk/cli/src/test/org/apache/oodt/cas/cli/util/TestCmdLineUtils.java URL: http://svn.apache.org/viewvc/oodt/trunk/cli/src/test/org/apache/oodt/cas/cli/util/TestCmdLineUtils.java?rev=1198891&r1=1198890&r2=1198891&view=diff ============================================================================== --- oodt/trunk/cli/src/test/org/apache/oodt/cas/cli/util/TestCmdLineUtils.java (original) +++ oodt/trunk/cli/src/test/org/apache/oodt/cas/cli/util/TestCmdLineUtils.java Mon Nov 7 19:38:18 2011 @@ -156,6 +156,7 @@ public class TestCmdLineUtils extends Te createSimpleOption("user", false), createSimpleOption("pass", false)); + actionOption.setRequired(true); assertEquals(Sets.newHashSet(actionOption, urlOption), CmdLineUtils.getRequiredOptions(options, false)); } @@ -170,6 +171,7 @@ public class TestCmdLineUtils extends Te passOption = createSimpleOption("pass", false), actionOption = createActionOption("action")); + actionOption.setRequired(true); List<CmdLineOption> sortedOptions = CmdLineUtils .sortOptionsByRequiredStatus(options); assertEquals(options.size(), sortedOptions.size()); @@ -472,6 +474,11 @@ public class TestCmdLineUtils extends Te public String getHelp(CmdLineOption option) { return null; } + + public String getArgDescription(CmdLineAction action, + CmdLineOption option) { + return null; + } }); CmdLineUtils.handle(action, createOptionInstance(option)); assertEquals("handler modified description", action.getDescription()); Modified: oodt/trunk/cli/src/testdata/cmd-line-options.xml URL: http://svn.apache.org/viewvc/oodt/trunk/cli/src/testdata/cmd-line-options.xml?rev=1198891&r1=1198890&r2=1198891&view=diff ============================================================================== --- oodt/trunk/cli/src/testdata/cmd-line-options.xml (original) +++ oodt/trunk/cli/src/testdata/cmd-line-options.xml Mon Nov 7 19:38:18 2011 @@ -27,7 +27,7 @@ <property name="description" value="Specify OutputStream" /> <property name="hasArgs" value="true" /> <property name="type" value="java.io.OutputStream" /> - <property name="defaultArgs"> + <property name="staticArgs"> <list> <value>org.apache.oodt.cas.cli.test.util.TestOutputStream</value> </list>
