ruote 0.9.18

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 (291) hide show
  1. data/README.txt +24 -0
  2. data/bin/validate-workflow.rb +89 -0
  3. data/examples/about_state.rb +81 -0
  4. data/examples/bigflow.rb +19 -0
  5. data/examples/csv_weather.rb +23 -0
  6. data/examples/engine_template.rb +247 -0
  7. data/examples/flowtracing.rb +24 -0
  8. data/examples/homeworkreview.rb +68 -0
  9. data/examples/kotoba.rb +22 -0
  10. data/examples/mano_tracker.rb +172 -0
  11. data/examples/openwferu.rb +58 -0
  12. data/examples/quotereporter.rb +157 -0
  13. data/examples/scheduler_cron_usage.rb +48 -0
  14. data/examples/scheduler_usage.rb +56 -0
  15. data/lib/openwfe.rb +41 -0
  16. data/lib/openwfe/contextual.rb +111 -0
  17. data/lib/openwfe/def.rb +46 -0
  18. data/lib/openwfe/engine.rb +37 -0
  19. data/lib/openwfe/engine/engine.rb +756 -0
  20. data/lib/openwfe/engine/expool_methods.rb +172 -0
  21. data/lib/openwfe/engine/file_persisted_engine.rb +105 -0
  22. data/lib/openwfe/engine/participant_methods.rb +133 -0
  23. data/lib/openwfe/engine/status_methods.rb +353 -0
  24. data/lib/openwfe/engine/update_exp_methods.rb +112 -0
  25. data/lib/openwfe/exceptions.rb +51 -0
  26. data/lib/openwfe/expool/errorjournal.rb +476 -0
  27. data/lib/openwfe/expool/expressionpool.rb +1144 -0
  28. data/lib/openwfe/expool/expstorage.rb +403 -0
  29. data/lib/openwfe/expool/history.rb +174 -0
  30. data/lib/openwfe/expool/journal.rb +224 -0
  31. data/lib/openwfe/expool/journal_replay.rb +321 -0
  32. data/lib/openwfe/expool/parser.rb +242 -0
  33. data/lib/openwfe/expool/representation.rb +121 -0
  34. data/lib/openwfe/expool/threadedexpstorage.rb +188 -0
  35. data/lib/openwfe/expool/wfidgen.rb +388 -0
  36. data/lib/openwfe/expool/yamlexpstorage.rb +224 -0
  37. data/lib/openwfe/expressions/condition.rb +244 -0
  38. data/lib/openwfe/expressions/environment.rb +246 -0
  39. data/lib/openwfe/expressions/expressionmap.rb +258 -0
  40. data/lib/openwfe/expressions/fe_cancel.rb +109 -0
  41. data/lib/openwfe/expressions/fe_command.rb +241 -0
  42. data/lib/openwfe/expressions/fe_concurrence.rb +662 -0
  43. data/lib/openwfe/expressions/fe_cron.rb +259 -0
  44. data/lib/openwfe/expressions/fe_cursor.rb +259 -0
  45. data/lib/openwfe/expressions/fe_define.rb +192 -0
  46. data/lib/openwfe/expressions/fe_do.rb +168 -0
  47. data/lib/openwfe/expressions/fe_equals.rb +291 -0
  48. data/lib/openwfe/expressions/fe_filter.rb +129 -0
  49. data/lib/openwfe/expressions/fe_filter_definition.rb +168 -0
  50. data/lib/openwfe/expressions/fe_fqv.rb +250 -0
  51. data/lib/openwfe/expressions/fe_if.rb +303 -0
  52. data/lib/openwfe/expressions/fe_iterator.rb +145 -0
  53. data/lib/openwfe/expressions/fe_listen.rb +371 -0
  54. data/lib/openwfe/expressions/fe_losfor.rb +111 -0
  55. data/lib/openwfe/expressions/fe_misc.rb +421 -0
  56. data/lib/openwfe/expressions/fe_participant.rb +269 -0
  57. data/lib/openwfe/expressions/fe_reserve.rb +212 -0
  58. data/lib/openwfe/expressions/fe_save.rb +274 -0
  59. data/lib/openwfe/expressions/fe_sequence.rb +117 -0
  60. data/lib/openwfe/expressions/fe_set.rb +139 -0
  61. data/lib/openwfe/expressions/fe_sleep.rb +166 -0
  62. data/lib/openwfe/expressions/fe_step.rb +159 -0
  63. data/lib/openwfe/expressions/fe_subprocess.rb +168 -0
  64. data/lib/openwfe/expressions/fe_timeout.rb +127 -0
  65. data/lib/openwfe/expressions/fe_wait.rb +78 -0
  66. data/lib/openwfe/expressions/fe_when.rb +142 -0
  67. data/lib/openwfe/expressions/filter.rb +104 -0
  68. data/lib/openwfe/expressions/flowexpression.rb +847 -0
  69. data/lib/openwfe/expressions/iterator.rb +221 -0
  70. data/lib/openwfe/expressions/merge.rb +84 -0
  71. data/lib/openwfe/expressions/raw.rb +547 -0
  72. data/lib/openwfe/expressions/rprocdef.rb +375 -0
  73. data/lib/openwfe/expressions/time.rb +333 -0
  74. data/lib/openwfe/expressions/timeout.rb +178 -0
  75. data/lib/openwfe/expressions/value.rb +126 -0
  76. data/lib/openwfe/filterdef.rb +259 -0
  77. data/lib/openwfe/flowexpressionid.rb +357 -0
  78. data/lib/openwfe/listeners/listener.rb +97 -0
  79. data/lib/openwfe/listeners/listeners.rb +139 -0
  80. data/lib/openwfe/listeners/socketlisteners.rb +272 -0
  81. data/lib/openwfe/logging.rb +122 -0
  82. data/lib/openwfe/omixins.rb +95 -0
  83. data/lib/openwfe/orest/controlclient.rb +119 -0
  84. data/lib/openwfe/orest/definitions.rb +113 -0
  85. data/lib/openwfe/orest/exception.rb +60 -0
  86. data/lib/openwfe/orest/oldrestservlet.rb +279 -0
  87. data/lib/openwfe/orest/osocket.rb +148 -0
  88. data/lib/openwfe/orest/restclient.rb +176 -0
  89. data/lib/openwfe/orest/workitem.rb +206 -0
  90. data/lib/openwfe/orest/worklistclient.rb +272 -0
  91. data/lib/openwfe/orest/xmlcodec.rb +670 -0
  92. data/lib/openwfe/participants.rb +38 -0
  93. data/lib/openwfe/participants/enoparticipants.rb +230 -0
  94. data/lib/openwfe/participants/participant.rb +141 -0
  95. data/lib/openwfe/participants/participantmap.rb +249 -0
  96. data/lib/openwfe/participants/participants.rb +407 -0
  97. data/lib/openwfe/participants/soapparticipants.rb +135 -0
  98. data/lib/openwfe/participants/socketparticipants.rb +202 -0
  99. data/lib/openwfe/participants/storeparticipants.rb +254 -0
  100. data/lib/openwfe/rudefinitions.rb +130 -0
  101. data/lib/openwfe/service.rb +103 -0
  102. data/lib/openwfe/storage/yamlcustom.rb +106 -0
  103. data/lib/openwfe/storage/yamlfilestorage.rb +245 -0
  104. data/lib/openwfe/tools/flowtracer.rb +81 -0
  105. data/lib/openwfe/util/dollar.rb +217 -0
  106. data/lib/openwfe/util/irb.rb +86 -0
  107. data/lib/openwfe/util/observable.rb +144 -0
  108. data/lib/openwfe/util/ometa.rb +62 -0
  109. data/lib/openwfe/util/workqueue.rb +124 -0
  110. data/lib/openwfe/util/xml.rb +418 -0
  111. data/lib/openwfe/utils.rb +554 -0
  112. data/lib/openwfe/version.rb +37 -0
  113. data/lib/openwfe/workitem.rb +499 -0
  114. data/lib/openwfe/worklist/oldrest.rb +244 -0
  115. data/lib/openwfe/worklist/storelocks.rb +293 -0
  116. data/lib/openwfe/worklist/storeparticipant.rb +44 -0
  117. data/lib/openwfe/worklist/worklist.rb +297 -0
  118. data/test/README.txt +27 -0
  119. data/test/back_0916_test.rb +111 -0
  120. data/test/bm/bm_1_xml_vs_prog.rb +56 -0
  121. data/test/bm/bm_2_step.rb +109 -0
  122. data/test/bm/ft_0f_5ms.rb +35 -0
  123. data/test/bm/ft_26_load.rb +210 -0
  124. data/test/bm/ft_26b_load.rb +86 -0
  125. data/test/bm/ft_26c_load.rb +97 -0
  126. data/test/bm/ft_26d_load.rb +97 -0
  127. data/test/bm/ft_recu.rb +71 -0
  128. data/test/clone_test.rb +122 -0
  129. data/test/concurrence_test.rb +77 -0
  130. data/test/condition_test.rb +155 -0
  131. data/test/console_test.rb +12 -0
  132. data/test/cron_ltest.rb +15 -0
  133. data/test/description_test.rb +87 -0
  134. data/test/eno_test.rb +76 -0
  135. data/test/expmap_test.rb +54 -0
  136. data/test/expool_20031219_0916.tgz +0 -0
  137. data/test/fe_lookup_att_test.rb +62 -0
  138. data/test/fei_test.rb +181 -0
  139. data/test/file_persisted_engine_test.rb +64 -0
  140. data/test/file_persistence_test.rb +134 -0
  141. data/test/filep_cancel_test.rb +123 -0
  142. data/test/filter_test.rb +109 -0
  143. data/test/flowtestbase.rb +351 -0
  144. data/test/ft_0.rb +68 -0
  145. data/test/ft_0b_sequence.rb +36 -0
  146. data/test/ft_0c_testname.rb +33 -0
  147. data/test/ft_0d_participant.rb +30 -0
  148. data/test/ft_0e_multibody.rb +34 -0
  149. data/test/ft_10_loop.rb +134 -0
  150. data/test/ft_11_ppd.rb +415 -0
  151. data/test/ft_11b_ppd.rb +54 -0
  152. data/test/ft_12_blockparticipant.rb +97 -0
  153. data/test/ft_13_eno.rb +52 -0
  154. data/test/ft_14_subprocess.rb +88 -0
  155. data/test/ft_14b_subprocess.rb +192 -0
  156. data/test/ft_14c_subprocess.rb +68 -0
  157. data/test/ft_15_iterator.rb +216 -0
  158. data/test/ft_15b_iterator.rb +74 -0
  159. data/test/ft_16_fqv.rb +73 -0
  160. data/test/ft_17_condition.rb +84 -0
  161. data/test/ft_18_pname.rb +56 -0
  162. data/test/ft_1_unset.rb +175 -0
  163. data/test/ft_1b_unset.rb +39 -0
  164. data/test/ft_20_cron.rb +53 -0
  165. data/test/ft_21_cron.rb +87 -0
  166. data/test/ft_21b_cron_pause.rb +82 -0
  167. data/test/ft_22_history.rb +74 -0
  168. data/test/ft_23_when.rb +77 -0
  169. data/test/ft_23b_when.rb +70 -0
  170. data/test/ft_23c_wait.rb +80 -0
  171. data/test/ft_23d_cww.rb +58 -0
  172. data/test/ft_24_def.rb +44 -0
  173. data/test/ft_25_cancel.rb +89 -0
  174. data/test/ft_27_getflowpos.rb +147 -0
  175. data/test/ft_28_fileparticipant.rb +63 -0
  176. data/test/ft_29_httprb.rb +106 -0
  177. data/test/ft_2_concurrence.rb +135 -0
  178. data/test/ft_2b_concurrence.rb +188 -0
  179. data/test/ft_2c_concurrence.rb +64 -0
  180. data/test/ft_30_socketlistener.rb +203 -0
  181. data/test/ft_31_flowname.rb +40 -0
  182. data/test/ft_32_journal.rb +91 -0
  183. data/test/ft_32c_journal.rb +102 -0
  184. data/test/ft_32d_journal.rb +84 -0
  185. data/test/ft_33_description.rb +107 -0
  186. data/test/ft_34_cancelwfid.rb +80 -0
  187. data/test/ft_35_localdefs.rb +75 -0
  188. data/test/ft_36_subprocids.rb +97 -0
  189. data/test/ft_37_pnames.rb +70 -0
  190. data/test/ft_38_tag.rb +127 -0
  191. data/test/ft_38b_tag.rb +161 -0
  192. data/test/ft_38c_tag.rb +100 -0
  193. data/test/ft_39_reserve.rb +63 -0
  194. data/test/ft_39b_reserve.rb +84 -0
  195. data/test/ft_3_equals.rb +170 -0
  196. data/test/ft_3b_lookup_vf.rb +83 -0
  197. data/test/ft_40_defined.rb +61 -0
  198. data/test/ft_41_case.rb +110 -0
  199. data/test/ft_42_environments.rb +75 -0
  200. data/test/ft_43_pat10.rb +85 -0
  201. data/test/ft_44_save.rb +70 -0
  202. data/test/ft_44b_restore.rb +212 -0
  203. data/test/ft_45_citerator.rb +214 -0
  204. data/test/ft_46_pparams.rb +62 -0
  205. data/test/ft_47_filter.rb +160 -0
  206. data/test/ft_48_fe_filter.rb +88 -0
  207. data/test/ft_49_condition.rb +126 -0
  208. data/test/ft_4_misc.rb +237 -0
  209. data/test/ft_50_xml_attribute.rb +155 -0
  210. data/test/ft_51_stack.rb +55 -0
  211. data/test/ft_52_obs_participant.rb +123 -0
  212. data/test/ft_53_null_noop_participant.rb +62 -0
  213. data/test/ft_54_listen.rb +288 -0
  214. data/test/ft_54b_listen.rb +66 -0
  215. data/test/ft_54c_listen.rb +99 -0
  216. data/test/ft_55_ptimeout.rb +59 -0
  217. data/test/ft_56_timeout.rb +59 -0
  218. data/test/ft_57_a.rb +145 -0
  219. data/test/ft_58_ejournal.rb +151 -0
  220. data/test/ft_59_ps.rb +150 -0
  221. data/test/ft_59b_ps_for_pat.rb +58 -0
  222. data/test/ft_5_time.rb +118 -0
  223. data/test/ft_60_ecancel.rb +161 -0
  224. data/test/ft_61_elsub.rb +51 -0
  225. data/test/ft_62_procparticipant.rb +71 -0
  226. data/test/ft_63_pause.rb +124 -0
  227. data/test/ft_64_alias.rb +102 -0
  228. data/test/ft_64_clone.rb +69 -0
  229. data/test/ft_65_stringlaunch.rb +59 -0
  230. data/test/ft_66_subforget.rb +70 -0
  231. data/test/ft_67_schedlaunch.rb +116 -0
  232. data/test/ft_68_ifparticipant.rb +70 -0
  233. data/test/ft_69_cancelmissing.rb +51 -0
  234. data/test/ft_6_lambda.rb +64 -0
  235. data/test/ft_70_lookupvar.rb +55 -0
  236. data/test/ft_71_log.rb +60 -0
  237. data/test/ft_72_lookup_processes.rb +76 -0
  238. data/test/ft_73_cancel_sub.rb +139 -0
  239. data/test/ft_74_block_and_workitem_dup.rb +63 -0
  240. data/test/ft_75_ruby_attributes.rb +87 -0
  241. data/test/ft_76_merge_isolate.rb +88 -0
  242. data/test/ft_77_segments.rb +35 -0
  243. data/test/ft_78_eval.rb +150 -0
  244. data/test/ft_79_tticket.rb +187 -0
  245. data/test/ft_79b_tticket.rb +172 -0
  246. data/test/ft_79c_outcome.rb +56 -0
  247. data/test/ft_7_lose.rb +104 -0
  248. data/test/ft_7b_lose.rb +78 -0
  249. data/test/ft_80_spname.rb +91 -0
  250. data/test/ft_81_exp.rb +60 -0
  251. data/test/ft_82_trecu.rb +46 -0
  252. data/test/ft_83_badpause.rb +58 -0
  253. data/test/ft_84_updateexp.rb +198 -0
  254. data/test/ft_85_dolhash.rb +43 -0
  255. data/test/ft_86_dollar_fv.rb +68 -0
  256. data/test/ft_87_define.rb +74 -0
  257. data/test/ft_8_forget.rb +44 -0
  258. data/test/ft_9_cursor.rb +145 -0
  259. data/test/ft_9b_cursor.rb +105 -0
  260. data/test/ft_tests.rb +124 -0
  261. data/test/hash_test.rb +75 -0
  262. data/test/hparticipant_test.rb +164 -0
  263. data/test/lookup_att_test.rb +90 -0
  264. data/test/lookup_vf_test.rb +94 -0
  265. data/test/misc_test.rb +90 -0
  266. data/test/nut_0_irb.rb +20 -0
  267. data/test/obs_test.rb +142 -0
  268. data/test/orest_test.rb +251 -0
  269. data/test/param_test.rb +290 -0
  270. data/test/participant_test.rb +101 -0
  271. data/test/pending.rb +23 -0
  272. data/test/ps_representation.rb +133 -0
  273. data/test/rake_ltest.rb +38 -0
  274. data/test/rake_qtest.rb +68 -0
  275. data/test/raw_prog_test.rb +412 -0
  276. data/test/restart_cron_test.rb +136 -0
  277. data/test/restart_paused_test.rb +98 -0
  278. data/test/restart_sleep_test.rb +140 -0
  279. data/test/restart_tests.rb +18 -0
  280. data/test/restart_when_test.rb +112 -0
  281. data/test/ruby_procdef_test.rb +132 -0
  282. data/test/rutest_utils.rb +63 -0
  283. data/test/sec_test.rb +205 -0
  284. data/test/slock_test.rb +80 -0
  285. data/test/storage_test.rb +44 -0
  286. data/test/test.rb +3 -0
  287. data/test/timeout_test.rb +105 -0
  288. data/test/util_xml_test.rb +112 -0
  289. data/test/wfid_test.rb +175 -0
  290. data/test/wi_test.rb +75 -0
  291. metadata +433 -0
@@ -0,0 +1,40 @@
1
+
2
+ #
3
+ # Testing OpenWFE
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Mon Oct 9 22:19:44 JST 2006
8
+ #
9
+
10
+ require 'openwfe/def'
11
+
12
+ require 'flowtestbase'
13
+
14
+
15
+ class FlowTest31 < Test::Unit::TestCase
16
+ include FlowTestBase
17
+
18
+ #def teardown
19
+ #end
20
+
21
+ #def setup
22
+ #end
23
+
24
+ #
25
+ # TEST 0
26
+
27
+ class TestDefinition0 < ProcessDefinition
28
+ _process_definition :name => "31 thirty one", :revision => "0 0" do
29
+ _print "ok"
30
+ end
31
+ end
32
+
33
+ #def xxxx_flowname_0
34
+ def test_flowname_0
35
+
36
+ dotest(TestDefinition0, "ok")
37
+ end
38
+
39
+ end
40
+
@@ -0,0 +1,91 @@
1
+
2
+ #
3
+ # Testing OpenWFE
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Mon Oct 9 22:19:44 JST 2006
8
+ #
9
+
10
+
11
+ require 'flowtestbase'
12
+
13
+ require 'openwfe/def'
14
+ require 'openwfe/expool/journal'
15
+
16
+
17
+
18
+ class FlowTest32 < Test::Unit::TestCase
19
+ include FlowTestBase
20
+
21
+ #def teardown
22
+ #end
23
+
24
+ #def setup
25
+ #end
26
+
27
+ #
28
+ # TEST 0
29
+
30
+ class TestDefinition0 < OpenWFE::ProcessDefinition
31
+ #concurrence do
32
+ sequence do
33
+ #set :variable => "//toto", :value => "nada"
34
+ participant :alpha
35
+ bravo
36
+ end
37
+ end
38
+
39
+ def test_journal_0
40
+
41
+ @engine.application_context[:keep_journals] = true
42
+
43
+ @engine.init_service "journal", OpenWFE::Journal
44
+
45
+ @engine.register_participant(:alpha) do |wi|
46
+ @tracer << "alpha\n"
47
+ end
48
+ @engine.register_participant(:bravo) do |wi|
49
+ @tracer << "bravo\n"
50
+ end
51
+
52
+ #fei = dotest(TestDefinition0, "alpha\nbravo", 0.250)
53
+ fei = dotest(TestDefinition0, "alpha\nbravo")
54
+
55
+ journal_service = @engine.application_context["journal"]
56
+
57
+ fn = journal_service.donedir + "/" + fei.wfid + ".journal"
58
+
59
+ #puts journal_service.analyze fn
60
+
61
+ #sleep(10)
62
+
63
+ assert_equal @engine.get_expression_storage.size, 1
64
+
65
+ journal_service.replay fn, 18
66
+ #
67
+ # replay at offset 18 without "refiring"
68
+ #
69
+ # flow waits
70
+
71
+ sleep 0.350
72
+
73
+ #puts
74
+ #puts @engine.get_expression_storage.to_s
75
+ #puts
76
+
77
+ assert_equal @engine.get_expression_storage.size, 6
78
+
79
+ journal_service.replay fn, 18, true
80
+ #
81
+ # replay at offset 18 with "refiring"
82
+ #
83
+ # flow resumes
84
+
85
+ sleep 0.350
86
+
87
+ assert_equal @engine.get_expression_storage.size, 1
88
+ end
89
+
90
+ end
91
+
@@ -0,0 +1,102 @@
1
+
2
+ #
3
+ # Testing OpenWFE
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Mon Oct 9 22:19:44 JST 2006
8
+ #
9
+
10
+ require 'rubygems'
11
+
12
+ require 'openwfe/def'
13
+ require 'openwfe/expool/journal'
14
+
15
+ require 'flowtestbase'
16
+
17
+
18
+ class FlowTest32c < Test::Unit::TestCase
19
+ include FlowTestBase
20
+ include JournalTestBase
21
+
22
+ #def teardown
23
+ #end
24
+
25
+ #def setup
26
+ #end
27
+
28
+
29
+ #
30
+ # TEST 0
31
+
32
+ class Test0 < OpenWFE::ProcessDefinition
33
+ sequence do
34
+ participant :alpha
35
+ participant :nada
36
+ participant :bravo
37
+ end
38
+ end
39
+
40
+ def test_0
41
+
42
+ @engine.application_context[:keep_journals] = true
43
+
44
+ @engine.init_service "journal", OpenWFE::Journal
45
+
46
+ @engine.register_participant(:alpha) do |wi|
47
+ @tracer << "alpha\n"
48
+ end
49
+
50
+ class << get_journal
51
+ public :flush_buckets
52
+ end
53
+
54
+ #fei = dotest(Test0, "alpha", 0.500, true)
55
+ li = OpenWFE::LaunchItem.new Test0
56
+ fei = launch li
57
+
58
+ sleep 0.500
59
+
60
+ get_journal.flush_buckets
61
+
62
+ fn = get_journal.workdir + "/" + fei.wfid + ".journal"
63
+
64
+ #require 'pp'; pp get_journal.load_events(fn)[-1]
65
+
66
+ error_event = get_journal.load_events(fn)[-1]
67
+
68
+ assert_equal error_event[0], :error
69
+ assert_equal error_event[2].wfid, fei.wfid
70
+ assert_equal error_event[3], :apply
71
+
72
+ #
73
+ # replaying the error (should occur a second time)
74
+
75
+ get_journal.replay_at_error error_event
76
+
77
+ sleep 0.500
78
+
79
+ assert_equal 2, get_error_count(fei.wfid)
80
+
81
+ #
82
+ # fixing the cause of the error and then replaying the error
83
+ # (should not occur)
84
+
85
+ @engine.register_participant(:nada) do |wi|
86
+ @tracer << "nada\n"
87
+ end
88
+ @engine.register_participant(:bravo) do |wi|
89
+ @tracer << "bravo\n"
90
+ end
91
+
92
+ assert_equal @tracer.to_s, "alpha"
93
+
94
+ get_journal.replay_at_error error_event
95
+
96
+ sleep 1.0
97
+
98
+ assert_equal @tracer.to_s, "alpha\nnada\nbravo"
99
+ end
100
+
101
+ end
102
+
@@ -0,0 +1,84 @@
1
+
2
+ #
3
+ # Testing OpenWFE
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Mon Oct 9 22:19:44 JST 2006
8
+ #
9
+
10
+ require 'openwfe/def'
11
+
12
+ require 'flowtestbase'
13
+
14
+ require 'openwfe/expool/journal'
15
+
16
+
17
+
18
+ class FlowTest32d < Test::Unit::TestCase
19
+ include FlowTestBase
20
+ include JournalTestBase
21
+
22
+ #def teardown
23
+ #end
24
+
25
+ #def setup
26
+ #end
27
+
28
+
29
+ #
30
+ # TEST 0
31
+
32
+ class Test0 < ProcessDefinition
33
+ sequence do
34
+ participant :alpha
35
+ participant :nada
36
+ participant :bravo
37
+ end
38
+ end
39
+
40
+ #def xxxx_0
41
+ def test_0
42
+
43
+ @engine.application_context[:keep_journals] = true
44
+
45
+ @engine.init_service "journal", Journal
46
+
47
+ @engine.register_participant(:alpha) do |wi|
48
+ @tracer << "alpha\n"
49
+ end
50
+
51
+ class << get_journal
52
+ public :flush_buckets
53
+ end
54
+
55
+ li = LaunchItem.new Test0
56
+ fei = launch li
57
+
58
+ sleep 0.500
59
+
60
+ get_journal.flush_buckets
61
+
62
+ assert_equal 1, get_error_count(fei.wfid)
63
+
64
+ @engine.register_participant(:nada) do |wi|
65
+ @tracer << "nada\n"
66
+ end
67
+ @engine.register_participant(:bravo) do |wi|
68
+ @tracer << "bravo\n"
69
+ end
70
+
71
+ assert_equal @tracer.to_s, "alpha"
72
+
73
+ get_journal.replay_at_last_error fei.wfid
74
+
75
+ sleep 1.0
76
+
77
+ assert_equal "alpha\nnada\nbravo", @tracer.to_s
78
+
79
+ fn = get_journal.workdir + "/" + fei.wfid + ".journal"
80
+ assert (not File.exist?(fn))
81
+ end
82
+
83
+ end
84
+
@@ -0,0 +1,107 @@
1
+
2
+ #
3
+ # Testing OpenWFE
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Mon Oct 9 22:19:44 JST 2006
8
+ #
9
+
10
+ require 'rubygems'
11
+
12
+ require 'openwfe/def'
13
+ require 'flowtestbase'
14
+
15
+
16
+ class FlowTest33 < Test::Unit::TestCase
17
+ include FlowTestBase
18
+
19
+ #def teardown
20
+ #end
21
+
22
+ #def setup
23
+ #end
24
+
25
+ #
26
+ # TEST 0
27
+
28
+ class TestDefinition0 < OpenWFE::ProcessDefinition
29
+ description "nada"
30
+ _print "${description}"
31
+ end
32
+
33
+ def test_0
34
+
35
+ dotest TestDefinition0, "nada"
36
+ end
37
+
38
+ #
39
+ # TEST 1
40
+
41
+ def test_1
42
+ dotest("""<process-definition name='test_1' revision='x'>
43
+ <description>nada</description>
44
+ <print>${description}</print>
45
+ </process-definition>
46
+ """, "nada")
47
+ end
48
+
49
+ #
50
+ # TEST 2
51
+
52
+ class TestDefinition2 < OpenWFE::ProcessDefinition
53
+ description :lang => "fr" do "nada" end
54
+ sequence do
55
+ _print "${description}"
56
+ _print "${description__fr}"
57
+ end
58
+ end
59
+
60
+ def test_2
61
+
62
+ dotest TestDefinition2, "nada\nnada"
63
+ end
64
+
65
+ #
66
+ # TEST 3
67
+
68
+ class TestDefinition3 < OpenWFE::ProcessDefinition
69
+ description "nothing"
70
+ description :lang => "es" do "nada" end
71
+ sequence do
72
+ _print "${description}"
73
+ _print "${description__es}"
74
+ end
75
+ end
76
+
77
+ def test_3
78
+
79
+ dotest TestDefinition3, "nothing\nnada"
80
+ end
81
+
82
+ #
83
+ # TEST 4
84
+
85
+ def test_4
86
+
87
+ @engine.register_participant :check do |fexp, wi|
88
+ @tracer << fexp.lookup_variable('description').class.name
89
+ @tracer << "\n"
90
+ end
91
+
92
+ dotest(
93
+ """<process-definition name='test_1' revision='x'>
94
+ <description language='en'>nothing</description>
95
+ <description language='es'>nada</description>
96
+ <sequence>
97
+ <participant ref='check' />
98
+ <print>${description}</print>
99
+ <print>${description__en}</print>
100
+ <print>${description__es}</print>
101
+ </sequence>
102
+ </process-definition>""",
103
+ "String\nnothing\nnothing\nnada")
104
+ end
105
+
106
+ end
107
+
@@ -0,0 +1,80 @@
1
+
2
+ #
3
+ # Testing OpenWFE
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Mon Oct 9 22:19:44 JST 2006
8
+ #
9
+
10
+ require 'rubygems'
11
+
12
+ require 'openwfe/def'
13
+ require 'openwfe/participants/storeparticipants'
14
+
15
+ require 'flowtestbase'
16
+
17
+
18
+ class FlowTest34 < Test::Unit::TestCase
19
+ include FlowTestBase
20
+
21
+ #def teardown
22
+ #end
23
+
24
+ #def setup
25
+ #end
26
+
27
+ #
28
+ # TEST 0
29
+
30
+ class TestCancelWfid0 < OpenWFE::ProcessDefinition
31
+ #
32
+ # so tiny a definition...
33
+ #
34
+ store_participant
35
+ end
36
+
37
+ def test_cancelwfid_0
38
+
39
+ sp = @engine.register_participant(
40
+ "store_participant", OpenWFE::HashParticipant)
41
+
42
+ fei = launch TestCancelWfid0
43
+
44
+ sleep 0.300
45
+
46
+ @engine.cancel_process(fei.wfid)
47
+
48
+ sleep 0.350
49
+
50
+ l = @engine.list_processes
51
+
52
+ assert_equal 0, l.size
53
+
54
+ assert_equal 0, sp.size
55
+ # check that participant got cancelled as well
56
+ end
57
+
58
+ def test_cancelwfid_1
59
+
60
+ #log_level_to_debug
61
+
62
+ sp = @engine.register_participant(
63
+ "store_participant", OpenWFE::YamlParticipant)
64
+
65
+ fei = launch TestCancelWfid0
66
+
67
+ sleep 0.350
68
+
69
+ @engine.cancel_process(fei.wfid)
70
+
71
+ sleep 0.350
72
+
73
+ assert_equal 0, @engine.get_process_stack(fei.wfid).size
74
+
75
+ assert_equal 0, sp.size
76
+ # check that participant got cancelled as well
77
+ end
78
+
79
+ end
80
+