Choice.cc 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /**
  2. * Copyright (c) 2013 committers of YAKINDU and others.
  3. * All rights reserved. This program and the accompanying materials
  4. * are made available under the terms of the Eclipse Public License v1.0
  5. * which accompanies this distribution, and is available at
  6. * http://www.eclipse.org/legal/epl-v10.html
  7. *
  8. * Contributors:
  9. * committers of YAKINDU - initial API and implementation
  10. */
  11. #include <string>
  12. #include "gtest/gtest.h"
  13. #include "Choice.h"
  14. TEST(StatemachineTest, elseChoiceUsingNonDefaultTransition) {
  15. Choice handle;
  16. choice_init(&handle);
  17. choice_enter(&handle);
  18. EXPECT_TRUE(choice_isActive(&handle, Choice_main_region_A));
  19. choiceIface_set_c(&handle, true);
  20. choiceIface_raise_e(&handle);
  21. choice_runCycle(&handle);
  22. EXPECT_TRUE(choice_isActive(&handle, Choice_main_region_C));
  23. }
  24. TEST(StatemachineTest, elseChoiceUsingDefaultTransition) {
  25. Choice handle;
  26. choice_init(&handle);
  27. choice_enter(&handle);
  28. EXPECT_TRUE(choice_isActive(&handle, Choice_main_region_A));
  29. choiceIface_set_c(&handle, false);
  30. choiceIface_raise_e(&handle);
  31. choice_runCycle(&handle);
  32. EXPECT_TRUE(choice_isActive(&handle, Choice_main_region_B));
  33. }
  34. TEST(StatemachineTest, defaultChoiceUsingNonDefaultTransition) {
  35. Choice handle;
  36. choice_init(&handle);
  37. choice_enter(&handle);
  38. EXPECT_TRUE(choice_isActive(&handle, Choice_main_region_A));
  39. choiceIface_set_c(&handle, true);
  40. choiceIface_raise_g(&handle);
  41. choice_runCycle(&handle);
  42. EXPECT_TRUE(choice_isActive(&handle, Choice_main_region_C));
  43. }
  44. TEST(StatemachineTest, defaultChoiceUsingDefaultTransition) {
  45. Choice handle;
  46. choice_init(&handle);
  47. choice_enter(&handle);
  48. EXPECT_TRUE(choice_isActive(&handle, Choice_main_region_A));
  49. choiceIface_set_c(&handle, false);
  50. choiceIface_raise_g(&handle);
  51. choice_runCycle(&handle);
  52. EXPECT_TRUE(choice_isActive(&handle, Choice_main_region_B));
  53. }
  54. TEST(StatemachineTest, uncheckedChoiceUsingNonDefaultTransition) {
  55. Choice handle;
  56. choice_init(&handle);
  57. choice_enter(&handle);
  58. EXPECT_TRUE(choice_isActive(&handle, Choice_main_region_A));
  59. choiceIface_set_c(&handle, true);
  60. choiceIface_raise_f(&handle);
  61. choice_runCycle(&handle);
  62. EXPECT_TRUE(choice_isActive(&handle, Choice_main_region_C));
  63. }
  64. TEST(StatemachineTest, uncheckedChoiceUsingDefaultTransition) {
  65. Choice handle;
  66. choice_init(&handle);
  67. choice_enter(&handle);
  68. EXPECT_TRUE(choice_isActive(&handle, Choice_main_region_A));
  69. choiceIface_set_c(&handle, false);
  70. choiceIface_raise_f(&handle);
  71. choice_runCycle(&handle);
  72. EXPECT_TRUE(choice_isActive(&handle, Choice_main_region_B));
  73. }
  74. TEST(StatemachineTest, alwaysTrueTransitionInChoice) {
  75. Choice handle;
  76. choice_init(&handle);
  77. choice_enter(&handle);
  78. EXPECT_TRUE(choice_isActive(&handle, Choice_main_region_A));
  79. choiceIface_set_c(&handle, true);
  80. choiceIface_raise_h(&handle);
  81. choice_runCycle(&handle);
  82. EXPECT_TRUE(choice_isActive(&handle, Choice_main_region_B));
  83. }