OperationsTest.cc 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500
  1. /* Generated by YAKINDU Statechart Tools code generator. */
  2. #include <string>
  3. #include "gtest/gtest.h"
  4. #include "Operations.h"
  5. #include "sc_runner.h"
  6. #include "sc_types.h"
  7. #include "gmock/gmock.h"
  8. using ::testing::AtLeast;
  9. using ::testing::Return;
  10. using ::testing::_;
  11. namespace {
  12. class InternalOperation1Mock{
  13. public:
  14. int callCount;
  15. sc_boolean calledAtLeast(const int times){
  16. return (callCount >= times);
  17. }
  18. sc_boolean calledAtLeastOnce(){
  19. return (callCount>0);
  20. }
  21. void internalOperation1() {
  22. callCount++;
  23. }
  24. void reset() {
  25. callCount = 0;
  26. }
  27. };
  28. static InternalOperation1Mock* internalOperation1Mock;
  29. class InternalOperation2Mock{
  30. struct parameters {
  31. sc_integer param1;
  32. int callCount;
  33. inline bool operator==(const parameters& other) {
  34. return (this->param1 == other.param1);
  35. }
  36. };
  37. public:
  38. std::list<InternalOperation2Mock::parameters> paramCount;
  39. int callCount;
  40. sc_boolean calledAtLeast(const int times){
  41. return (callCount >= times);
  42. }
  43. sc_boolean calledAtLeastOnce(){
  44. return (callCount>0);
  45. }
  46. sc_boolean calledAtLeast(const int times, const sc_integer param1){
  47. parameters p;
  48. p.param1 = param1;
  49. std::list<InternalOperation2Mock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  50. if(i != paramCount.end()) {
  51. return (i->callCount >= times);
  52. }else{
  53. return false;
  54. }
  55. }
  56. sc_boolean calledAtLeastOnce(const sc_integer param1){
  57. parameters p;
  58. p.param1 = param1;
  59. std::list<InternalOperation2Mock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  60. if(i != paramCount.end()) {
  61. return (i->callCount > 0);
  62. }else{
  63. return false;
  64. }
  65. }
  66. void InternalOperation2(const sc_integer param1) {
  67. callCount++;
  68. parameters p;
  69. p.param1 = param1;
  70. std::list<InternalOperation2Mock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  71. if(i != paramCount.end()) {
  72. p.callCount = (i->callCount + 1);
  73. paramCount.erase(i);
  74. }else{
  75. p.callCount = 1;
  76. }
  77. paramCount.push_back(p);
  78. }
  79. void reset() {
  80. callCount = 0;
  81. paramCount.clear();
  82. }
  83. };
  84. static InternalOperation2Mock* internalOperation2Mock;
  85. class InternalOperation3Mock{
  86. public:
  87. int callCount;
  88. sc_boolean calledAtLeast(const int times){
  89. return (callCount >= times);
  90. }
  91. sc_boolean calledAtLeastOnce(){
  92. return (callCount>0);
  93. }
  94. void internalOperation3() {
  95. callCount++;
  96. }
  97. void reset() {
  98. callCount = 0;
  99. }
  100. };
  101. static InternalOperation3Mock* internalOperation3Mock;
  102. class InternalOperation3aMock{
  103. struct parameters {
  104. sc_real param1;
  105. int callCount;
  106. inline bool operator==(const parameters& other) {
  107. return (this->param1 == other.param1);
  108. }
  109. };
  110. public:
  111. std::list<InternalOperation3aMock::parameters> paramCount;
  112. int callCount;
  113. sc_boolean calledAtLeast(const int times){
  114. return (callCount >= times);
  115. }
  116. sc_boolean calledAtLeastOnce(){
  117. return (callCount>0);
  118. }
  119. sc_boolean calledAtLeast(const int times, const sc_real param1){
  120. parameters p;
  121. p.param1 = param1;
  122. std::list<InternalOperation3aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  123. if(i != paramCount.end()) {
  124. return (i->callCount >= times);
  125. }else{
  126. return false;
  127. }
  128. }
  129. sc_boolean calledAtLeastOnce(const sc_real param1){
  130. parameters p;
  131. p.param1 = param1;
  132. std::list<InternalOperation3aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  133. if(i != paramCount.end()) {
  134. return (i->callCount > 0);
  135. }else{
  136. return false;
  137. }
  138. }
  139. void internalOperation3a(const sc_real param1) {
  140. callCount++;
  141. parameters p;
  142. p.param1 = param1;
  143. std::list<InternalOperation3aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  144. if(i != paramCount.end()) {
  145. p.callCount = (i->callCount + 1);
  146. paramCount.erase(i);
  147. }else{
  148. p.callCount = 1;
  149. }
  150. paramCount.push_back(p);
  151. }
  152. void reset() {
  153. callCount = 0;
  154. paramCount.clear();
  155. }
  156. };
  157. static InternalOperation3aMock* internalOperation3aMock;
  158. class InternalOperation4Mock{
  159. public:
  160. int callCount;
  161. sc_boolean calledAtLeast(const int times){
  162. return (callCount >= times);
  163. }
  164. sc_boolean calledAtLeastOnce(){
  165. return (callCount>0);
  166. }
  167. void internalOperation4() {
  168. callCount++;
  169. }
  170. void reset() {
  171. callCount = 0;
  172. }
  173. };
  174. static InternalOperation4Mock* internalOperation4Mock;
  175. class InternalOperation4aMock{
  176. struct parameters {
  177. sc_integer param1;
  178. int callCount;
  179. inline bool operator==(const parameters& other) {
  180. return (this->param1 == other.param1);
  181. }
  182. };
  183. public:
  184. std::list<InternalOperation4aMock::parameters> paramCount;
  185. int callCount;
  186. sc_boolean calledAtLeast(const int times){
  187. return (callCount >= times);
  188. }
  189. sc_boolean calledAtLeastOnce(){
  190. return (callCount>0);
  191. }
  192. sc_boolean calledAtLeast(const int times, const sc_integer param1){
  193. parameters p;
  194. p.param1 = param1;
  195. std::list<InternalOperation4aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  196. if(i != paramCount.end()) {
  197. return (i->callCount >= times);
  198. }else{
  199. return false;
  200. }
  201. }
  202. sc_boolean calledAtLeastOnce(const sc_integer param1){
  203. parameters p;
  204. p.param1 = param1;
  205. std::list<InternalOperation4aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  206. if(i != paramCount.end()) {
  207. return (i->callCount > 0);
  208. }else{
  209. return false;
  210. }
  211. }
  212. void internalOperation4a(const sc_integer param1) {
  213. callCount++;
  214. parameters p;
  215. p.param1 = param1;
  216. std::list<InternalOperation4aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  217. if(i != paramCount.end()) {
  218. p.callCount = (i->callCount + 1);
  219. paramCount.erase(i);
  220. }else{
  221. p.callCount = 1;
  222. }
  223. paramCount.push_back(p);
  224. }
  225. void reset() {
  226. callCount = 0;
  227. paramCount.clear();
  228. }
  229. };
  230. static InternalOperation4aMock* internalOperation4aMock;
  231. class InternalOperation5Mock{
  232. public:
  233. int callCount;
  234. sc_boolean calledAtLeast(const int times){
  235. return (callCount >= times);
  236. }
  237. sc_boolean calledAtLeastOnce(){
  238. return (callCount>0);
  239. }
  240. void internalOperation5() {
  241. callCount++;
  242. }
  243. void reset() {
  244. callCount = 0;
  245. }
  246. };
  247. static InternalOperation5Mock* internalOperation5Mock;
  248. class InternalOperation5aMock{
  249. struct parameters {
  250. const sc_string param1;
  251. int callCount;
  252. inline bool operator==(const parameters& other) {
  253. return (this->param1 == other.param1);
  254. }
  255. };
  256. public:
  257. std::list<InternalOperation5aMock::parameters> paramCount;
  258. int callCount;
  259. sc_boolean calledAtLeast(const int times){
  260. return (callCount >= times);
  261. }
  262. sc_boolean calledAtLeastOnce(){
  263. return (callCount>0);
  264. }
  265. sc_boolean calledAtLeast(const int times, const sc_string param1){
  266. parameters p;
  267. p.param1 = param1;
  268. std::list<InternalOperation5aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  269. if(i != paramCount.end()) {
  270. return (i->callCount >= times);
  271. }else{
  272. return false;
  273. }
  274. }
  275. sc_boolean calledAtLeastOnce(const sc_string param1){
  276. parameters p;
  277. p.param1 = param1;
  278. std::list<InternalOperation5aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  279. if(i != paramCount.end()) {
  280. return (i->callCount > 0);
  281. }else{
  282. return false;
  283. }
  284. }
  285. void internalOperation5a(const sc_string param1) {
  286. callCount++;
  287. parameters p;
  288. p.param1 = param1;
  289. std::list<InternalOperation5aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  290. if(i != paramCount.end()) {
  291. p.callCount = (i->callCount + 1);
  292. paramCount.erase(i);
  293. }else{
  294. p.callCount = 1;
  295. }
  296. paramCount.push_back(p);
  297. }
  298. void reset() {
  299. callCount = 0;
  300. paramCount.clear();
  301. }
  302. };
  303. static InternalOperation5aMock* internalOperation5aMock;
  304. class Interface1InterfaceOperation1Mock{
  305. public:
  306. int callCount;
  307. sc_boolean calledAtLeast(const int times){
  308. return (callCount >= times);
  309. }
  310. sc_boolean calledAtLeastOnce(){
  311. return (callCount>0);
  312. }
  313. void interfaceOperation1() {
  314. callCount++;
  315. }
  316. void reset() {
  317. callCount = 0;
  318. }
  319. };
  320. static Interface1InterfaceOperation1Mock* interface1InterfaceOperation1Mock;
  321. class Interface1InterfaceOperation2Mock{
  322. struct parameters {
  323. sc_integer param1;
  324. int callCount;
  325. inline bool operator==(const parameters& other) {
  326. return (this->param1 == other.param1);
  327. }
  328. };
  329. public:
  330. std::list<Interface1InterfaceOperation2Mock::parameters> paramCount;
  331. int callCount;
  332. sc_boolean calledAtLeast(const int times){
  333. return (callCount >= times);
  334. }
  335. sc_boolean calledAtLeastOnce(){
  336. return (callCount>0);
  337. }
  338. sc_boolean calledAtLeast(const int times, const sc_integer param1){
  339. parameters p;
  340. p.param1 = param1;
  341. std::list<Interface1InterfaceOperation2Mock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  342. if(i != paramCount.end()) {
  343. return (i->callCount >= times);
  344. }else{
  345. return false;
  346. }
  347. }
  348. sc_boolean calledAtLeastOnce(const sc_integer param1){
  349. parameters p;
  350. p.param1 = param1;
  351. std::list<Interface1InterfaceOperation2Mock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  352. if(i != paramCount.end()) {
  353. return (i->callCount > 0);
  354. }else{
  355. return false;
  356. }
  357. }
  358. void InterfaceOperation2(const sc_integer param1) {
  359. callCount++;
  360. parameters p;
  361. p.param1 = param1;
  362. std::list<Interface1InterfaceOperation2Mock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  363. if(i != paramCount.end()) {
  364. p.callCount = (i->callCount + 1);
  365. paramCount.erase(i);
  366. }else{
  367. p.callCount = 1;
  368. }
  369. paramCount.push_back(p);
  370. }
  371. void reset() {
  372. callCount = 0;
  373. paramCount.clear();
  374. }
  375. };
  376. static Interface1InterfaceOperation2Mock* interface1InterfaceOperation2Mock;
  377. class Interface1InterfaceOperation3Mock{
  378. public:
  379. int callCount;
  380. sc_boolean calledAtLeast(const int times){
  381. return (callCount >= times);
  382. }
  383. sc_boolean calledAtLeastOnce(){
  384. return (callCount>0);
  385. }
  386. void interfaceOperation3() {
  387. callCount++;
  388. }
  389. void reset() {
  390. callCount = 0;
  391. }
  392. };
  393. static Interface1InterfaceOperation3Mock* interface1InterfaceOperation3Mock;
  394. class Interface1InterfaceOperation3aMock{
  395. struct parameters {
  396. sc_real param1;
  397. int callCount;
  398. inline bool operator==(const parameters& other) {
  399. return (this->param1 == other.param1);
  400. }
  401. };
  402. public:
  403. std::list<Interface1InterfaceOperation3aMock::parameters> paramCount;
  404. int callCount;
  405. sc_boolean calledAtLeast(const int times){
  406. return (callCount >= times);
  407. }
  408. sc_boolean calledAtLeastOnce(){
  409. return (callCount>0);
  410. }
  411. sc_boolean calledAtLeast(const int times, const sc_real param1){
  412. parameters p;
  413. p.param1 = param1;
  414. std::list<Interface1InterfaceOperation3aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  415. if(i != paramCount.end()) {
  416. return (i->callCount >= times);
  417. }else{
  418. return false;
  419. }
  420. }
  421. sc_boolean calledAtLeastOnce(const sc_real param1){
  422. parameters p;
  423. p.param1 = param1;
  424. std::list<Interface1InterfaceOperation3aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  425. if(i != paramCount.end()) {
  426. return (i->callCount > 0);
  427. }else{
  428. return false;
  429. }
  430. }
  431. void interfaceOperation3a(const sc_real param1) {
  432. callCount++;
  433. parameters p;
  434. p.param1 = param1;
  435. std::list<Interface1InterfaceOperation3aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  436. if(i != paramCount.end()) {
  437. p.callCount = (i->callCount + 1);
  438. paramCount.erase(i);
  439. }else{
  440. p.callCount = 1;
  441. }
  442. paramCount.push_back(p);
  443. }
  444. void reset() {
  445. callCount = 0;
  446. paramCount.clear();
  447. }
  448. };
  449. static Interface1InterfaceOperation3aMock* interface1InterfaceOperation3aMock;
  450. class Interface1InterfaceOperation4Mock{
  451. public:
  452. int callCount;
  453. sc_boolean calledAtLeast(const int times){
  454. return (callCount >= times);
  455. }
  456. sc_boolean calledAtLeastOnce(){
  457. return (callCount>0);
  458. }
  459. void interfaceOperation4() {
  460. callCount++;
  461. }
  462. void reset() {
  463. callCount = 0;
  464. }
  465. };
  466. static Interface1InterfaceOperation4Mock* interface1InterfaceOperation4Mock;
  467. class Interface1InterfaceOperation4aMock{
  468. struct parameters {
  469. sc_integer param1;
  470. int callCount;
  471. inline bool operator==(const parameters& other) {
  472. return (this->param1 == other.param1);
  473. }
  474. };
  475. public:
  476. std::list<Interface1InterfaceOperation4aMock::parameters> paramCount;
  477. int callCount;
  478. sc_boolean calledAtLeast(const int times){
  479. return (callCount >= times);
  480. }
  481. sc_boolean calledAtLeastOnce(){
  482. return (callCount>0);
  483. }
  484. sc_boolean calledAtLeast(const int times, const sc_integer param1){
  485. parameters p;
  486. p.param1 = param1;
  487. std::list<Interface1InterfaceOperation4aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  488. if(i != paramCount.end()) {
  489. return (i->callCount >= times);
  490. }else{
  491. return false;
  492. }
  493. }
  494. sc_boolean calledAtLeastOnce(const sc_integer param1){
  495. parameters p;
  496. p.param1 = param1;
  497. std::list<Interface1InterfaceOperation4aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  498. if(i != paramCount.end()) {
  499. return (i->callCount > 0);
  500. }else{
  501. return false;
  502. }
  503. }
  504. void interfaceOperation4a(const sc_integer param1) {
  505. callCount++;
  506. parameters p;
  507. p.param1 = param1;
  508. std::list<Interface1InterfaceOperation4aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  509. if(i != paramCount.end()) {
  510. p.callCount = (i->callCount + 1);
  511. paramCount.erase(i);
  512. }else{
  513. p.callCount = 1;
  514. }
  515. paramCount.push_back(p);
  516. }
  517. void reset() {
  518. callCount = 0;
  519. paramCount.clear();
  520. }
  521. };
  522. static Interface1InterfaceOperation4aMock* interface1InterfaceOperation4aMock;
  523. class Interface1InterfaceOperation5Mock{
  524. public:
  525. int callCount;
  526. sc_boolean calledAtLeast(const int times){
  527. return (callCount >= times);
  528. }
  529. sc_boolean calledAtLeastOnce(){
  530. return (callCount>0);
  531. }
  532. void interfaceOperation5() {
  533. callCount++;
  534. }
  535. void reset() {
  536. callCount = 0;
  537. }
  538. };
  539. static Interface1InterfaceOperation5Mock* interface1InterfaceOperation5Mock;
  540. class Interface1InterfaceOperation5aMock{
  541. struct parameters {
  542. const sc_string param1;
  543. int callCount;
  544. inline bool operator==(const parameters& other) {
  545. return (this->param1 == other.param1);
  546. }
  547. };
  548. public:
  549. std::list<Interface1InterfaceOperation5aMock::parameters> paramCount;
  550. int callCount;
  551. sc_boolean calledAtLeast(const int times){
  552. return (callCount >= times);
  553. }
  554. sc_boolean calledAtLeastOnce(){
  555. return (callCount>0);
  556. }
  557. sc_boolean calledAtLeast(const int times, const sc_string param1){
  558. parameters p;
  559. p.param1 = param1;
  560. std::list<Interface1InterfaceOperation5aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  561. if(i != paramCount.end()) {
  562. return (i->callCount >= times);
  563. }else{
  564. return false;
  565. }
  566. }
  567. sc_boolean calledAtLeastOnce(const sc_string param1){
  568. parameters p;
  569. p.param1 = param1;
  570. std::list<Interface1InterfaceOperation5aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  571. if(i != paramCount.end()) {
  572. return (i->callCount > 0);
  573. }else{
  574. return false;
  575. }
  576. }
  577. void interfaceOperation5a(const sc_string param1) {
  578. callCount++;
  579. parameters p;
  580. p.param1 = param1;
  581. std::list<Interface1InterfaceOperation5aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  582. if(i != paramCount.end()) {
  583. p.callCount = (i->callCount + 1);
  584. paramCount.erase(i);
  585. }else{
  586. p.callCount = 1;
  587. }
  588. paramCount.push_back(p);
  589. }
  590. void reset() {
  591. callCount = 0;
  592. paramCount.clear();
  593. }
  594. };
  595. static Interface1InterfaceOperation5aMock* interface1InterfaceOperation5aMock;
  596. class UnnamedInterfaceOperation1Mock{
  597. public:
  598. int callCount;
  599. sc_boolean calledAtLeast(const int times){
  600. return (callCount >= times);
  601. }
  602. sc_boolean calledAtLeastOnce(){
  603. return (callCount>0);
  604. }
  605. void unnamedInterfaceOperation1() {
  606. callCount++;
  607. }
  608. void reset() {
  609. callCount = 0;
  610. }
  611. };
  612. static UnnamedInterfaceOperation1Mock* unnamedInterfaceOperation1Mock;
  613. class UnnamedInterfaceOperation2Mock{
  614. struct parameters {
  615. sc_integer param1;
  616. int callCount;
  617. inline bool operator==(const parameters& other) {
  618. return (this->param1 == other.param1);
  619. }
  620. };
  621. public:
  622. std::list<UnnamedInterfaceOperation2Mock::parameters> paramCount;
  623. int callCount;
  624. sc_boolean calledAtLeast(const int times){
  625. return (callCount >= times);
  626. }
  627. sc_boolean calledAtLeastOnce(){
  628. return (callCount>0);
  629. }
  630. sc_boolean calledAtLeast(const int times, const sc_integer param1){
  631. parameters p;
  632. p.param1 = param1;
  633. std::list<UnnamedInterfaceOperation2Mock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  634. if(i != paramCount.end()) {
  635. return (i->callCount >= times);
  636. }else{
  637. return false;
  638. }
  639. }
  640. sc_boolean calledAtLeastOnce(const sc_integer param1){
  641. parameters p;
  642. p.param1 = param1;
  643. std::list<UnnamedInterfaceOperation2Mock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  644. if(i != paramCount.end()) {
  645. return (i->callCount > 0);
  646. }else{
  647. return false;
  648. }
  649. }
  650. void UnnamedInterfaceOperation2(const sc_integer param1) {
  651. callCount++;
  652. parameters p;
  653. p.param1 = param1;
  654. std::list<UnnamedInterfaceOperation2Mock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  655. if(i != paramCount.end()) {
  656. p.callCount = (i->callCount + 1);
  657. paramCount.erase(i);
  658. }else{
  659. p.callCount = 1;
  660. }
  661. paramCount.push_back(p);
  662. }
  663. void reset() {
  664. callCount = 0;
  665. paramCount.clear();
  666. }
  667. };
  668. static UnnamedInterfaceOperation2Mock* unnamedInterfaceOperation2Mock;
  669. class UnnamedOperation3Mock{
  670. public:
  671. int callCount;
  672. sc_boolean calledAtLeast(const int times){
  673. return (callCount >= times);
  674. }
  675. sc_boolean calledAtLeastOnce(){
  676. return (callCount>0);
  677. }
  678. void unnamedOperation3() {
  679. callCount++;
  680. }
  681. void reset() {
  682. callCount = 0;
  683. }
  684. };
  685. static UnnamedOperation3Mock* unnamedOperation3Mock;
  686. class UnnamedOperation3aMock{
  687. struct parameters {
  688. sc_real param1;
  689. int callCount;
  690. inline bool operator==(const parameters& other) {
  691. return (this->param1 == other.param1);
  692. }
  693. };
  694. public:
  695. std::list<UnnamedOperation3aMock::parameters> paramCount;
  696. int callCount;
  697. sc_boolean calledAtLeast(const int times){
  698. return (callCount >= times);
  699. }
  700. sc_boolean calledAtLeastOnce(){
  701. return (callCount>0);
  702. }
  703. sc_boolean calledAtLeast(const int times, const sc_real param1){
  704. parameters p;
  705. p.param1 = param1;
  706. std::list<UnnamedOperation3aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  707. if(i != paramCount.end()) {
  708. return (i->callCount >= times);
  709. }else{
  710. return false;
  711. }
  712. }
  713. sc_boolean calledAtLeastOnce(const sc_real param1){
  714. parameters p;
  715. p.param1 = param1;
  716. std::list<UnnamedOperation3aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  717. if(i != paramCount.end()) {
  718. return (i->callCount > 0);
  719. }else{
  720. return false;
  721. }
  722. }
  723. void unnamedOperation3a(const sc_real param1) {
  724. callCount++;
  725. parameters p;
  726. p.param1 = param1;
  727. std::list<UnnamedOperation3aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  728. if(i != paramCount.end()) {
  729. p.callCount = (i->callCount + 1);
  730. paramCount.erase(i);
  731. }else{
  732. p.callCount = 1;
  733. }
  734. paramCount.push_back(p);
  735. }
  736. void reset() {
  737. callCount = 0;
  738. paramCount.clear();
  739. }
  740. };
  741. static UnnamedOperation3aMock* unnamedOperation3aMock;
  742. class UnnamedOperation4Mock{
  743. public:
  744. int callCount;
  745. sc_boolean calledAtLeast(const int times){
  746. return (callCount >= times);
  747. }
  748. sc_boolean calledAtLeastOnce(){
  749. return (callCount>0);
  750. }
  751. void unnamedOperation4() {
  752. callCount++;
  753. }
  754. void reset() {
  755. callCount = 0;
  756. }
  757. };
  758. static UnnamedOperation4Mock* unnamedOperation4Mock;
  759. class UnnamedOperation4aMock{
  760. struct parameters {
  761. sc_integer param1;
  762. int callCount;
  763. inline bool operator==(const parameters& other) {
  764. return (this->param1 == other.param1);
  765. }
  766. };
  767. public:
  768. std::list<UnnamedOperation4aMock::parameters> paramCount;
  769. int callCount;
  770. sc_boolean calledAtLeast(const int times){
  771. return (callCount >= times);
  772. }
  773. sc_boolean calledAtLeastOnce(){
  774. return (callCount>0);
  775. }
  776. sc_boolean calledAtLeast(const int times, const sc_integer param1){
  777. parameters p;
  778. p.param1 = param1;
  779. std::list<UnnamedOperation4aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  780. if(i != paramCount.end()) {
  781. return (i->callCount >= times);
  782. }else{
  783. return false;
  784. }
  785. }
  786. sc_boolean calledAtLeastOnce(const sc_integer param1){
  787. parameters p;
  788. p.param1 = param1;
  789. std::list<UnnamedOperation4aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  790. if(i != paramCount.end()) {
  791. return (i->callCount > 0);
  792. }else{
  793. return false;
  794. }
  795. }
  796. void unnamedOperation4a(const sc_integer param1) {
  797. callCount++;
  798. parameters p;
  799. p.param1 = param1;
  800. std::list<UnnamedOperation4aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  801. if(i != paramCount.end()) {
  802. p.callCount = (i->callCount + 1);
  803. paramCount.erase(i);
  804. }else{
  805. p.callCount = 1;
  806. }
  807. paramCount.push_back(p);
  808. }
  809. void reset() {
  810. callCount = 0;
  811. paramCount.clear();
  812. }
  813. };
  814. static UnnamedOperation4aMock* unnamedOperation4aMock;
  815. class UnnamedOperation5Mock{
  816. public:
  817. int callCount;
  818. sc_boolean calledAtLeast(const int times){
  819. return (callCount >= times);
  820. }
  821. sc_boolean calledAtLeastOnce(){
  822. return (callCount>0);
  823. }
  824. void unnamedOperation5() {
  825. callCount++;
  826. }
  827. void reset() {
  828. callCount = 0;
  829. }
  830. };
  831. static UnnamedOperation5Mock* unnamedOperation5Mock;
  832. class UnnamedOperation5aMock{
  833. struct parameters {
  834. const sc_string param1;
  835. int callCount;
  836. inline bool operator==(const parameters& other) {
  837. return (this->param1 == other.param1);
  838. }
  839. };
  840. public:
  841. std::list<UnnamedOperation5aMock::parameters> paramCount;
  842. int callCount;
  843. sc_boolean calledAtLeast(const int times){
  844. return (callCount >= times);
  845. }
  846. sc_boolean calledAtLeastOnce(){
  847. return (callCount>0);
  848. }
  849. sc_boolean calledAtLeast(const int times, const sc_string param1){
  850. parameters p;
  851. p.param1 = param1;
  852. std::list<UnnamedOperation5aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  853. if(i != paramCount.end()) {
  854. return (i->callCount >= times);
  855. }else{
  856. return false;
  857. }
  858. }
  859. sc_boolean calledAtLeastOnce(const sc_string param1){
  860. parameters p;
  861. p.param1 = param1;
  862. std::list<UnnamedOperation5aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  863. if(i != paramCount.end()) {
  864. return (i->callCount > 0);
  865. }else{
  866. return false;
  867. }
  868. }
  869. void unnamedOperation5a(const sc_string param1) {
  870. callCount++;
  871. parameters p;
  872. p.param1 = param1;
  873. std::list<UnnamedOperation5aMock::parameters>::iterator i = std::find(paramCount.begin(), paramCount.end(), p);
  874. if(i != paramCount.end()) {
  875. p.callCount = (i->callCount + 1);
  876. paramCount.erase(i);
  877. }else{
  878. p.callCount = 1;
  879. }
  880. paramCount.push_back(p);
  881. }
  882. void reset() {
  883. callCount = 0;
  884. paramCount.clear();
  885. }
  886. };
  887. static UnnamedOperation5aMock* unnamedOperation5aMock;
  888. class AlwaysTrueMock{
  889. typedef sc_boolean (AlwaysTrueMock::*functiontype)();
  890. public:
  891. sc_boolean (AlwaysTrueMock::*alwaysTrueBehaviorDefault)();
  892. sc_boolean alwaysTrue1(){
  893. return (true);
  894. }
  895. sc_boolean alwaysTrueDefault(){
  896. return (false);
  897. }
  898. functiontype getBehavior(){
  899. return alwaysTrueBehaviorDefault;
  900. }
  901. void setDefaultBehavior(sc_boolean (AlwaysTrueMock::*defaultBehavior)()){
  902. alwaysTrueBehaviorDefault = defaultBehavior;
  903. }
  904. void initializeBehavior() {
  905. setDefaultBehavior(&AlwaysTrueMock::alwaysTrueDefault);
  906. }
  907. void reset() {
  908. initializeBehavior();
  909. }
  910. };
  911. static AlwaysTrueMock* alwaysTrueMock;
  912. class MockInternal : public Operations::InternalSCI_OCB {
  913. public:
  914. void internalOperation1(){
  915. internalOperation1Mock->internalOperation1();
  916. }
  917. sc_boolean InternalOperation2(sc_integer param1){
  918. internalOperation2Mock->InternalOperation2(param1);
  919. return false;
  920. }
  921. sc_real internalOperation3(){
  922. internalOperation3Mock->internalOperation3();
  923. return 0.0d;
  924. }
  925. sc_real internalOperation3a(sc_real param1){
  926. internalOperation3aMock->internalOperation3a(param1);
  927. return 0.0d;
  928. }
  929. sc_integer internalOperation4(){
  930. internalOperation4Mock->internalOperation4();
  931. return 0;
  932. }
  933. sc_integer internalOperation4a(sc_integer param1){
  934. internalOperation4aMock->internalOperation4a(param1);
  935. return 0;
  936. }
  937. sc_string internalOperation5(){
  938. internalOperation5Mock->internalOperation5();
  939. return 0;
  940. }
  941. sc_string internalOperation5a(sc_string param1){
  942. internalOperation5aMock->internalOperation5a(param1);
  943. return 0;
  944. }
  945. };
  946. class MockInterface1 : public Operations::SCI_Interface1_OCB {
  947. public:
  948. void interfaceOperation1(){
  949. interface1InterfaceOperation1Mock->interfaceOperation1();
  950. }
  951. sc_boolean InterfaceOperation2(sc_integer param1){
  952. interface1InterfaceOperation2Mock->InterfaceOperation2(param1);
  953. return false;
  954. }
  955. sc_real interfaceOperation3(){
  956. interface1InterfaceOperation3Mock->interfaceOperation3();
  957. return 0.0d;
  958. }
  959. sc_real interfaceOperation3a(sc_real param1){
  960. interface1InterfaceOperation3aMock->interfaceOperation3a(param1);
  961. return 0.0d;
  962. }
  963. sc_integer interfaceOperation4(){
  964. interface1InterfaceOperation4Mock->interfaceOperation4();
  965. return 0;
  966. }
  967. sc_integer interfaceOperation4a(sc_integer param1){
  968. interface1InterfaceOperation4aMock->interfaceOperation4a(param1);
  969. return 0;
  970. }
  971. sc_string interfaceOperation5(){
  972. interface1InterfaceOperation5Mock->interfaceOperation5();
  973. return 0;
  974. }
  975. sc_string interfaceOperation5a(sc_string param1){
  976. interface1InterfaceOperation5aMock->interfaceOperation5a(param1);
  977. return 0;
  978. }
  979. };
  980. class MockDefault : public Operations::DefaultSCI_OCB {
  981. public:
  982. void unnamedInterfaceOperation1(){
  983. unnamedInterfaceOperation1Mock->unnamedInterfaceOperation1();
  984. }
  985. sc_boolean UnnamedInterfaceOperation2(sc_integer param1){
  986. unnamedInterfaceOperation2Mock->UnnamedInterfaceOperation2(param1);
  987. return false;
  988. }
  989. sc_real unnamedOperation3(){
  990. unnamedOperation3Mock->unnamedOperation3();
  991. return 0.0d;
  992. }
  993. sc_real unnamedOperation3a(sc_real param1){
  994. unnamedOperation3aMock->unnamedOperation3a(param1);
  995. return 0.0d;
  996. }
  997. sc_integer unnamedOperation4(){
  998. unnamedOperation4Mock->unnamedOperation4();
  999. return 0;
  1000. }
  1001. sc_integer unnamedOperation4a(sc_integer param1){
  1002. unnamedOperation4aMock->unnamedOperation4a(param1);
  1003. return 0;
  1004. }
  1005. sc_string unnamedOperation5(){
  1006. unnamedOperation5Mock->unnamedOperation5();
  1007. return 0;
  1008. }
  1009. sc_string unnamedOperation5a(sc_string param1){
  1010. unnamedOperation5aMock->unnamedOperation5a(param1);
  1011. return 0;
  1012. }
  1013. sc_boolean alwaysTrue(){
  1014. return (alwaysTrueMock->*(alwaysTrueMock->getBehavior()))();
  1015. }
  1016. };
  1017. //! The timers are managed by a timer service. */
  1018. static SctUnitRunner * runner;
  1019. class OperationsTest : public ::testing::Test{
  1020. protected:
  1021. Operations* statechart;
  1022. virtual void SetUp() {
  1023. statechart = new Operations();
  1024. statechart->init();
  1025. runner = new SctUnitRunner(
  1026. statechart,
  1027. false,
  1028. 200
  1029. );
  1030. }
  1031. virtual void TearDown() {
  1032. delete statechart;
  1033. delete runner;
  1034. }
  1035. };
  1036. TEST_F(OperationsTest, operationsCalled) {
  1037. alwaysTrueMock = new AlwaysTrueMock();
  1038. alwaysTrueMock->initializeBehavior();
  1039. internalOperation1Mock = new InternalOperation1Mock();
  1040. internalOperation2Mock = new InternalOperation2Mock();
  1041. internalOperation3Mock = new InternalOperation3Mock();
  1042. internalOperation3aMock = new InternalOperation3aMock();
  1043. internalOperation4Mock = new InternalOperation4Mock();
  1044. internalOperation4aMock = new InternalOperation4aMock();
  1045. internalOperation5Mock = new InternalOperation5Mock();
  1046. internalOperation5aMock = new InternalOperation5aMock();
  1047. interface1InterfaceOperation1Mock = new Interface1InterfaceOperation1Mock();
  1048. interface1InterfaceOperation2Mock = new Interface1InterfaceOperation2Mock();
  1049. interface1InterfaceOperation3Mock = new Interface1InterfaceOperation3Mock();
  1050. interface1InterfaceOperation3aMock = new Interface1InterfaceOperation3aMock();
  1051. interface1InterfaceOperation4Mock = new Interface1InterfaceOperation4Mock();
  1052. interface1InterfaceOperation4aMock = new Interface1InterfaceOperation4aMock();
  1053. interface1InterfaceOperation5Mock = new Interface1InterfaceOperation5Mock();
  1054. interface1InterfaceOperation5aMock = new Interface1InterfaceOperation5aMock();
  1055. unnamedInterfaceOperation1Mock = new UnnamedInterfaceOperation1Mock();
  1056. unnamedInterfaceOperation2Mock = new UnnamedInterfaceOperation2Mock();
  1057. unnamedOperation3Mock = new UnnamedOperation3Mock();
  1058. unnamedOperation3aMock = new UnnamedOperation3aMock();
  1059. unnamedOperation4Mock = new UnnamedOperation4Mock();
  1060. unnamedOperation4aMock = new UnnamedOperation4aMock();
  1061. unnamedOperation5Mock = new UnnamedOperation5Mock();
  1062. unnamedOperation5aMock = new UnnamedOperation5aMock();
  1063. MockDefault defaultMock;
  1064. MockInternal internalMock;
  1065. MockInterface1 interface1Mock;
  1066. statechart->setDefaultSCI_OCB(&defaultMock);
  1067. statechart->setInternalSCI_OCB(&internalMock);
  1068. statechart->setSCI_Interface1_OCB(&interface1Mock);
  1069. alwaysTrueMock->setDefaultBehavior(&AlwaysTrueMock::alwaysTrue1);
  1070. statechart->enter();
  1071. EXPECT_TRUE(statechart->isStateActive(Operations::main_region_A));
  1072. runner->proceed_cycles(1);
  1073. EXPECT_TRUE(statechart->isStateActive(Operations::main_region_B));
  1074. EXPECT_TRUE(internalOperation1Mock->calledAtLeastOnce());
  1075. EXPECT_TRUE(internalOperation2Mock->calledAtLeastOnce(4l));
  1076. EXPECT_TRUE(internalOperation3Mock->calledAtLeastOnce());
  1077. EXPECT_TRUE(internalOperation3aMock->calledAtLeastOnce(1.0));
  1078. EXPECT_TRUE(internalOperation4Mock->calledAtLeastOnce());
  1079. EXPECT_TRUE(internalOperation4aMock->calledAtLeastOnce(5l));
  1080. EXPECT_TRUE(internalOperation5Mock->calledAtLeastOnce());
  1081. EXPECT_TRUE(internalOperation5aMock->calledAtLeastOnce());
  1082. statechart->getDefaultSCI()->raise_ev();
  1083. runner->proceed_cycles(1);
  1084. EXPECT_TRUE(statechart->isStateActive(Operations::main_region_C));
  1085. EXPECT_TRUE(interface1InterfaceOperation1Mock->calledAtLeastOnce());
  1086. EXPECT_TRUE(interface1InterfaceOperation2Mock->calledAtLeastOnce(4l));
  1087. EXPECT_TRUE(interface1InterfaceOperation3Mock->calledAtLeastOnce());
  1088. EXPECT_TRUE(interface1InterfaceOperation3aMock->calledAtLeastOnce(1.0));
  1089. EXPECT_TRUE(interface1InterfaceOperation4Mock->calledAtLeastOnce());
  1090. EXPECT_TRUE(interface1InterfaceOperation4aMock->calledAtLeastOnce(5l));
  1091. EXPECT_TRUE(interface1InterfaceOperation5Mock->calledAtLeastOnce());
  1092. EXPECT_TRUE(interface1InterfaceOperation5aMock->calledAtLeastOnce());
  1093. statechart->getDefaultSCI()->raise_ev();
  1094. runner->proceed_cycles(1);
  1095. EXPECT_TRUE(statechart->isStateActive(Operations::main_region_D));
  1096. EXPECT_TRUE(unnamedInterfaceOperation1Mock->calledAtLeastOnce());
  1097. EXPECT_TRUE(unnamedInterfaceOperation2Mock->calledAtLeastOnce(4l));
  1098. EXPECT_TRUE(unnamedOperation3Mock->calledAtLeastOnce());
  1099. EXPECT_TRUE(unnamedOperation3aMock->calledAtLeastOnce(1.0));
  1100. EXPECT_TRUE(unnamedOperation4Mock->calledAtLeastOnce());
  1101. EXPECT_TRUE(unnamedOperation4aMock->calledAtLeastOnce(5l));
  1102. EXPECT_TRUE(unnamedOperation5Mock->calledAtLeastOnce());
  1103. EXPECT_TRUE(unnamedOperation5aMock->calledAtLeastOnce());
  1104. alwaysTrueMock->reset();
  1105. internalOperation1Mock->reset();
  1106. internalOperation2Mock->reset();
  1107. internalOperation3Mock->reset();
  1108. internalOperation3aMock->reset();
  1109. internalOperation4Mock->reset();
  1110. internalOperation4aMock->reset();
  1111. internalOperation5Mock->reset();
  1112. internalOperation5aMock->reset();
  1113. interface1InterfaceOperation1Mock->reset();
  1114. interface1InterfaceOperation2Mock->reset();
  1115. interface1InterfaceOperation3Mock->reset();
  1116. interface1InterfaceOperation3aMock->reset();
  1117. interface1InterfaceOperation4Mock->reset();
  1118. interface1InterfaceOperation4aMock->reset();
  1119. interface1InterfaceOperation5Mock->reset();
  1120. interface1InterfaceOperation5aMock->reset();
  1121. unnamedInterfaceOperation1Mock->reset();
  1122. unnamedInterfaceOperation2Mock->reset();
  1123. unnamedOperation3Mock->reset();
  1124. unnamedOperation3aMock->reset();
  1125. unnamedOperation4Mock->reset();
  1126. unnamedOperation4aMock->reset();
  1127. unnamedOperation5Mock->reset();
  1128. unnamedOperation5aMock->reset();
  1129. }
  1130. TEST_F(OperationsTest, operationsNotCalled) {
  1131. alwaysTrueMock = new AlwaysTrueMock();
  1132. alwaysTrueMock->initializeBehavior();
  1133. internalOperation1Mock = new InternalOperation1Mock();
  1134. internalOperation2Mock = new InternalOperation2Mock();
  1135. internalOperation3Mock = new InternalOperation3Mock();
  1136. internalOperation3aMock = new InternalOperation3aMock();
  1137. internalOperation4Mock = new InternalOperation4Mock();
  1138. internalOperation4aMock = new InternalOperation4aMock();
  1139. internalOperation5Mock = new InternalOperation5Mock();
  1140. internalOperation5aMock = new InternalOperation5aMock();
  1141. interface1InterfaceOperation1Mock = new Interface1InterfaceOperation1Mock();
  1142. interface1InterfaceOperation2Mock = new Interface1InterfaceOperation2Mock();
  1143. interface1InterfaceOperation3Mock = new Interface1InterfaceOperation3Mock();
  1144. interface1InterfaceOperation3aMock = new Interface1InterfaceOperation3aMock();
  1145. interface1InterfaceOperation4Mock = new Interface1InterfaceOperation4Mock();
  1146. interface1InterfaceOperation4aMock = new Interface1InterfaceOperation4aMock();
  1147. interface1InterfaceOperation5Mock = new Interface1InterfaceOperation5Mock();
  1148. interface1InterfaceOperation5aMock = new Interface1InterfaceOperation5aMock();
  1149. unnamedInterfaceOperation1Mock = new UnnamedInterfaceOperation1Mock();
  1150. unnamedInterfaceOperation2Mock = new UnnamedInterfaceOperation2Mock();
  1151. unnamedOperation3Mock = new UnnamedOperation3Mock();
  1152. unnamedOperation3aMock = new UnnamedOperation3aMock();
  1153. unnamedOperation4Mock = new UnnamedOperation4Mock();
  1154. unnamedOperation4aMock = new UnnamedOperation4aMock();
  1155. unnamedOperation5Mock = new UnnamedOperation5Mock();
  1156. unnamedOperation5aMock = new UnnamedOperation5aMock();
  1157. MockDefault defaultMock;
  1158. MockInternal internalMock;
  1159. MockInterface1 interface1Mock;
  1160. statechart->setDefaultSCI_OCB(&defaultMock);
  1161. statechart->setInternalSCI_OCB(&internalMock);
  1162. statechart->setSCI_Interface1_OCB(&interface1Mock);
  1163. alwaysTrueMock->setDefaultBehavior(&AlwaysTrueMock::alwaysTrue1);
  1164. statechart->enter();
  1165. EXPECT_TRUE(statechart->isStateActive(Operations::main_region_A));
  1166. EXPECT_FALSE(internalOperation1Mock->calledAtLeastOnce());
  1167. EXPECT_FALSE(internalOperation2Mock->calledAtLeastOnce(4l));
  1168. EXPECT_FALSE(internalOperation3Mock->calledAtLeastOnce());
  1169. EXPECT_FALSE(internalOperation3aMock->calledAtLeastOnce(1.0));
  1170. EXPECT_FALSE(internalOperation4Mock->calledAtLeastOnce());
  1171. EXPECT_FALSE(internalOperation4aMock->calledAtLeastOnce(5l));
  1172. EXPECT_FALSE(internalOperation5Mock->calledAtLeastOnce());
  1173. EXPECT_FALSE(internalOperation5aMock->calledAtLeastOnce());
  1174. statechart->getDefaultSCI()->raise_ev();
  1175. runner->proceed_cycles(1);
  1176. EXPECT_TRUE(statechart->isStateActive(Operations::main_region_B));
  1177. EXPECT_FALSE(interface1InterfaceOperation1Mock->calledAtLeastOnce());
  1178. EXPECT_FALSE(interface1InterfaceOperation2Mock->calledAtLeastOnce(4l));
  1179. EXPECT_FALSE(interface1InterfaceOperation3Mock->calledAtLeastOnce());
  1180. EXPECT_FALSE(interface1InterfaceOperation3aMock->calledAtLeastOnce(1.0));
  1181. EXPECT_FALSE(interface1InterfaceOperation4Mock->calledAtLeastOnce());
  1182. EXPECT_FALSE(interface1InterfaceOperation4aMock->calledAtLeastOnce(5l));
  1183. EXPECT_FALSE(interface1InterfaceOperation5Mock->calledAtLeastOnce());
  1184. EXPECT_FALSE(interface1InterfaceOperation5aMock->calledAtLeastOnce());
  1185. statechart->getDefaultSCI()->raise_ev();
  1186. runner->proceed_cycles(1);
  1187. EXPECT_TRUE(statechart->isStateActive(Operations::main_region_C));
  1188. EXPECT_FALSE(unnamedInterfaceOperation1Mock->calledAtLeastOnce());
  1189. EXPECT_FALSE(unnamedInterfaceOperation2Mock->calledAtLeastOnce(4l));
  1190. EXPECT_FALSE(unnamedOperation3Mock->calledAtLeastOnce());
  1191. EXPECT_FALSE(unnamedOperation3aMock->calledAtLeastOnce(1.0));
  1192. EXPECT_FALSE(unnamedOperation4Mock->calledAtLeastOnce());
  1193. EXPECT_FALSE(unnamedOperation4aMock->calledAtLeastOnce(5l));
  1194. EXPECT_FALSE(unnamedOperation5Mock->calledAtLeastOnce());
  1195. EXPECT_FALSE(unnamedOperation5aMock->calledAtLeastOnce());
  1196. alwaysTrueMock->reset();
  1197. internalOperation1Mock->reset();
  1198. internalOperation2Mock->reset();
  1199. internalOperation3Mock->reset();
  1200. internalOperation3aMock->reset();
  1201. internalOperation4Mock->reset();
  1202. internalOperation4aMock->reset();
  1203. internalOperation5Mock->reset();
  1204. internalOperation5aMock->reset();
  1205. interface1InterfaceOperation1Mock->reset();
  1206. interface1InterfaceOperation2Mock->reset();
  1207. interface1InterfaceOperation3Mock->reset();
  1208. interface1InterfaceOperation3aMock->reset();
  1209. interface1InterfaceOperation4Mock->reset();
  1210. interface1InterfaceOperation4aMock->reset();
  1211. interface1InterfaceOperation5Mock->reset();
  1212. interface1InterfaceOperation5aMock->reset();
  1213. unnamedInterfaceOperation1Mock->reset();
  1214. unnamedInterfaceOperation2Mock->reset();
  1215. unnamedOperation3Mock->reset();
  1216. unnamedOperation3aMock->reset();
  1217. unnamedOperation4Mock->reset();
  1218. unnamedOperation4aMock->reset();
  1219. unnamedOperation5Mock->reset();
  1220. unnamedOperation5aMock->reset();
  1221. }
  1222. }