Package org.apache.oodt.cas.cli.option.handler

Source Code of org.apache.oodt.cas.cli.option.handler.TestApplyToActionHandler$TestCmdLineAction

/*
* 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.option.handler;

//OODT static imports
import static org.apache.oodt.cas.cli.test.util.TestUtils.createAdvancedOption;
import static org.apache.oodt.cas.cli.test.util.TestUtils.createApplyToActionHandler;
import static org.apache.oodt.cas.cli.test.util.TestUtils.createOptionInstance;

//OODT imports
import org.apache.oodt.cas.cli.action.CmdLineAction;
import org.apache.oodt.cas.cli.action.PrintMessageAction;
import org.apache.oodt.cas.cli.option.AdvancedCmdLineOption;
import org.apache.oodt.cas.cli.option.handler.ApplyToActionHandler;

//JUnit imports
import junit.framework.TestCase;

/**
* Test class for {@link ApplyToActionHandler}.
*
* @author bfoster (Brian Foster)
*/
public class TestApplyToActionHandler extends TestCase {

   public void testWithoutApplyToActionMappingSet() {
      ApplyToActionHandler handler = new ApplyToActionHandler();
      assertNull(handler.getApplyToActions());
      PrintMessageAction action = new PrintMessageAction();
      action.setName("PrintMessageAction");

      assertNull(action.getMessage());

      AdvancedCmdLineOption option = new AdvancedCmdLineOption();
      option.setLongOption("message");
      option.setHandler(handler);
      option.getHandler().handleOption(action,
            createOptionInstance(option, "Howdy"));

      assertEquals("Howdy", action.getMessage());
   }

   public void testApplyToActionsMapping() {
      PrintMessageAction action = new PrintMessageAction();
      action.setName("PrintMessageAction");
      AdvancedCmdLineOption option = createAdvancedOption("printMessage",
            createApplyToActionHandler(action.getName(), "setMessage"));
      option.getHandler().handleOption(action,
            createOptionInstance(option, "Howdy"));

      assertEquals("Howdy", action.getMessage());
   }

   public void testSetOrAddInvoke() {
      TestCmdLineAction action = new TestCmdLineAction();
      action.setName("TestAction");
      AdvancedCmdLineOption option = createAdvancedOption("message",
            createApplyToActionHandler(action.getName(), null));

      // Test that default isRepeating() is false.
      option.getHandler().handleOption(action,
            createOptionInstance(option, "Howdy"));
      assertEquals(TestCmdLineAction.CallType.SET, action.getCallType());

      // Test when isRepeating() is set to false.
      option.setRepeating(false);
      option.getHandler().handleOption(action,
            createOptionInstance(option, "Howdy"));
      assertEquals(TestCmdLineAction.CallType.SET, action.getCallType());

      // Test when isRepeating() is set to true.
      option.setRepeating(true);
      option.getHandler().handleOption(action,
            createOptionInstance(option, "Howdy"));
      assertEquals(TestCmdLineAction.CallType.ADD, action.getCallType());
   }

   public static class TestCmdLineAction extends CmdLineAction {
      public enum CallType { ADD, SET };
      private CallType callType;

      @Override
      public void execute(ActionMessagePrinter printer) {
      }

      public void addMessage(String message) {
         callType = CallType.ADD;
      }

      public void setMessage(String message) {
         callType = CallType.SET;
      }

      public CallType getCallType () {
         return callType;
      }
   }
}
TOP

Related Classes of org.apache.oodt.cas.cli.option.handler.TestApplyToActionHandler$TestCmdLineAction

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.