ChildFirstExecutionHierarchy.sctunit 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. testclass ChildFirstExecutionHierarchy for statechart executionorder.ChildFirstExecutionHierarchy {
  2. @Test operation childShouldTakeTransition() {
  3. enter
  4. assert active(executionorder.ChildFirstExecutionHierarchy.r.A.r.AA.r.AAA)
  5. raise e
  6. proceed 1 cycle
  7. assert active(executionorder.ChildFirstExecutionHierarchy.r.B)
  8. assert ! a_reacted
  9. assert ! aa_reacted
  10. assert aaa_reacted
  11. assertNoLocalReaction
  12. }
  13. @Test operation parentShouldTakeTransition() {
  14. enter
  15. assert active(executionorder.ChildFirstExecutionHierarchy.r.A.r.AA.r.AAA)
  16. disable_aaa = true
  17. raise e
  18. proceed 1 cycle
  19. assert active(executionorder.ChildFirstExecutionHierarchy.r.B)
  20. assert ! a_reacted
  21. assert aa_reacted
  22. assert ! aaa_reacted
  23. assert !a_local
  24. assert !aa_local
  25. assert aaa_local
  26. }
  27. @Test operation grandparentShouldTakeTransition() {
  28. enter
  29. assert active(executionorder.ChildFirstExecutionHierarchy.r.A.r.AA.r.AAA)
  30. disable_aa = true
  31. disable_aaa = true
  32. raise e
  33. proceed 1 cycle
  34. assert active(executionorder.ChildFirstExecutionHierarchy.r.B)
  35. assert a_reacted
  36. assert ! aa_reacted
  37. assert ! aaa_reacted
  38. assert !a_local
  39. assert aa_local
  40. assert aaa_local
  41. }
  42. @Test operation expectLocalReactrionsExecuteWithNoTransition() {
  43. enter
  44. assert active(executionorder.ChildFirstExecutionHierarchy.r.A.r.AA.r.AAA)
  45. proceed 1 cycle
  46. assert active(executionorder.ChildFirstExecutionHierarchy.r.A.r.AA.r.AAA)
  47. assert a_local
  48. assert aa_local
  49. assert aaa_local
  50. }
  51. operation assertNoLocalReaction() : void {
  52. assert !a_local
  53. assert !aa_local
  54. assert !aaa_local
  55. }
  56. }