ruote 0.9.19 → 0.9.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (401) hide show
  1. data/README.txt +16 -6
  2. data/examples/engine_template.rb +6 -43
  3. data/examples/quickstart.rb +87 -0
  4. data/examples/quotereporter.rb +42 -49
  5. data/examples/simple.rb +56 -0
  6. data/lib/openwfe.rb +20 -34
  7. data/lib/openwfe/contextual.rb +45 -36
  8. data/lib/openwfe/def.rb +21 -30
  9. data/lib/openwfe/engine.rb +17 -26
  10. data/lib/openwfe/engine/engine.rb +132 -397
  11. data/lib/openwfe/engine/expool_methods.rb +34 -122
  12. data/lib/openwfe/engine/file_persisted_engine.rb +39 -60
  13. data/lib/openwfe/engine/fs_engine.rb +54 -0
  14. data/lib/openwfe/engine/launch_methods.rb +245 -0
  15. data/lib/openwfe/engine/listener_methods.rb +128 -0
  16. data/lib/openwfe/engine/lookup_methods.rb +156 -0
  17. data/lib/openwfe/engine/participant_methods.rb +60 -52
  18. data/lib/openwfe/engine/status_methods.rb +102 -97
  19. data/lib/openwfe/engine/tc_engine.rb +55 -0
  20. data/lib/openwfe/engine/tt_engine.rb +55 -0
  21. data/lib/openwfe/engine/update_exp_methods.rb +46 -39
  22. data/lib/openwfe/expool/def_parser.rb +196 -0
  23. data/lib/openwfe/expool/errorjournal.rb +51 -219
  24. data/lib/openwfe/expool/errors.rb +69 -0
  25. data/lib/openwfe/expool/expool_pause_methods.rb +32 -43
  26. data/lib/openwfe/expool/expressionpool.rb +398 -594
  27. data/lib/openwfe/expool/expstorage.rb +68 -72
  28. data/lib/openwfe/expool/fs_expstorage.rb +302 -0
  29. data/lib/openwfe/expool/history.rb +54 -38
  30. data/lib/openwfe/expool/journal.rb +24 -38
  31. data/lib/openwfe/expool/journal_replay.rb +20 -36
  32. data/lib/openwfe/expool/representation.rb +62 -78
  33. data/lib/openwfe/expool/tc_expstorage.rb +239 -0
  34. data/lib/openwfe/expool/{threadedexpstorage.rb → threaded_expstorage.rb} +25 -53
  35. data/lib/openwfe/expool/tt_expstorage.rb +55 -0
  36. data/lib/openwfe/expool/wfidgen.rb +23 -43
  37. data/lib/openwfe/expool/yaml_errorjournal.rb +187 -0
  38. data/lib/openwfe/expressions/condition.rb +33 -58
  39. data/lib/openwfe/expressions/environment.rb +62 -76
  40. data/lib/openwfe/expressions/{expressionmap.rb → expression_map.rb} +40 -54
  41. data/lib/openwfe/expressions/expression_tree.rb +265 -0
  42. data/lib/openwfe/expressions/fe_cancel.rb +19 -39
  43. data/lib/openwfe/expressions/fe_command.rb +80 -84
  44. data/lib/openwfe/expressions/fe_concurrence.rb +250 -313
  45. data/lib/openwfe/expressions/fe_cron.rb +38 -55
  46. data/lib/openwfe/expressions/fe_cursor.rb +49 -74
  47. data/lib/openwfe/expressions/fe_define.rb +44 -90
  48. data/lib/openwfe/expressions/fe_do.rb +83 -70
  49. data/lib/openwfe/expressions/fe_equals.rb +17 -35
  50. data/lib/openwfe/expressions/fe_error.rb +103 -0
  51. data/lib/openwfe/expressions/fe_filter.rb +27 -44
  52. data/lib/openwfe/expressions/fe_filter_definition.rb +37 -54
  53. data/lib/openwfe/expressions/fe_fqv.rb +46 -65
  54. data/lib/openwfe/expressions/fe_http.rb +17 -31
  55. data/lib/openwfe/expressions/fe_if.rb +39 -55
  56. data/lib/openwfe/expressions/fe_iterator.rb +25 -42
  57. data/lib/openwfe/expressions/fe_listen.rb +71 -115
  58. data/lib/openwfe/expressions/fe_losfor.rb +34 -43
  59. data/lib/openwfe/expressions/fe_misc.rb +70 -109
  60. data/lib/openwfe/expressions/fe_participant.rb +61 -99
  61. data/lib/openwfe/expressions/fe_reserve.rb +28 -59
  62. data/lib/openwfe/expressions/fe_save.rb +62 -81
  63. data/lib/openwfe/expressions/fe_sequence.rb +45 -70
  64. data/lib/openwfe/expressions/fe_set.rb +22 -40
  65. data/lib/openwfe/expressions/fe_step.rb +22 -37
  66. data/lib/openwfe/expressions/fe_subprocess.rb +34 -55
  67. data/lib/openwfe/expressions/fe_timeout.rb +28 -44
  68. data/lib/openwfe/expressions/fe_wait.rb +142 -36
  69. data/lib/openwfe/expressions/fe_when.rb +22 -46
  70. data/lib/openwfe/expressions/filter.rb +24 -43
  71. data/lib/openwfe/expressions/flowexpression.rb +211 -192
  72. data/lib/openwfe/expressions/iterator.rb +24 -39
  73. data/lib/openwfe/expressions/merge.rb +30 -52
  74. data/lib/openwfe/expressions/raw.rb +168 -384
  75. data/lib/openwfe/expressions/rprocdef.rb +79 -76
  76. data/lib/openwfe/expressions/time.rb +89 -103
  77. data/lib/openwfe/expressions/timeout.rb +98 -92
  78. data/lib/openwfe/expressions/value.rb +43 -69
  79. data/lib/openwfe/extras/engine/ar_engine.rb +58 -0
  80. data/lib/openwfe/extras/engine/db_persisted_engine.rb +37 -57
  81. data/lib/openwfe/extras/engine/dm_engine.rb +59 -0
  82. data/lib/openwfe/extras/expool/ar_expstorage.rb +337 -0
  83. data/lib/openwfe/extras/expool/db_errorjournal.rb +165 -0
  84. data/lib/openwfe/extras/expool/db_expstorage.rb +73 -0
  85. data/lib/openwfe/extras/expool/db_history.rb +163 -0
  86. data/lib/openwfe/extras/expool/dm_expstorage.rb +327 -0
  87. data/lib/openwfe/extras/listeners/jabber_listeners.rb +102 -0
  88. data/lib/openwfe/extras/listeners/jabberlisteners.rb +26 -0
  89. data/lib/openwfe/extras/listeners/sqs_listeners.rb +128 -0
  90. data/lib/openwfe/extras/misc/activityfeed.rb +19 -34
  91. data/lib/openwfe/extras/misc/jabber_common.rb +122 -0
  92. data/lib/openwfe/extras/participants/active_participants.rb +724 -0
  93. data/lib/openwfe/extras/participants/active_resource_participants.rb +213 -0
  94. data/lib/openwfe/extras/participants/activeparticipants.rb +1 -747
  95. data/lib/openwfe/extras/participants/ar_participants.rb +285 -0
  96. data/lib/openwfe/extras/participants/atomfeed_participants.rb +19 -34
  97. data/lib/openwfe/extras/participants/atompub_participants.rb +19 -34
  98. data/lib/openwfe/extras/participants/basecamp_participants.rb +17 -31
  99. data/lib/openwfe/extras/participants/{csvparticipants.rb → decision_participants.rb} +17 -31
  100. data/lib/openwfe/extras/participants/jabber_participants.rb +147 -0
  101. data/lib/openwfe/extras/participants/jabberparticipants.rb +3 -0
  102. data/lib/openwfe/extras/participants/sqs_participants.rb +108 -0
  103. data/lib/openwfe/extras/participants/{twitterparticipants.rb → twitter_participants.rb} +20 -34
  104. data/lib/openwfe/extras/singlecon.rb +56 -0
  105. data/lib/openwfe/filterdef.rb +83 -65
  106. data/lib/openwfe/flowexpressionid.rb +99 -62
  107. data/lib/openwfe/listeners/listener.rb +54 -65
  108. data/lib/openwfe/listeners/listeners.rb +52 -56
  109. data/lib/openwfe/logging.rb +17 -31
  110. data/lib/openwfe/omixins.rb +25 -58
  111. data/lib/openwfe/participants.rb +1 -34
  112. data/lib/openwfe/participants/{enoparticipants.rb → mail_participants.rb} +33 -47
  113. data/lib/openwfe/participants/participant.rb +37 -36
  114. data/lib/openwfe/participants/participant_map.rb +245 -0
  115. data/lib/openwfe/participants/participants.rb +43 -69
  116. data/lib/openwfe/participants/{soapparticipants.rb → soap_participants.rb} +22 -36
  117. data/lib/openwfe/participants/{storeparticipants.rb → store_participants.rb} +57 -62
  118. data/lib/openwfe/{storage/yamlfilestorage.rb → participants/yaml_filestorage.rb} +35 -64
  119. data/lib/openwfe/representations.rb +770 -0
  120. data/lib/openwfe/rudefinitions.rb +17 -29
  121. data/lib/openwfe/service.rb +21 -32
  122. data/lib/openwfe/tools/flowtracer.rb +21 -35
  123. data/lib/openwfe/util/dollar.rb +48 -61
  124. data/lib/openwfe/util/irb.rb +19 -34
  125. data/lib/openwfe/util/json.rb +55 -0
  126. data/lib/openwfe/util/observable.rb +22 -41
  127. data/lib/openwfe/util/ometa.rb +21 -35
  128. data/lib/openwfe/util/treechecker.rb +17 -31
  129. data/lib/openwfe/util/workqueue.rb +45 -44
  130. data/lib/openwfe/util/xml.rb +80 -234
  131. data/lib/openwfe/utils.rb +67 -110
  132. data/lib/openwfe/version.rb +19 -27
  133. data/lib/openwfe/workitem.rb +119 -84
  134. data/lib/openwfe/worklist/storelocks.rb +17 -33
  135. data/lib/openwfe/worklist/storeparticipant.rb +1 -39
  136. data/lib/openwfe/worklist/worklist.rb +17 -31
  137. data/lib/pooltool.ru +311 -0
  138. data/test/{extras/active_connection.rb → ar_test_connection.rb} +26 -11
  139. data/test/bm/fatxml.rb +70 -0
  140. data/test/bm/load_26c.rb +79 -0
  141. data/test/dm_test_connection.rb +11 -0
  142. data/test/extras/base.rb +3 -0
  143. data/test/extras/et_0_sqs.rb +37 -0
  144. data/test/extras/et_jabber_test.rb +226 -0
  145. data/test/extras/test.rb +16 -0
  146. data/test/functional/base.rb +198 -0
  147. data/test/functional/db_ft_0_ar_participants.rb +136 -0
  148. data/test/functional/eft_0_process_definition.rb +34 -0
  149. data/test/functional/eft_10_unset.rb +60 -0
  150. data/test/functional/eft_11_sleep.rb +95 -0
  151. data/test/functional/eft_12_wait.rb +57 -0
  152. data/test/functional/eft_13_cursor.rb +139 -0
  153. data/test/functional/eft_14_loop.rb +36 -0
  154. data/test/functional/eft_15_undo.rb +77 -0
  155. data/test/functional/eft_16_redo.rb +88 -0
  156. data/test/functional/eft_1_print.rb +57 -0
  157. data/test/functional/eft_2_sequence.rb +47 -0
  158. data/test/functional/eft_3_equals.rb +98 -0
  159. data/test/functional/eft_4_if.rb +96 -0
  160. data/test/functional/eft_5_eval.rb +89 -0
  161. data/test/functional/eft_6_reval.rb +101 -0
  162. data/test/functional/eft_7_exp.rb +47 -0
  163. data/test/functional/eft_8_log.rb +50 -0
  164. data/test/functional/eft_9_set.rb +132 -0
  165. data/test/functional/engine_helper.rb +122 -0
  166. data/test/functional/ft_0_vars_at_launch.rb +27 -0
  167. data/test/functional/ft_1_process_status.rb +46 -0
  168. data/test/functional/ft_2_file_listener.rb +45 -0
  169. data/test/functional/ft_3_on_cancel.rb +171 -0
  170. data/test/functional/ft_4_on_error.rb +220 -0
  171. data/test/functional/ft_5_process_uri.rb +82 -0
  172. data/test/functional/ft_6_process_status.rb +62 -0
  173. data/test/functional/ft_7_parameters.rb +103 -0
  174. data/test/functional/ft_8_dollar.rb +53 -0
  175. data/test/functional/ft_9_register_participants.rb +119 -0
  176. data/test/functional/restart_base.rb +43 -0
  177. data/test/functional/rft_0_sleep.rb +76 -0
  178. data/test/functional/test.rb +24 -0
  179. data/test/path_helper.rb +12 -0
  180. data/test/test.rb +11 -1
  181. data/test/{rutest_utils.rb → test_helper.rb} +8 -31
  182. data/test/unit/test.rb +19 -0
  183. data/test/{fei_test.rb → unit/ut_0_fei.rb} +34 -49
  184. data/test/unit/ut_10_lookup_attribute.rb +86 -0
  185. data/test/unit/ut_11_filter.rb +124 -0
  186. data/test/{condition_test.rb → unit/ut_12_conditional.rb} +33 -40
  187. data/test/unit/ut_13_xmlutil.rb +57 -0
  188. data/test/unit/ut_14_var_field_lookup.rb +85 -0
  189. data/test/{fe_lookup_att_test.rb → unit/ut_15_fe_att_lookup.rb} +14 -21
  190. data/test/{storage_test.rb → unit/ut_16_expstorage_findexp.rb} +3 -9
  191. data/test/unit/ut_17_representations.rb +330 -0
  192. data/test/{hash_test.rb → unit/ut_17b_representations_hash.rb} +25 -21
  193. data/test/{slock_test.rb → unit/ut_18_store_lock.rb} +17 -20
  194. data/test/{wfid_test.rb → unit/ut_1_wfid.rb} +2 -73
  195. data/test/unit/ut_2_utils.rb +53 -0
  196. data/test/unit/ut_3_expmap.rb +65 -0
  197. data/test/{clone_test.rb → unit/ut_4_fulldup.rb} +41 -46
  198. data/test/{obs_test.rb → unit/ut_5_observable.rb} +9 -19
  199. data/test/unit/ut_6_treechecker.rb +101 -0
  200. data/test/unit/ut_7_parser_ruby.rb +344 -0
  201. data/test/unit/ut_7b_parser_ruby.rb +56 -0
  202. data/test/{description_test.rb → unit/ut_8_parser_description.rb} +8 -19
  203. data/test/unit/ut_9_workitem.rb +72 -0
  204. metadata +117 -234
  205. data/lib/openwfe/exceptions.rb +0 -51
  206. data/lib/openwfe/expool/parser.rb +0 -278
  207. data/lib/openwfe/expool/paused_error.rb +0 -77
  208. data/lib/openwfe/expool/yamlexpstorage.rb +0 -224
  209. data/lib/openwfe/expressions/fe_sleep.rb +0 -173
  210. data/lib/openwfe/extras/expool/dberrorjournal.rb +0 -189
  211. data/lib/openwfe/extras/expool/dbexpstorage.rb +0 -355
  212. data/lib/openwfe/extras/expool/dbhistory.rb +0 -135
  213. data/lib/openwfe/extras/listeners/sqslisteners.rb +0 -146
  214. data/lib/openwfe/extras/participants/sqsparticipants.rb +0 -125
  215. data/lib/openwfe/listeners/socketlisteners.rb +0 -272
  216. data/lib/openwfe/orest/definitions.rb +0 -113
  217. data/lib/openwfe/orest/osocket.rb +0 -148
  218. data/lib/openwfe/orest/xmlcodec.rb +0 -682
  219. data/lib/openwfe/participants/participantmap.rb +0 -249
  220. data/lib/openwfe/participants/socketparticipants.rb +0 -202
  221. data/lib/openwfe/storage/yamlcustom.rb +0 -106
  222. data/lib/openwfe/worklist/oldrest.rb +0 -244
  223. data/test/README.txt +0 -27
  224. data/test/back_0916_test.rb +0 -109
  225. data/test/bm/bm_1_xml_vs_prog.rb +0 -59
  226. data/test/bm/bm_2_step.rb +0 -109
  227. data/test/bm/ft_0f_5ms.rb +0 -35
  228. data/test/bm/ft_26_load.rb +0 -208
  229. data/test/bm/ft_26b_load.rb +0 -84
  230. data/test/bm/ft_26c_load.rb +0 -102
  231. data/test/bm/ft_recu.rb +0 -71
  232. data/test/concurrence_test.rb +0 -77
  233. data/test/console_test.rb +0 -12
  234. data/test/cron_ltest.rb +0 -15
  235. data/test/eno_test.rb +0 -76
  236. data/test/expmap_test.rb +0 -54
  237. data/test/expool_20031219_0916.tgz +0 -0
  238. data/test/extras/README.txt +0 -5
  239. data/test/extras/active_with_engine_test.rb +0 -140
  240. data/test/extras/activityfeed_test.rb +0 -85
  241. data/test/extras/ap_0_test.rb +0 -287
  242. data/test/extras/ap_1_test.rb +0 -53
  243. data/test/extras/ap_test_base.rb +0 -24
  244. data/test/extras/atomfeedp_test.rb +0 -113
  245. data/test/extras/atompubp_test.rb +0 -91
  246. data/test/extras/basecamp_test.rb +0 -53
  247. data/test/extras/db_errorjournal_utest.rb +0 -75
  248. data/test/extras/db_expstorage_utest.rb +0 -171
  249. data/test/extras/db_history_0_test.rb +0 -58
  250. data/test/extras/ft_19_csv.rb +0 -58
  251. data/test/extras/ft_71_b14008.rb +0 -85
  252. data/test/extras/sqs_test.rb +0 -57
  253. data/test/extras/twitter_test.rb +0 -62
  254. data/test/file_persisted_engine_test.rb +0 -64
  255. data/test/file_persistence_test.rb +0 -135
  256. data/test/filep_cancel_test.rb +0 -123
  257. data/test/filter_test.rb +0 -109
  258. data/test/flowtestbase.rb +0 -339
  259. data/test/ft_0.rb +0 -68
  260. data/test/ft_0b_sequence.rb +0 -36
  261. data/test/ft_0c_testname.rb +0 -33
  262. data/test/ft_0d_participant.rb +0 -30
  263. data/test/ft_0e_multibody.rb +0 -34
  264. data/test/ft_10_loop.rb +0 -133
  265. data/test/ft_11_ppd.rb +0 -411
  266. data/test/ft_11b_ppd.rb +0 -54
  267. data/test/ft_12_blockparticipant.rb +0 -97
  268. data/test/ft_13_eno.rb +0 -52
  269. data/test/ft_14_subprocess.rb +0 -88
  270. data/test/ft_14b_subprocess.rb +0 -192
  271. data/test/ft_14c_subprocess.rb +0 -68
  272. data/test/ft_15_iterator.rb +0 -216
  273. data/test/ft_15b_iterator.rb +0 -74
  274. data/test/ft_16_fqv.rb +0 -73
  275. data/test/ft_17_condition.rb +0 -84
  276. data/test/ft_18_pname.rb +0 -56
  277. data/test/ft_1_unset.rb +0 -175
  278. data/test/ft_1b_unset.rb +0 -39
  279. data/test/ft_20_cron.rb +0 -53
  280. data/test/ft_21_cron.rb +0 -87
  281. data/test/ft_21b_cron_pause.rb +0 -82
  282. data/test/ft_22_history.rb +0 -78
  283. data/test/ft_23_when.rb +0 -77
  284. data/test/ft_23b_when.rb +0 -70
  285. data/test/ft_23c_wait.rb +0 -80
  286. data/test/ft_23d_cww.rb +0 -58
  287. data/test/ft_24_def.rb +0 -44
  288. data/test/ft_25_cancel.rb +0 -92
  289. data/test/ft_27_getflowpos.rb +0 -143
  290. data/test/ft_28_fileparticipant.rb +0 -63
  291. data/test/ft_29_httprb.rb +0 -106
  292. data/test/ft_2_concurrence.rb +0 -137
  293. data/test/ft_2b_concurrence.rb +0 -188
  294. data/test/ft_2c_concurrence.rb +0 -64
  295. data/test/ft_30_socketlistener.rb +0 -203
  296. data/test/ft_31_flowname.rb +0 -39
  297. data/test/ft_32_journal.rb +0 -91
  298. data/test/ft_32c_journal.rb +0 -102
  299. data/test/ft_32d_journal.rb +0 -81
  300. data/test/ft_33_description.rb +0 -107
  301. data/test/ft_34_cancelwfid.rb +0 -80
  302. data/test/ft_35_localdefs.rb +0 -77
  303. data/test/ft_36_subprocids.rb +0 -97
  304. data/test/ft_37_pnames.rb +0 -70
  305. data/test/ft_38_tag.rb +0 -127
  306. data/test/ft_38b_tag.rb +0 -161
  307. data/test/ft_38c_tag.rb +0 -100
  308. data/test/ft_38d_tag.rb +0 -53
  309. data/test/ft_39_reserve.rb +0 -63
  310. data/test/ft_39b_reserve.rb +0 -84
  311. data/test/ft_3_equals.rb +0 -170
  312. data/test/ft_3b_lookup_vf.rb +0 -83
  313. data/test/ft_40_defined.rb +0 -61
  314. data/test/ft_41_case.rb +0 -110
  315. data/test/ft_42_environments.rb +0 -75
  316. data/test/ft_43_pat10.rb +0 -85
  317. data/test/ft_44_save.rb +0 -70
  318. data/test/ft_44b_restore.rb +0 -212
  319. data/test/ft_45_citerator.rb +0 -214
  320. data/test/ft_45b_citerator.rb +0 -77
  321. data/test/ft_46_pparams.rb +0 -62
  322. data/test/ft_47_filter.rb +0 -160
  323. data/test/ft_48_fe_filter.rb +0 -88
  324. data/test/ft_49_condition.rb +0 -133
  325. data/test/ft_4_misc.rb +0 -232
  326. data/test/ft_50_xml_attribute.rb +0 -152
  327. data/test/ft_51_stack.rb +0 -55
  328. data/test/ft_52_obs_participant.rb +0 -123
  329. data/test/ft_53_null_noop_participant.rb +0 -62
  330. data/test/ft_54_listen.rb +0 -288
  331. data/test/ft_54b_listen.rb +0 -66
  332. data/test/ft_54c_listen.rb +0 -99
  333. data/test/ft_55_ptimeout.rb +0 -58
  334. data/test/ft_56_timeout.rb +0 -59
  335. data/test/ft_57_a.rb +0 -148
  336. data/test/ft_58_ejournal.rb +0 -154
  337. data/test/ft_58b_ejournal.rb +0 -82
  338. data/test/ft_59_ps.rb +0 -212
  339. data/test/ft_5_time.rb +0 -118
  340. data/test/ft_60_ecancel.rb +0 -161
  341. data/test/ft_61_elsub.rb +0 -51
  342. data/test/ft_62_procparticipant.rb +0 -71
  343. data/test/ft_63_pause.rb +0 -137
  344. data/test/ft_64_alias.rb +0 -101
  345. data/test/ft_65_stringlaunch.rb +0 -59
  346. data/test/ft_66_subforget.rb +0 -70
  347. data/test/ft_67_schedlaunch.rb +0 -115
  348. data/test/ft_68_ifparticipant.rb +0 -70
  349. data/test/ft_69_cancelmissing.rb +0 -53
  350. data/test/ft_6_lambda.rb +0 -64
  351. data/test/ft_70_lookupvar.rb +0 -55
  352. data/test/ft_71_log.rb +0 -60
  353. data/test/ft_72_lookup_processes.rb +0 -79
  354. data/test/ft_73_cancel_sub.rb +0 -139
  355. data/test/ft_74_block_and_workitem_dup.rb +0 -63
  356. data/test/ft_75_ruby_attributes.rb +0 -89
  357. data/test/ft_76_merge_isolate.rb +0 -88
  358. data/test/ft_77_segments.rb +0 -35
  359. data/test/ft_78_eval.rb +0 -150
  360. data/test/ft_79_tticket.rb +0 -187
  361. data/test/ft_79b_tticket.rb +0 -172
  362. data/test/ft_79c_outcome.rb +0 -56
  363. data/test/ft_7_lose.rb +0 -104
  364. data/test/ft_7b_lose.rb +0 -78
  365. data/test/ft_80_spname.rb +0 -91
  366. data/test/ft_81_exp.rb +0 -60
  367. data/test/ft_82_trecu.rb +0 -52
  368. data/test/ft_83_badpause.rb +0 -58
  369. data/test/ft_84_updateexp.rb +0 -198
  370. data/test/ft_84b_subrepr.rb +0 -72
  371. data/test/ft_85_dolhash.rb +0 -43
  372. data/test/ft_86_dollar_fv.rb +0 -68
  373. data/test/ft_87_define.rb +0 -74
  374. data/test/ft_88_http.rb +0 -100
  375. data/test/ft_8_forget.rb +0 -44
  376. data/test/ft_9_cursor.rb +0 -154
  377. data/test/ft_9b_cursor.rb +0 -105
  378. data/test/ft_tests.rb +0 -130
  379. data/test/hparticipant_test.rb +0 -168
  380. data/test/lookup_att_test.rb +0 -90
  381. data/test/lookup_vf_test.rb +0 -94
  382. data/test/misc_test.rb +0 -94
  383. data/test/nut_0_irb.rb +0 -20
  384. data/test/param_test.rb +0 -290
  385. data/test/participant_test.rb +0 -101
  386. data/test/pending.rb +0 -23
  387. data/test/ps_representation.rb +0 -133
  388. data/test/rake_ltest.rb +0 -38
  389. data/test/rake_qtest.rb +0 -68
  390. data/test/raw_prog_test.rb +0 -407
  391. data/test/restart_cron_test.rb +0 -136
  392. data/test/restart_paused_test.rb +0 -103
  393. data/test/restart_sleep_test.rb +0 -140
  394. data/test/restart_tests.rb +0 -18
  395. data/test/restart_when_test.rb +0 -112
  396. data/test/ruby_procdef_test.rb +0 -132
  397. data/test/sec_test.rb +0 -206
  398. data/test/timeout_test.rb +0 -105
  399. data/test/treechecker_test.rb +0 -111
  400. data/test/util_xml_test.rb +0 -112
  401. data/test/wi_test.rb +0 -75
@@ -0,0 +1,220 @@
1
+
2
+ #
3
+ # Testing Ruote (OpenWFEru)
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Thu Nov 27 16:30:23 JST 2008
8
+ #
9
+
10
+ require File.dirname(__FILE__) + '/base'
11
+
12
+
13
+ class FtOnErrorTest < Test::Unit::TestCase
14
+ include FunctionalBase
15
+
16
+ def test_on_error_undo
17
+
18
+ pdef = OpenWFE.process_definition :name => 'test' do
19
+ sequence do
20
+ echo '0'
21
+ sequence :on_error => :undo do
22
+ alpha
23
+ echo '1'
24
+ end
25
+ echo '2'
26
+ end
27
+ end
28
+
29
+ @engine.register_participant(:alpha) do |workitem|
30
+ raise 'Houston, we have a problem !'
31
+ end
32
+
33
+ assert_trace pdef, "0\n2"
34
+ end
35
+
36
+ def test_on_error_failpath
37
+
38
+ pdef = OpenWFE.process_definition :name => 'test' do
39
+ sequence do
40
+ echo '0'
41
+ sequence :on_error => 'fail_path' do
42
+ alpha
43
+ echo '1'
44
+ end
45
+ echo '2'
46
+ end
47
+ define 'fail_path' do
48
+ echo 'failed'
49
+ end
50
+ end
51
+
52
+ @engine.register_participant(:alpha) do |workitem|
53
+ raise 'Houston, we have a problem !'
54
+ end
55
+
56
+ assert_trace pdef, "0\nfailed\n2"
57
+ end
58
+
59
+ def test_on_error_neutralization
60
+
61
+ pdef = OpenWFE.process_definition :name => 'test' do
62
+ sequence do
63
+ echo '0'
64
+ sequence :on_error => 'fail_path' do
65
+ echo '1'
66
+ alpha :on_error => ''
67
+ echo '2'
68
+ end
69
+ echo '3'
70
+ end
71
+ define 'fail_path' do
72
+ echo 'failed'
73
+ end
74
+ end
75
+
76
+ @engine.register_participant(:alpha) do |workitem|
77
+ raise 'Houston, we have a problem !'
78
+ end
79
+
80
+ fei = @engine.launch(pdef)
81
+
82
+ sleep 0.350
83
+
84
+ ps = @engine.process_status(fei)
85
+
86
+ assert_equal 1, ps.errors.size
87
+
88
+ purge_engine
89
+ end
90
+
91
+ def test_on_error_redo
92
+
93
+ pdef = OpenWFE.process_definition :name => 'test' do
94
+ sequence do
95
+ echo '0'
96
+ sequence :on_error => :redo do
97
+ echo '1'
98
+ alpha
99
+ echo '2'
100
+ end
101
+ echo '3'
102
+ end
103
+ end
104
+
105
+ hits = 0
106
+
107
+ @engine.register_participant(:alpha) do |workitem|
108
+ hits += 1
109
+ raise 'Houston, we have a problem !' if hits == 1
110
+ end
111
+
112
+ assert_trace pdef, %w{ 0 1 1 2 3 }.join("\n")
113
+ end
114
+
115
+ def test_on_error_nested_rescue
116
+
117
+ pdef = OpenWFE.process_definition :name => 'test' do
118
+ sequence :on_error => 'parent_rescue' do
119
+ echo '0'
120
+ sequence :on_error => 'rescue' do
121
+ echo '1'
122
+ alpha
123
+ echo '2'
124
+ end
125
+ end
126
+ define 'rescue' do
127
+ sequence do
128
+ echo 'rescue'
129
+ bravo
130
+ echo '3'
131
+ end
132
+ end
133
+ define 'parent_rescue' do
134
+ echo 'parent_rescue'
135
+ end
136
+ end
137
+
138
+ @engine.register_participant(:alpha) do |workitem|
139
+ raise 'Houston, we have a problem !'
140
+ end
141
+ @engine.register_participant(:bravo) do |workitem|
142
+ raise 'Houston, we have had a problem.'
143
+ end
144
+
145
+ assert_trace pdef, %w{ 0 1 rescue parent_rescue }.join("\n")
146
+ end
147
+
148
+ def test_on_error_at_process_level
149
+
150
+ pdef = OpenWFE.process_definition :name => 'test', :on_error => 'rescue' do
151
+ sequence do
152
+ echo '0'
153
+ alpha
154
+ echo '1'
155
+ end
156
+ define 'rescue' do
157
+ echo 'r'
158
+ end
159
+ end
160
+
161
+ @engine.register_participant(:alpha) do |workitem|
162
+ raise 'Houston, we have a problem !'
163
+ end
164
+
165
+ fei = @engine.launch(pdef)
166
+
167
+ sleep 0.350
168
+
169
+ assert_equal "0\nr", @tracer.to_s
170
+ end
171
+
172
+ def test_on_error_and_raise
173
+
174
+ pdef = OpenWFE.process_definition :name => 'test' do
175
+ sequence :on_error => 'fail_path' do
176
+ echo 'a'
177
+ error 'failing'
178
+ echo 'b'
179
+ end
180
+ define 'fail_path' do
181
+ echo 'failed.'
182
+ end
183
+ end
184
+
185
+ assert_trace pdef, "a\nfailed."
186
+ end
187
+
188
+ def test_on_error_failpath_and_variables
189
+
190
+ pdef = OpenWFE.process_definition :name => 'test' do
191
+ sequence :on_error => 'fail_path' do
192
+ set :var => 'var0', :val => 'val0'
193
+ error 'fail'
194
+ end
195
+ define 'fail_path' do
196
+ echo 'var0:${var0}'
197
+ end
198
+ end
199
+
200
+ assert_trace pdef, 'var0:val0'
201
+ end
202
+
203
+ def test_on_error_failpath_and_variables_at_the_process_level
204
+
205
+ pdef = OpenWFE.process_definition :name => 't', :on_error => 'fail_path' do
206
+ sequence do
207
+ set :var => 'var0', :val => 'val0'
208
+ error 'fail'
209
+ end
210
+ define 'fail_path' do
211
+ echo 'var0:${var0}'
212
+ end
213
+ end
214
+
215
+ assert_trace(pdef, 'var0:val0') { sleep 0.100 }
216
+ # the sleep 0.100 is only useful for --fs -C
217
+ end
218
+
219
+ end
220
+
@@ -0,0 +1,82 @@
1
+
2
+ #
3
+ # Testing Ruote (OpenWFEru)
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Thu Feb 26 09:18:47 JST 2009
8
+ #
9
+
10
+ require File.dirname(__FILE__) + '/base'
11
+
12
+
13
+ class FtProcessUriTest < Test::Unit::TestCase
14
+ include FunctionalBase
15
+
16
+ def test_launch_missing_local_process
17
+
18
+ assert_raise (Errno::ENOENT) {
19
+ @engine.launch('tmp/missing.xml')
20
+ }
21
+ end
22
+
23
+ def test_launch_missing_remote_process
24
+
25
+ @engine.ac[:remote_definitions_allowed] = true
26
+
27
+ assert_raise (Errno::ECONNREFUSED) {
28
+ @engine.launch('http://127.0.0.1:56343/missing.xml')
29
+ }
30
+ end
31
+
32
+ def test_launch_remote_process_when_forbidden
33
+
34
+ @engine.ac[:remote_definitions_allowed] = false
35
+ # making sure it's set to false
36
+
37
+ assert_raise (RuntimeError) {
38
+ @engine.launch('http://example.com/pdef0.rb')
39
+ }
40
+ end
41
+
42
+ def test_launch_fs_stored_process
43
+
44
+ prepare_def0
45
+
46
+ assert_trace 'tmp/def0.xml', 'a'
47
+ end
48
+
49
+ def test_launch_fs_stored_ruby_process
50
+
51
+ prepare_def1
52
+
53
+ assert_trace 'tmp/def1.rb', 'b'
54
+ end
55
+
56
+ protected
57
+
58
+ def prepare_def0
59
+
60
+ FileUtils.mkdir('tmp') rescue nil
61
+
62
+ File.open('tmp/def0.xml', 'w') do |f|
63
+ f.write(%{
64
+ <process-definition name="test">
65
+ <echo>a</echo>
66
+ </process-definition>
67
+ })
68
+ end
69
+ end
70
+
71
+ def prepare_def1
72
+ File.open('tmp/def1.rb', 'w') do |f|
73
+ f.write(%{
74
+ OpenWFE.process_definition :name => 'test' do
75
+ echo 'b'
76
+ end
77
+ })
78
+ end
79
+ end
80
+
81
+ end
82
+
@@ -0,0 +1,62 @@
1
+
2
+ #
3
+ # Testing Ruote (OpenWFEru)
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Thu Feb 26 14:59:09 JST 2009
8
+ #
9
+
10
+ require File.dirname(__FILE__) + '/base'
11
+
12
+
13
+ class FtProcessStatusTest < Test::Unit::TestCase
14
+ include FunctionalBase
15
+
16
+ def test_process_status
17
+
18
+ pdef = OpenWFE.process_definition do
19
+ sequence do
20
+ alpha
21
+ end
22
+ end
23
+
24
+ @engine.register_participant(:alpha, OpenWFE::NullParticipant)
25
+ # receives workitems, discards them, doesn't reply to the engine
26
+
27
+ fei = @engine.launch(pdef)
28
+
29
+ sleep 0.350
30
+
31
+ ps = @engine.processes(fei.wfid)
32
+ assert_equal 1, ps.size
33
+
34
+ purge_engine
35
+ end
36
+
37
+ def test_multiple_process_status
38
+
39
+ pdef = OpenWFE.process_definition do
40
+ sequence do
41
+ alpha
42
+ end
43
+ end
44
+
45
+ @engine.register_participant(:alpha, OpenWFE::NullParticipant)
46
+ # receives workitems, discards them, doesn't reply to the engine
47
+
48
+ fei = @engine.launch(pdef)
49
+ @engine.launch(pdef)
50
+
51
+ sleep 0.350
52
+
53
+ ps = @engine.processes
54
+ assert_equal 2, ps.size
55
+
56
+ ps = @engine.processes(fei.wfid)
57
+ assert_equal 1, ps.size
58
+
59
+ purge_engine
60
+ end
61
+ end
62
+
@@ -0,0 +1,103 @@
1
+
2
+ #
3
+ # Testing Ruote (OpenWFEru)
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Fri Feb 27 22:12:39 JST 2009
8
+ #
9
+
10
+ require File.dirname(__FILE__) + '/base'
11
+
12
+
13
+ class FtParametersTest < Test::Unit::TestCase
14
+ include FunctionalBase
15
+
16
+ PDEF0 = OpenWFE.process_definition :name => 'test' do
17
+ parameter :field => 'address'
18
+ sequence do
19
+ echo '${f:address}'
20
+ end
21
+ end
22
+
23
+ def test_missing_field
24
+
25
+ #e = assert_raise(OpenWFE::ParameterException) {
26
+ e = assert_raise(ArgumentError) {
27
+ @engine.launch(PDEF0)
28
+ }
29
+ assert_equal "field 'address' is missing", e.message
30
+ end
31
+
32
+ def test_field_not_missing
33
+
34
+ li = OpenWFE::LaunchItem.new(PDEF0)
35
+ li.address = 'nihonbashi'
36
+
37
+ assert_trace li, 'nihonbashi'
38
+ end
39
+
40
+ def test_field_default_value
41
+
42
+ pdef = OpenWFE.process_definition :name => 'test' do
43
+ parameter :field => 'address', :default => 'unknown'
44
+ echo '${f:address}'
45
+ end
46
+
47
+ assert_trace pdef, 'unknown'
48
+ end
49
+
50
+ def test_field_type_boxing
51
+
52
+ pdef = OpenWFE.process_definition :name => 'test' do
53
+ parameter :field => 'address', :type => :string
54
+ parameter :field => 'number', :type => :int
55
+ echo '${f:address}/${ru:wi.number * 2}'
56
+ end
57
+
58
+ li = OpenWFE::LaunchItem.new(pdef)
59
+ li.address = 3
60
+ li.number = '4'
61
+
62
+ assert_trace li, '3/8'
63
+ end
64
+
65
+ def test_field_type_boxing_fail
66
+
67
+ pdef = OpenWFE.process_definition :name => 'test' do
68
+ parameter :field => 'number', :type => :int
69
+ end
70
+
71
+ e = assert_raise(ArgumentError) {
72
+ li = OpenWFE::LaunchItem.new(pdef)
73
+ li.number = 'douze'
74
+ @engine.launch(li)
75
+ }
76
+ assert_equal 'invalid value for Integer: "douze"', e.message
77
+ end
78
+
79
+ def test_field_default_value_and_boxing
80
+
81
+ pdef = OpenWFE.process_definition :name => 'test' do
82
+ parameter :field => 'number', :default => '3', :type => :int
83
+ echo '${r:wi.number * 3}'
84
+ end
85
+
86
+ assert_trace pdef, '9'
87
+ end
88
+
89
+ def test_field_match_fail
90
+
91
+ pdef = OpenWFE.process_definition :name => 'test' do
92
+ parameter :field => 'phone', :match => '^[0-9]{3}-[0-9]{3}-[0-9]{4}$'
93
+ end
94
+
95
+ e = assert_raise(ArgumentError) {
96
+ li = OpenWFE::LaunchItem.new(pdef)
97
+ li.phone = 'aa'
98
+ @engine.launch(li)
99
+ }
100
+ assert_equal "value of field 'phone' doesn't match", e.message
101
+ end
102
+ end
103
+