/* * 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; //Google static imports import static com.google.common.collect.Lists.newArrayList; import static com.google.common.collect.Sets.newHashSet; //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.createOptionInstance; //JDK imports import java.util.Set; //OODT imports import org.apache.oodt.cas.cli.CmdLineArgs; import org.apache.oodt.cas.cli.action.CmdLineAction; import org.apache.oodt.cas.cli.option.ActionCmdLineOption; import org.apache.oodt.cas.cli.option.CmdLineOption; import org.apache.oodt.cas.cli.option.CmdLineOptionInstance; import org.apache.oodt.cas.cli.option.HelpCmdLineOption; import org.apache.oodt.cas.cli.option.PrintSupportedActionsCmdLineOption; //JUnit imports import junit.framework.TestCase; /** * Test class for {@link CmdLineArgs}. * * @author bfoster (Brian Foster) */ public class TestCmdLineArgs extends TestCase { private final static CmdLineAction TEST_ACTION_1 = createAction("TestAction1"); private final static CmdLineAction TEST_ACTION_2 = createAction("TestAction2"); private final static CmdLineAction TEST_ACTION_3 = createAction("TestAction3"); private final static ActionCmdLineOption ACTION_OPTION = createActionOption("operation"); private final static HelpCmdLineOption HELP_OPTION = new HelpCmdLineOption(); private final static PrintSupportedActionsCmdLineOption PSA_ACTION = new PrintSupportedActionsCmdLineOption(); private final static Set<CmdLineAction> SUPPORTED_ACTIONS = newHashSet( TEST_ACTION_1, TEST_ACTION_2, TEST_ACTION_3); private final static Set<CmdLineOption> SUPPORTED_OPTIONS = newHashSet( (CmdLineOption) ACTION_OPTION, (CmdLineOption) HELP_OPTION, (CmdLineOption) PSA_ACTION); public void testBaseCase() { CmdLineOptionInstance specifiedAction = createOptionInstance( ACTION_OPTION, TEST_ACTION_1.getName()); Set<CmdLineOptionInstance> specifiedOptions = newHashSet(specifiedAction); CmdLineArgs args = new CmdLineArgs(SUPPORTED_ACTIONS, SUPPORTED_OPTIONS, specifiedOptions); assertEquals(TEST_ACTION_1, args.getSpecifiedAction()); assertEquals(args.getActionOptionInst(), specifiedAction); assertEquals(ACTION_OPTION, args.getActionOptionInst().getOption()); assertNull(args.getHelpOptionInst()); assertNull(args.getPrintSupportedActionsOptionInst()); } public void testCaseActionNotSupported() { CmdLineOptionInstance specifiedAction = createOptionInstance( ACTION_OPTION, "NotSupportedActionName"); Set<CmdLineOptionInstance> specifiedOptions = newHashSet(specifiedAction); CmdLineArgs args = new CmdLineArgs(SUPPORTED_ACTIONS, SUPPORTED_OPTIONS, specifiedOptions); // Verify that CmdLineAction is null since it was not able to be located // in set of supported actions. assertNull(args.getSpecifiedAction()); // Verify that if did find the action option. assertEquals(specifiedAction.getOption(), args.getActionOptionInst() .getOption()); // Verify that if found the specified action even though it is not // supported. assertEquals(newArrayList("NotSupportedActionName"), args .getActionOptionInst().getValues()); } }