Package org.jbpm.jpdl.xml

Source Code of org.jbpm.jpdl.xml.TimerXmlTest

/*
* JBoss, Home of Professional Open Source
* Copyright 2005, JBoss Inc., and individual contributors as indicated
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jbpm.jpdl.xml;

import junit.framework.TestCase;

import org.jbpm.graph.action.Script;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.scheduler.def.CancelTimerAction;
import org.jbpm.scheduler.def.CreateTimerAction;

public class TimerXmlTest extends TestCase {

  public void testTimerCreateAction() {
    ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
      "<process-definition>" +
      "  <node name='catch crooks'>" +
      "    <timer name='reminder' " +
      "           duedate='2 business hours' " +
      "           repeat='10 business minutes'" +
      "           transition='time-out-transition' >" +
      "      <action class='the-remainder-action-class-name' />" +
      "    </timer>" +
      "  </node>" +
      "</process-definition>"
    );
   
    CreateTimerAction createTimerAction =
        (CreateTimerAction) processDefinition
          .getNode("catch crooks")
          .getEvent("node-enter")
          .getActions()
          .get(0);
   
    assertEquals("reminder", createTimerAction.getTimerName());
    assertEquals("2 business hours", createTimerAction.getDueDate());
    assertEquals("10 business minutes", createTimerAction.getRepeat());
    assertEquals("time-out-transition", createTimerAction.getTransitionName());
    assertEquals("the-remainder-action-class-name", createTimerAction.getTimerAction().getActionDelegation().getClassName());
  }

  public void testTimerDefaultName() {
    ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
      "<process-definition>" +
      "  <node name='catch crooks'>" +
      "    <timer />" +
      "  </node>" +
      "</process-definition>"
    );
   
    CreateTimerAction createTimerAction =
        (CreateTimerAction) processDefinition
          .getNode("catch crooks")
          .getEvent("node-enter")
          .getActions()
          .get(0);
   
    assertEquals("catch crooks", createTimerAction.getTimerName());
  }

  public void testTimerCancelAction() {
    ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
      "<process-definition>" +
      "  <node name='catch crooks'>" +
      "    <timer />" +
      "  </node>" +
      "</process-definition>"
    );
   
    CancelTimerAction cancelTimerAction =
        (CancelTimerAction) processDefinition
          .getNode("catch crooks")
          .getEvent("node-leave")
          .getActions()
          .get(0);
   
    assertEquals("catch crooks", cancelTimerAction.getTimerName());
  }

  public void testTimerScript() {
    ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
      "<process-definition>" +
      "  <node name='catch crooks'>" +
      "    <timer>" +
      "      <script />" +
      "    </timer>" +
      "  </node>" +
      "</process-definition>"
    );
   
    CreateTimerAction createTimerAction =
        (CreateTimerAction) processDefinition
          .getNode("catch crooks")
          .getEvent("node-enter")
          .getActions()
          .get(0);
   
    assertEquals(Script.class, createTimerAction.getTimerAction().getClass());
  }

  public void testCreateTimerAction() {
    ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
      "<process-definition>" +
      "  <node name='catch crooks'>" +
      "    <event type='node-enter'>" +
      "      <create-timer name='reminder' " +
      "                    duedate='2 business hours' " +
      "                    repeat='10 business minutes'" +
      "                    transition='time-out-transition' >" +
      "        <action class='the-remainder-action-class-name' />" +
      "      </create-timer>" +
      "    </event>" +
      "  </node>" +
      "</process-definition>"
    );
   
    CreateTimerAction createTimerAction =
        (CreateTimerAction) processDefinition
          .getNode("catch crooks")
          .getEvent("node-enter")
          .getActions()
          .get(0);
   
    assertEquals("reminder", createTimerAction.getTimerName());
    assertEquals("2 business hours", createTimerAction.getDueDate());
    assertEquals("10 business minutes", createTimerAction.getRepeat());
    assertEquals("time-out-transition", createTimerAction.getTransitionName());
    assertEquals("the-remainder-action-class-name", createTimerAction.getTimerAction().getActionDelegation().getClassName());
  }

  public void testCancelTimerAction() {
    ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
      "<process-definition>" +
      "  <node name='catch crooks'>" +
      "    <event type='node-enter'>" +
      "      <cancel-timer name='reminder' />" +
      "    </event>" +
      "  </node>" +
      "</process-definition>"
    );
   
    CancelTimerAction cancelTimerAction =
        (CancelTimerAction) processDefinition
          .getNode("catch crooks")
          .getEvent("node-enter")
          .getActions()
          .get(0);
   
    assertEquals("reminder", cancelTimerAction.getTimerName());
  }
}
TOP

Related Classes of org.jbpm.jpdl.xml.TimerXmlTest

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.