Added: oodt/trunk/cli/src/test/java/org/apache/oodt/cas/cli/util/TestCmdLineUtils.java URL: http://svn.apache.org/viewvc/oodt/trunk/cli/src/test/java/org/apache/oodt/cas/cli/util/TestCmdLineUtils.java?rev=1648404&view=auto ============================================================================== --- oodt/trunk/cli/src/test/java/org/apache/oodt/cas/cli/util/TestCmdLineUtils.java (added) +++ oodt/trunk/cli/src/test/java/org/apache/oodt/cas/cli/util/TestCmdLineUtils.java Mon Dec 29 18:28:25 2014 @@ -0,0 +1,527 @@ +/* + * 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.oodt.cas.cli.util; + +//OODT static imports +import static org.apache.oodt.cas.cli.test.util.TestUtils.createAction; +import static org.apache.oodt.cas.cli.test.util.TestUtils.createActionOption; +import static org.apache.oodt.cas.cli.test.util.TestUtils.createAdvancedOption; +import static org.apache.oodt.cas.cli.test.util.TestUtils.createGroupOption; +import static org.apache.oodt.cas.cli.test.util.TestUtils.createOptionInstance; +import static org.apache.oodt.cas.cli.test.util.TestUtils.createOptionalRequirementRule; +import static org.apache.oodt.cas.cli.test.util.TestUtils.createRequiredRequirementRule; +import static org.apache.oodt.cas.cli.test.util.TestUtils.createSimpleOption; +import static org.apache.oodt.cas.cli.util.CmdLineUtils.determineFailedValidation; +import static org.apache.oodt.cas.cli.util.CmdLineUtils.findFirstActionOption; +import static org.apache.oodt.cas.cli.util.CmdLineUtils.findSpecifiedActionOption; +import static org.apache.oodt.cas.cli.util.CmdLineUtils.findSpecifiedHelpOption; +import static org.apache.oodt.cas.cli.util.CmdLineUtils.findSpecifiedPrintSupportedActionsOption; +import static org.apache.oodt.cas.cli.util.CmdLineUtils.validate; + +//JDK imports +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +//JUnit imports +import junit.framework.TestCase; + +//OODT imports +import org.apache.oodt.cas.cli.action.CmdLineAction; +import org.apache.oodt.cas.cli.option.ActionCmdLineOption; +import org.apache.oodt.cas.cli.option.AdvancedCmdLineOption; +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.PrintSupportedActionsCmdLineOption; +import org.apache.oodt.cas.cli.option.SimpleCmdLineOption; +import org.apache.oodt.cas.cli.option.handler.CmdLineOptionHandler; +import org.apache.oodt.cas.cli.option.validator.AllowedArgsCmdLineOptionValidator; +import org.apache.oodt.cas.cli.option.validator.CmdLineOptionValidator; +import org.apache.oodt.cas.cli.test.util.TestUtils; +import org.apache.oodt.cas.cli.util.CmdLineUtils; + +//Google imports +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; + +/** + * Test class for {@link CmdLineUtils}. + * + * @author bfoster (Brian Foster) + */ +public class TestCmdLineUtils extends TestCase { + + public void testDetermineRequired() { + CmdLineAction action = createAction("TestAction"); + CmdLineOption urlOption, passOption, actionOption; + + HashSet<CmdLineOption> options = Sets.newHashSet( + urlOption = createSimpleOption("url", + createRequiredRequirementRule(action)), + passOption = createSimpleOption("pass", false), + createSimpleOption("user", false), + actionOption = createActionOption("operation")); + + Set<CmdLineOption> requiredOptions = CmdLineUtils.determineRequired( + action, options); + assertEquals(Sets.newHashSet(urlOption, actionOption), requiredOptions); + + options = Sets.newHashSet( + urlOption = createSimpleOption("url", + createRequiredRequirementRule(action)), + passOption = createSimpleOption("pass", true), + createSimpleOption("user", false), + actionOption = createActionOption("operation")); + + requiredOptions = CmdLineUtils.determineRequired(action, options); + assertEquals(Sets.newHashSet(urlOption, passOption, actionOption), + requiredOptions); + } + + public void testIsRequired() { + CmdLineAction action = createAction("TestAction"); + assertTrue(CmdLineUtils.isRequired(action, + createSimpleOption("url", createRequiredRequirementRule(action)))); + assertTrue(CmdLineUtils.isRequired(action, + createSimpleOption("url", true))); + assertFalse(CmdLineUtils.isRequired(action, + createSimpleOption("url", false))); + } + + public void testDetermineOptional() { + CmdLineAction action = createAction("TestAction"); + CmdLineOption actionOption = new ActionCmdLineOption(); + CmdLineOption passOption, userOption; + + HashSet<CmdLineOption> options = Sets.newHashSet( + createSimpleOption("url", createRequiredRequirementRule(action)), + passOption = createSimpleOption("pass", false), + userOption = createSimpleOption("user", false), actionOption); + + Set<CmdLineOption> optionalOptions = CmdLineUtils.determineOptional( + action, options); + assertEquals(2, optionalOptions.size()); + assertEquals(Sets.newHashSet(passOption, userOption), optionalOptions); + + options = Sets.newHashSet(createSimpleOption("pass", true), + createSimpleOption("user", true), actionOption); + + optionalOptions = CmdLineUtils.determineOptional(action, options); + assertTrue(optionalOptions.isEmpty()); + + options = Sets.newHashSet( + passOption = createSimpleOption("pass", + createOptionalRequirementRule(action)), + userOption = createSimpleOption("user", + createOptionalRequirementRule(action)), actionOption); + + optionalOptions = CmdLineUtils.determineOptional(action, options); + assertEquals(Sets.newHashSet(passOption, userOption), optionalOptions); + } + + public void testIsOptional() { + CmdLineAction action = createAction("TestAction"); + assertTrue(CmdLineUtils.isOptional(action, + createSimpleOption("url", createOptionalRequirementRule(action)))); + assertFalse(CmdLineUtils.isOptional(action, + createSimpleOption("url", true))); + assertTrue(CmdLineUtils.isOptional(action, + createSimpleOption("url", false))); + } + + public void testGetRequiredOptions() { + CmdLineOption urlOption = createSimpleOption("url", true); + HashSet<CmdLineOption> options = Sets.newHashSet(urlOption, + createActionOption("action"), createSimpleOption("user", false), + createSimpleOption("pass", false)); + + assertEquals(Sets.newHashSet(urlOption), + CmdLineUtils.getRequiredOptions(options)); + } + + public void testGetRequiredOptionsDoNotIgnoreActionOptions() { + CmdLineOption actionOption, urlOption; + HashSet<CmdLineOption> options = Sets.newHashSet( + actionOption = createActionOption("action"), + urlOption = createSimpleOption("url", true), + createSimpleOption("user", false), + createSimpleOption("pass", false)); + + actionOption.setRequired(true); + assertEquals(Sets.newHashSet(actionOption, urlOption), + CmdLineUtils.getRequiredOptions(options, false)); + } + + public void testSortOptionsByRequiredStatus() { + CmdLineAction action = createAction("action"); + CmdLineOption userOption, urlOption, passOption, actionOption; + HashSet<CmdLineOption> options = Sets.newHashSet( + userOption = createSimpleOption("user", false), + urlOption = createSimpleOption("url", + createRequiredRequirementRule(action)), + passOption = createSimpleOption("pass", false), + actionOption = createActionOption("action")); + + actionOption.setRequired(true); + List<CmdLineOption> sortedOptions = CmdLineUtils + .sortOptionsByRequiredStatus(options); + assertEquals(options.size(), sortedOptions.size()); + assertEquals(actionOption, sortedOptions.get(0)); + assertEquals(urlOption, sortedOptions.get(1)); + assertEquals(Sets.newHashSet(userOption, passOption), + Sets.newHashSet(sortedOptions.get(2), sortedOptions.get(3))); + } + + public void testSortActions() { + Set<CmdLineAction> actions = Sets.newHashSet( + createAction("Tom"), + createAction("Bill"), + createAction("Young"), + createAction("Andy")); + List<CmdLineAction> sortedActions = CmdLineUtils.sortActions(actions); + assertEquals("Andy", sortedActions.get(0).getName()); + assertEquals("Bill", sortedActions.get(1).getName()); + assertEquals("Tom", sortedActions.get(2).getName()); + assertEquals("Young", sortedActions.get(3).getName()); + } + + public void testGetOptionByName() { + CmdLineAction action = createAction("action"); + CmdLineOption userOption, urlOption, passOption, actionOption; + HashSet<CmdLineOption> options = Sets.newHashSet( + userOption = createSimpleOption("user", "username", false), + urlOption = createSimpleOption("u", "url", + createRequiredRequirementRule(action)), + passOption = createSimpleOption("pass", "password", false), + actionOption = createActionOption("action")); + + assertEquals(userOption, + CmdLineUtils.getOptionByName(userOption.getShortOption(), options)); + assertEquals(userOption, + CmdLineUtils.getOptionByName(userOption.getLongOption(), options)); + assertEquals(urlOption, + CmdLineUtils.getOptionByName(urlOption.getShortOption(), options)); + assertEquals(urlOption, + CmdLineUtils.getOptionByName(urlOption.getLongOption(), options)); + assertEquals(passOption, + CmdLineUtils.getOptionByName(passOption.getShortOption(), options)); + assertEquals(passOption, + CmdLineUtils.getOptionByName(passOption.getLongOption(), options)); + assertEquals(actionOption, CmdLineUtils.getOptionByName( + actionOption.getShortOption(), options)); + assertEquals(actionOption, + CmdLineUtils.getOptionByName(actionOption.getLongOption(), options)); + } + + public void testGetOptionInstanceByName() { + CmdLineAction action = createAction("action"); + CmdLineOptionInstance userOptionInst, urlOptionInst, passOptionInst, actionOptionInst; + HashSet<CmdLineOptionInstance> optionInsts = Sets.newHashSet( + userOptionInst = new CmdLineOptionInstance(createSimpleOption( + "user", "username", false), new ArrayList<String>()), + urlOptionInst = new CmdLineOptionInstance(createSimpleOption("u", + "url", createRequiredRequirementRule(action)), + new ArrayList<String>()), + passOptionInst = new CmdLineOptionInstance(createSimpleOption( + "pass", "password", false), new ArrayList<String>()), + actionOptionInst = new CmdLineOptionInstance( + createActionOption("action"), new ArrayList<String>())); + + assertEquals(userOptionInst, CmdLineUtils.getOptionInstanceByName( + userOptionInst.getOption().getShortOption(), optionInsts)); + assertEquals(userOptionInst, CmdLineUtils.getOptionInstanceByName( + userOptionInst.getOption().getLongOption(), optionInsts)); + assertEquals(urlOptionInst, CmdLineUtils.getOptionInstanceByName( + urlOptionInst.getOption().getShortOption(), optionInsts)); + assertEquals(urlOptionInst, CmdLineUtils.getOptionInstanceByName( + urlOptionInst.getOption().getLongOption(), optionInsts)); + assertEquals(passOptionInst, CmdLineUtils.getOptionInstanceByName( + passOptionInst.getOption().getShortOption(), optionInsts)); + assertEquals(passOptionInst, CmdLineUtils.getOptionInstanceByName( + passOptionInst.getOption().getLongOption(), optionInsts)); + assertEquals(actionOptionInst, CmdLineUtils.getOptionInstanceByName( + actionOptionInst.getOption().getShortOption(), optionInsts)); + assertEquals(actionOptionInst, CmdLineUtils.getOptionInstanceByName( + actionOptionInst.getOption().getLongOption(), optionInsts)); + } + + public void testIsSubOption() { + CmdLineOption subOption = createSimpleOption("test", false); + GroupCmdLineOption groupOption = createGroupOption("group", false); + assertFalse(CmdLineUtils.isSubOption(groupOption, subOption)); + + groupOption.addSubOption(new GroupSubOption(subOption, false)); + assertTrue(CmdLineUtils.isSubOption(groupOption, subOption)); + } + + public void testFindPerformAndQuitOptions() { + AdvancedCmdLineOption performAndQuitOption = createAdvancedOption("help", + null); + performAndQuitOption.setPerformAndQuit(true); + AdvancedCmdLineOption otherOption = createAdvancedOption("help", null); + otherOption.setPerformAndQuit(false); + + CmdLineOptionInstance performAndQuitOptionInstance = new CmdLineOptionInstance( + performAndQuitOption, new ArrayList<String>()); + CmdLineOptionInstance otherInstance = new CmdLineOptionInstance( + otherOption, new ArrayList<String>()); + + assertEquals(Sets.newHashSet(performAndQuitOptionInstance), + CmdLineUtils.findPerformAndQuitOptions(Sets.newHashSet( + performAndQuitOptionInstance, otherInstance))); + } + + public void testIsPerformAndQuitOption() { + AdvancedCmdLineOption performAndQuitOption = createAdvancedOption("help", + null); + performAndQuitOption.setPerformAndQuit(true); + AdvancedCmdLineOption otherOption = createAdvancedOption("help", null); + otherOption.setPerformAndQuit(false); + + assertTrue(CmdLineUtils.isPerformAndQuitOption(performAndQuitOption)); + assertFalse(CmdLineUtils.isPerformAndQuitOption(otherOption)); + } + + public void testFindSpecifiedOption() { + CmdLineOption findOption = createSimpleOption("test", false); + Set<CmdLineOptionInstance> options = Sets.newHashSet( + createOptionInstance(createSimpleOption("test1", false)), + createOptionInstance(createSimpleOption("test2", false))); + + assertNull(CmdLineUtils.findSpecifiedOption(findOption, options)); + options.add(createOptionInstance(findOption)); + assertEquals(createOptionInstance(findOption), + CmdLineUtils.findSpecifiedOption(findOption, options)); + } + + public void testFindAllOfSpecifiedOption() { + CmdLineOption findOption = createSimpleOption("test", false); + Set<CmdLineOptionInstance> options = Sets.newHashSet( + createOptionInstance(createSimpleOption("test1", false)), + createOptionInstance(createSimpleOption("test2", false))); + + assertTrue(CmdLineUtils.findAllOfSpecifiedOption(findOption, options) + .isEmpty()); + CmdLineOptionInstance firstOption = createOptionInstance(findOption, + "first"); + CmdLineOptionInstance secondOption = createOptionInstance(findOption, + "second"); + options.add(firstOption); + assertEquals(Sets.newHashSet(firstOption), + CmdLineUtils.findAllOfSpecifiedOption(findOption, options)); + options.add(secondOption); + assertEquals(Sets.newHashSet(firstOption, secondOption), + CmdLineUtils.findAllOfSpecifiedOption(findOption, options)); + } + + public void testIsPrintSupportedActionsOption() { + assertFalse(CmdLineUtils + .isPrintSupportedActionsOption(createSimpleOption("test", false))); + assertTrue(CmdLineUtils + .isPrintSupportedActionsOption(new PrintSupportedActionsCmdLineOption())); + } + + public void testFindPrintSupportedActionsOption() { + CmdLineOption psaAction = new PrintSupportedActionsCmdLineOption(); + Set<CmdLineOption> options = Sets.newHashSet( + (CmdLineOption) createSimpleOption("test", false), + createSimpleOption("test2", false)); + + assertNull(CmdLineUtils.findPrintSupportedActionsOption(options)); + options.add(psaAction); + assertEquals(psaAction, + CmdLineUtils.findPrintSupportedActionsOption(options)); + } + + public void testFindSpecifiedPrintSupportedActionsOption() { + CmdLineOptionInstance psaAction = createOptionInstance( + new PrintSupportedActionsCmdLineOption()); + Set<CmdLineOptionInstance> options = Sets.newHashSet( + createOptionInstance(createSimpleOption("test", false)), + createOptionInstance(createSimpleOption("test2", false))); + + assertNull(findSpecifiedPrintSupportedActionsOption(options)); + options.add(psaAction); + assertEquals(psaAction, + findSpecifiedPrintSupportedActionsOption(options)); + options.add(createOptionInstance(new PrintSupportedActionsCmdLineOption( + "psa2", "PrintSupportedActions2", "Print Actions 2", false))); + try { + findSpecifiedPrintSupportedActionsOption(options); + fail("Should have thrown IllegalArgumentException"); + } catch (IllegalArgumentException ignore) { /* expect throw */ } + } + + public void testIsSimpleOption() { + assertTrue(CmdLineUtils + .isSimpleOption(new PrintSupportedActionsCmdLineOption())); + assertTrue(CmdLineUtils.isSimpleOption(new HelpCmdLineOption())); + assertTrue(CmdLineUtils.isSimpleOption(createSimpleOption("Test", true))); + } + + public void testIsActionOption() { + assertFalse(CmdLineUtils.isActionOption(new HelpCmdLineOption())); + assertTrue(CmdLineUtils.isActionOption(createActionOption("action"))); + } + + public void testFindActionOption() { + ActionCmdLineOption actionOption = createActionOption("action"); + Set<CmdLineOption> options = Sets.newHashSet( + (CmdLineOption) createSimpleOption("test", false), + createSimpleOption("test", false)); + + assertNull(findFirstActionOption(options)); + options.add(actionOption); + assertEquals(actionOption, findFirstActionOption(options)); + } + + public void testFindSpecifiedActionOption() { + CmdLineOptionInstance actionOption = createOptionInstance(createActionOption("action")); + Set<CmdLineOptionInstance> options = Sets.newHashSet( + createOptionInstance(createSimpleOption("test", false)), + createOptionInstance(createSimpleOption("test", false))); + + assertNull(findSpecifiedActionOption(options)); + options.add(actionOption); + assertEquals(actionOption, + findSpecifiedActionOption(options)); + options.add(createOptionInstance(createActionOption("action2"))); + try { + findSpecifiedActionOption(options); + fail("Should have thrown IllegalArgumentException"); + } catch (IllegalArgumentException ignore) { /* expect throw */ } + + } + + public void testIsGroupOption() { + assertFalse(CmdLineUtils.isGroupOption(new HelpCmdLineOption())); + assertTrue(CmdLineUtils.isGroupOption(createGroupOption("test", false))); + } + + public void testAsGroupOption() { + try { + CmdLineUtils.asGroupOption(createSimpleOption("test", false)); + fail("Should have thrown IllegalArgumentException"); + } catch (IllegalArgumentException ignore) { /* expect throw */ + } + CmdLineUtils.asGroupOption(createGroupOption("test", false)); + } + + public void testIsHelpOption() { + assertFalse(CmdLineUtils.isHelpOption(createSimpleOption("test", false))); + assertTrue(CmdLineUtils.isHelpOption(new HelpCmdLineOption())); + } + + public void testAsHelpOption() { + try { + CmdLineUtils.asHelpOption(createSimpleOption("test", false)); + fail("Should have thrown IllegalArgumentException"); + } catch (IllegalArgumentException ignore) { /* expect throw */ } + CmdLineUtils.asHelpOption(new HelpCmdLineOption()); + } + + public void testFindHelpOption() { + HelpCmdLineOption helpOption = new HelpCmdLineOption(); + Set<CmdLineOption> options = Sets.newHashSet( + (CmdLineOption) createSimpleOption("test", false), + createSimpleOption("test", false)); + + assertNull(CmdLineUtils.findHelpOption(options)); + options.add(helpOption); + assertEquals(helpOption, CmdLineUtils.findHelpOption(options)); + } + + public void testFindSpecifiedHelpOption() { + CmdLineOptionInstance helpOption = createOptionInstance(new HelpCmdLineOption()); + Set<CmdLineOptionInstance> options = Sets.newHashSet( + createOptionInstance(createSimpleOption("test", false)), + createOptionInstance(createSimpleOption("test", false))); + + assertNull(findSpecifiedHelpOption(options)); + options.add(helpOption); + assertEquals(helpOption, findSpecifiedHelpOption(options)); + options.add(createOptionInstance(new HelpCmdLineOption("h2", "help2", "Second Help Option", true))); + try { + findSpecifiedHelpOption(options); + fail("Should have thrown IllegalArgumentException"); + } catch (IllegalArgumentException ignore) { /* expect throw */ } + } + + public void testValidate() { + AdvancedCmdLineOption option = new AdvancedCmdLineOption("t", "test", "", + true); + AllowedArgsCmdLineOptionValidator validator = new AllowedArgsCmdLineOptionValidator(); + validator.setAllowedArgs(Lists.newArrayList("value")); + option.setValidators(Lists + .newArrayList((CmdLineOptionValidator) validator)); + + // Test case fail. + assertFalse(determineFailedValidation(validate(createOptionInstance(option, "value1"))).isEmpty()); + // Test case pass. + assertTrue(determineFailedValidation(validate(createOptionInstance(option, "value"))).isEmpty()); + } + + public void testHandle() { + CmdLineAction action = createAction("testAction"); + action.setDescription("test description"); + AdvancedCmdLineOption option = new AdvancedCmdLineOption("t", "test", "", + true); + // Insure runs with no errors when action doesn't have a handler. + CmdLineUtils.handle(action, createOptionInstance(option)); + + // Test case when option has a handler. + option.setHandler(new CmdLineOptionHandler() { + @Override + public void initialize(CmdLineOption option) {} + + @Override + public void handleOption(CmdLineAction selectedAction, + CmdLineOptionInstance optionInstance) { + selectedAction.setDescription("handler modified description"); + } + + @Override + public String getHelp(CmdLineOption option) { + return null; + } + + @Override + public String getArgDescription(CmdLineAction action, + CmdLineOption option) { + return null; + } + }); + CmdLineUtils.handle(action, createOptionInstance(option)); + assertEquals("handler modified description", action.getDescription()); + } + + public void testFindAction() { + CmdLineAction action = createAction("TestAction1"); + Set<CmdLineAction> actions = Sets.newHashSet(action, + createAction("TestAction2"), createAction("TestAction3")); + assertNull(CmdLineUtils.findAction( + createOptionInstance(createActionOption("action"), "TestAction"), + actions)); + assertEquals(action, CmdLineUtils.findAction( + createOptionInstance(createActionOption("action"), "TestAction1"), + actions)); + } +}
Added: oodt/trunk/cli/src/test/resources/cmd-line-actions.xml URL: http://svn.apache.org/viewvc/oodt/trunk/cli/src/test/resources/cmd-line-actions.xml?rev=1648404&view=auto ============================================================================== --- oodt/trunk/cli/src/test/resources/cmd-line-actions.xml (added) +++ oodt/trunk/cli/src/test/resources/cmd-line-actions.xml Mon Dec 29 18:28:25 2014 @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + 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. + + Author: bfoster (Brian Foster) +--> +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> + + <bean id="PrintMessageAction" class="org.apache.oodt.cas.cli.action.PrintMessageAction"> + <property name="description" value="Prints out a given message" /> + </bean> + <bean id="PrintHelloWorldAction" class="org.apache.oodt.cas.cli.action.PrintMessageAction"> + <property name="description" value="Prints out 'Hello World'" /> + <property name="message" value="Hello World" /> + </bean> + <bean id="TestSetContextInjectAction" + class="org.apache.oodt.cas.cli.test.util.TestSetContextInjectTypeAction"> + <property name="description" + value="Test action for testing application context injection" /> + </bean> +</beans> Added: oodt/trunk/cli/src/test/resources/cmd-line-options.xml URL: http://svn.apache.org/viewvc/oodt/trunk/cli/src/test/resources/cmd-line-options.xml?rev=1648404&view=auto ============================================================================== --- oodt/trunk/cli/src/test/resources/cmd-line-options.xml (added) +++ oodt/trunk/cli/src/test/resources/cmd-line-options.xml Mon Dec 29 18:28:25 2014 @@ -0,0 +1,75 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + 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. + + Author: bfoster (Brian Foster) +--> +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> + + <bean id="printHelloWorld" class="org.apache.oodt.cas.cli.option.AdvancedCmdLineOption"> + <property name="shortOption" value="phw" /> + <property name="longOption" value="printHelloWorld" /> + <property name="description" value="Print Hello World" /> + <property name="hasArgs" value="false" /> + <property name="staticArgs"> + <list> + <value>Hello World!</value> + </list> + </property> + <property name="requirementRules"> + <list> + <bean class="org.apache.oodt.cas.cli.option.require.ActionDependencyRule" + p:actionName="PrintMessageAction" p:relation="OPTIONAL" /> + </list> + </property> + <property name="handler"> + <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToActionHandler"> + <property name="applyToActions"> + <list> + <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToAction" + p:actionName="PrintMessageAction" p:methodName="setMessage" /> + </list> + </property> + </bean> + </property> + </bean> + + <bean id="printMessage" class="org.apache.oodt.cas.cli.option.AdvancedCmdLineOption"> + <property name="shortOption" value="pm" /> + <property name="longOption" value="printMessage" /> + <property name="description" value="Message to print out" /> + <property name="hasArgs" value="true" /> + <property name="argsDescription" value="message" /> + <property name="requirementRules"> + <list> + <bean class="org.apache.oodt.cas.cli.option.require.ActionDependencyRule" + p:actionName="PrintMessageAction" p:relation="REQUIRED" /> + </list> + </property> + <property name="handler"> + <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToActionHandler"> + <property name="applyToActions"> + <list> + <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToAction" + p:actionName="PrintMessageAction" p:methodName="setMessage" /> + </list> + </property> + </bean> + </property> + </bean> +</beans>
