41_event_consuming_whole_take_many.xml 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?xml version="1.0" ?>
  2. <diagram
  3. xmlns="msdl.uantwerpen.be/sccd"
  4. author="Simon Van Mierlo"
  5. name="TestEventConsumingWhole">
  6. <description>
  7. Testing event consuming.
  8. </description>
  9. <outport name="test_output" />
  10. <class name="Class1" default="true">
  11. <relationships>
  12. <association class="Class2" name="to_Class2" />
  13. </relationships>
  14. <scxml initial="initial"
  15. big_step_maximality="take_many"
  16. input_event_lifeline="whole">
  17. <state id="initial">
  18. <onentry>
  19. <raise event="create_instance" scope="cd">
  20. <parameter expr="'to_Class2'" />
  21. </raise>
  22. </onentry>
  23. <transition event="instance_created" target="../one">
  24. <parameter name="link_name" />
  25. <raise event="start_instance" scope="cd">
  26. <parameter expr="link_name" />
  27. </raise>
  28. </transition>
  29. </state>
  30. <state id="one">
  31. <onentry>
  32. <raise event="enter_one" port="test_output" />
  33. </onentry>
  34. <onexit>
  35. <raise event="exit_one" port="test_output" />
  36. </onexit>
  37. <transition event="A" target="../two" cond="0" />
  38. <transition event="B" target="../two" />
  39. </state>
  40. <state id="two">
  41. <onentry>
  42. <raise event="enter_two" port="test_output" />
  43. </onentry>
  44. <onexit>
  45. <raise event="exit_two" port="test_output" />
  46. </onexit>
  47. <transition event="B" target="../three" />
  48. </state>
  49. <state id="three">
  50. <onentry>
  51. <raise event="enter_three" port="test_output" />
  52. </onentry>
  53. <onexit>
  54. <raise event="exit_three" port="test_output" />
  55. </onexit>
  56. </state>
  57. </scxml>
  58. </class>
  59. <class name="Class2">
  60. <relationships>
  61. <association class="Class1" name="parent" />
  62. </relationships>
  63. <scxml initial="initial">
  64. <state id="initial">
  65. <transition target="../final">
  66. <raise event="A" target="'parent'" />
  67. <raise event="B" target="'parent'" />
  68. </transition>
  69. </state>
  70. <state id="final" />
  71. </scxml>
  72. </class>
  73. <test>
  74. <expected>
  75. <slot>
  76. <!-- Class1 initialization -->
  77. <event name="enter_one" port="test_output"/>
  78. </slot>
  79. <slot>
  80. <!-- Class1 transition to 'two' and 'three' -->
  81. <event name="exit_one" port="test_output"/>
  82. <event name="enter_two" port="test_output"/>
  83. <event name="exit_two" port="test_output"/>
  84. <event name="enter_three" port="test_output"/>
  85. </slot>
  86. </expected>
  87. </test>
  88. </diagram>