ParentFirstExecutionHierarchy.sctunit 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. testclass ParentFirstExecutionHierarchy for statechart executionorder.ParentFirstExecutionHierarchy {
  2. @Test operation childShouldTakeTransition() {
  3. enter
  4. assert active(executionorder.ParentFirstExecutionHierarchy.r.A.r.AA.r.AAA)
  5. disable_a = true
  6. disable_aa = true
  7. raise e
  8. proceed 1 cycle
  9. assert active(executionorder.ParentFirstExecutionHierarchy.r.B)
  10. assert ! a_reacted
  11. assert ! aa_reacted
  12. assert aaa_reacted
  13. assert a_local
  14. assert aa_local
  15. assert !aaa_local
  16. }
  17. @Test operation parentShouldTakeTransition() {
  18. enter
  19. assert active(executionorder.ParentFirstExecutionHierarchy.r.A.r.AA.r.AAA)
  20. disable_a = true
  21. raise e
  22. proceed 1 cycle
  23. assert active(executionorder.ParentFirstExecutionHierarchy.r.B)
  24. assert ! a_reacted
  25. assert aa_reacted
  26. assert ! aaa_reacted
  27. assert a_local
  28. assert !aa_local
  29. assert !aaa_local
  30. }
  31. @Test operation grandparentShouldTakeTransition() {
  32. enter
  33. assert active(executionorder.ParentFirstExecutionHierarchy.r.A.r.AA.r.AAA)
  34. raise e
  35. proceed 1 cycle
  36. assert active(executionorder.ParentFirstExecutionHierarchy.r.B)
  37. assert a_reacted
  38. assert ! aa_reacted
  39. assert ! aaa_reacted
  40. assertNoLocalReaction
  41. }
  42. @Test operation expectLocalReactrionsExecuteWithNoTransition() {
  43. enter
  44. assert active(executionorder.ParentFirstExecutionHierarchy.r.A.r.AA.r.AAA)
  45. proceed 1 cycle
  46. assert active(executionorder.ParentFirstExecutionHierarchy.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. }