    1   /*
    2    * Copyright 2006 The Apache Software Foundation.
    3    *
    4    * Licensed under the Apache License, Version 2.0 (the "License");
    5    * you may not use this file except in compliance with the License.
    6    * You may obtain a copy of the License at
    7    *
    8    *      http://www.apache.org/licenses/LICENSE-2.0
    9    *
    10   * Unless required by applicable law or agreed to in writing, software
    11   * distributed under the License is distributed on an "AS IS" BASIS,
    12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13   * See the License for the specific language governing permissions and
    14   * limitations under the License.
    15   */
    16  package org.apache.commons.scxml.model;
    17
    18  import junit.framework.Test;
    19  import junit.framework.TestCase;
    20  import junit.framework.TestSuite;
    21
    22  public class ActionTest extends TestCase {
    23
    24      public ActionTest(String testName) {
    25          super(testName);
    26      }
    27
    28      public static Test suite() {
    29          return new TestSuite(ActionTest.class);
    30      }
    31
    32      public static void main(String args[]) {
    33          String[] testCaseName = { ActionTest.class.getName()};
    34          junit.textui.TestRunner.main(testCaseName);
    35      }
    36
    37      private Action action;
    38
    39      public void setUp() {
    40          action = new Assign();
    41      }
    42
    43      public void testGetParentStateIsState() throws Exception {
    44          Transition transition = new Transition();
    45
    46          State state = new State();
    47          state.setId("on");
    48
    49          transition.setParent(state);
    50          action.setParent(transition);
    51
    52          State returnValue = action.getParentState();
    53
    54          assertEquals("on", returnValue.getId());
    55      }
    56
    57      public void testGetParentStateIsParallel() throws Exception {
    58          Transition transition = new Transition();
    59
    60          Parallel parallel = new Parallel();
    61          parallel.setId("on");
    62
    63          State state = new State();
    64          state.setId("off");
    65
    66          parallel.setParent(state);
    67
    68          transition.setParent(parallel);
    69          action.setParent(transition);
    70
    71          State returnValue = action.getParentState();
    72
    73          assertEquals("off", returnValue.getId());
    74      }
    75
    76      public void testGetParentStateIsHistory() throws Exception {
    77          Transition transition = new Transition();
    78
    79          History history = new History();
    80          history.setId("on");
    81
    82          State state = new State();
    83          state.setId("off");
    84
    85          history.setParent(state);
    86
    87          transition.setParent(history);
    88          action.setParent(transition);
    89
    90          State returnValue = action.getParentState();
    91
    92          assertEquals("off", returnValue.getId());
    93      }
    94
    95      public void testGetParentStateIsInitial() {
    96          Transition transition = new Transition();
    97
    98          Initial initial = new Initial();
    99          initial.setId("on");
    100
    101         transition.setParent(initial);
    102         action.setParent(transition);
    103
    104         try{
    105             action.getParentState();
    106             fail("Unknown TransitionTarget subclass:Initial");
    107         }
    108         catch( ModelException e ){
    109         	//ignore
    110         }
    111     }
    112 }