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,56 @@
1
+
2
+ #
3
+ # Testing OpenWFE
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Tue Jan 2 13:14:37 JST 2007
8
+ #
9
+
10
+ require 'flowtestbase'
11
+ require 'openwfe/def'
12
+
13
+
14
+ class FlowTest18 < Test::Unit::TestCase
15
+ include FlowTestBase
16
+
17
+ #def setup
18
+ #end
19
+
20
+ #def teardown
21
+ #end
22
+
23
+ #
24
+ # Test 0
25
+ #
26
+
27
+ class TestDefinition0 < OpenWFE::ProcessDefinition
28
+ def make
29
+ _process_definition :name => "test0", :revision => "0" do
30
+ p_toto
31
+ end
32
+ end
33
+ end
34
+
35
+ def test_0
36
+
37
+ dotest(
38
+ TestDefinition0,
39
+ "toto")
40
+ end
41
+
42
+
43
+ #
44
+ # Test 1
45
+ #
46
+
47
+ def test_1
48
+
49
+ dotest(\
50
+ """<process-definition name='test1' revision='0'>
51
+ <p-toto/>
52
+ </process-definition>""", "toto")
53
+ end
54
+
55
+ end
56
+
@@ -0,0 +1,175 @@
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 'flowtestbase'
11
+
12
+
13
+ class FlowTest1 < Test::Unit::TestCase
14
+ include FlowTestBase
15
+
16
+ #def setup
17
+ #end
18
+
19
+ #def teardown
20
+ #end
21
+
22
+ def test_unset_0
23
+ dotest(
24
+ '''
25
+ <process-definition name="n" revision="0">
26
+ <sequence>
27
+ <set variable="x" value="y" />
28
+ <print>set ${x} ${v:x}</print>
29
+ <unset variable="x" />
30
+ <print>unset ${x} ${v:x}</print>
31
+ </sequence>
32
+ </process-definition>
33
+ '''.strip,
34
+ "set y y\nunset")
35
+ #true)
36
+ end
37
+
38
+ def test_unset_2
39
+ dotest(
40
+ '''<process-definition name="n" revision="0">
41
+ <sequence>
42
+ <set field="x" value="y" />
43
+ <print>set ${f:x}</print>
44
+ <unset field="x" />
45
+ <print>unset ${field:x}</print>
46
+ </sequence>
47
+ </process-definition>''',
48
+ "set y\nunset")
49
+ end
50
+
51
+ def test_unset_2
52
+ dotest(
53
+ '''<process-definition name="n" revision="0">
54
+ <sequence>
55
+ <set variable="//x" value="y" />
56
+ <print>set ${x}</print>
57
+ <unset variable="x" />
58
+ <print>unset ${x}</print>
59
+ </sequence>
60
+ </process-definition>''',
61
+ "set y\nunset y")
62
+ end
63
+
64
+ def test_unset_3
65
+ dotest(
66
+ '''
67
+ <process-definition name="n" revision="0">
68
+ <sequence>
69
+ <set variable="//x" value="y" />
70
+ <print>set ${x}</print>
71
+ <unset variable="//x" />
72
+ <print>unset ${x}</print>
73
+ </sequence>
74
+ </process-definition>
75
+ '''.strip,
76
+ "set y\nunset")
77
+ #true)
78
+ end
79
+
80
+ def test_unset_4
81
+ dotest(
82
+ '''
83
+ <process-definition name="n" revision="0">
84
+ <sequence>
85
+ <set variable="/x" value="y" />
86
+ <print>set ${x}</print>
87
+ <unset variable="x" />
88
+ <print>unset ${x}</print>
89
+ </sequence>
90
+ </process-definition>
91
+ '''.strip,
92
+ "set y\nunset")
93
+ #true)
94
+ end
95
+
96
+ def test_unset_5
97
+ dotest(
98
+ '''<process-definition name="n" revision="0">
99
+ <sequence>
100
+ <set variable="/x" value="y" />
101
+ <print>set ${x}</print>
102
+ <print>unset ${x}</print>
103
+ </sequence>
104
+ <process-definition name="sub0">
105
+ <unset variable="x" />
106
+ </process-definition>
107
+ </process-definition>''',
108
+ "set y\nunset y")
109
+ end
110
+
111
+ def test_set_a0
112
+ dotest(
113
+ '''<process-definition name="set_a0" revision="0">
114
+ <sequence>
115
+ <set variable="x">y</set>
116
+ <print>${x}</print>
117
+ </sequence>
118
+ </process-definition>''',
119
+ 'y')
120
+ end
121
+
122
+ def test_set_a1
123
+ dotest(
124
+ '''<process-definition name="set_a1" revision="0">
125
+ <sequence>
126
+ <set variable="x">
127
+ <equals value="a" other-value="a" />
128
+ </set>
129
+ <print>${x}</print>
130
+ </sequence>
131
+ </process-definition>''',
132
+ 'true')
133
+ end
134
+
135
+ def test_set_a1f
136
+ dotest(
137
+ '''<process-definition name="set_a1f" revision="0">
138
+ <sequence>
139
+ <set variable="x">
140
+ <equals value="a" other-value="${x}" />
141
+ </set>
142
+ <print>${x}</print>
143
+ </sequence>
144
+ </process-definition>''',
145
+ 'false')
146
+ end
147
+
148
+ def test_set_with_nested_string_0
149
+ dotest(
150
+ '''<process-definition name="set_a1f" revision="0">
151
+ <sequence>
152
+ <set variable="x">
153
+ ${r:"1234".reverse}
154
+ </set>
155
+ <print>${x}</print>
156
+ </sequence>
157
+ </process-definition>''',
158
+ '4321')
159
+ end
160
+
161
+ def test_set_with_nested_string_1
162
+ dotest(
163
+ '''<process-definition name="set_a1f" revision="0">
164
+ <sequence>
165
+ <set field="x">
166
+ ${r:"1234".reverse}
167
+ </set>
168
+ <print>${f:x}</print>
169
+ </sequence>
170
+ </process-definition>''',
171
+ '4321')
172
+ end
173
+
174
+ end
175
+
@@ -0,0 +1,39 @@
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 'flowtestbase'
11
+
12
+
13
+ class FlowTest1b < Test::Unit::TestCase
14
+ include FlowTestBase
15
+
16
+ #def setup
17
+ #end
18
+
19
+ #def teardown
20
+ #end
21
+
22
+ def test_unset_6
23
+ dotest(\
24
+ '''<process-definition name="unset_6" revision="0">
25
+ <sequence>
26
+ <set variable="/x" value="y" />
27
+ <print>set ${x}</print>
28
+ <sub0/>
29
+ <print>unset ${x}</print>
30
+ </sequence>
31
+ <process-definition name="sub0">
32
+ <unset variable="/x" />
33
+ </process-definition>
34
+ </process-definition>''', 'set y
35
+ unset')
36
+ end
37
+
38
+ end
39
+
@@ -0,0 +1,53 @@
1
+
2
+ #
3
+ # Testing OpenWFEru
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+
8
+ require 'flowtestbase'
9
+ require 'openwfe/def'
10
+
11
+
12
+ class FlowTest20 < Test::Unit::TestCase
13
+ include FlowTestBase
14
+
15
+ #def setup
16
+ #end
17
+
18
+ #def teardown
19
+ #end
20
+
21
+ #
22
+ # Test 0
23
+ #
24
+
25
+ class TestDefinition0 < OpenWFE::ProcessDefinition
26
+ process_definition :name => "rs0", :revision => "0" do
27
+ concurrence :count => 1 do
28
+ cron :tab => "* * * * *", :name => "cron" do
29
+ participant :cron_event
30
+ end
31
+ sequence do
32
+ _print "before"
33
+ _sleep :for => "61s"
34
+ _print "after"
35
+ end
36
+ end
37
+ end
38
+ end
39
+
40
+ def test_0
41
+
42
+ @engine.register_participant(:cron_event) do |fexp, wi|
43
+ @tracer << "#{fexp.class.name}\n"
44
+ end
45
+
46
+ dotest(
47
+ TestDefinition0,
48
+ %w{ before OpenWFE::ParticipantExpression after }.join("\n"))
49
+ #62)
50
+ end
51
+
52
+ end
53
+
@@ -0,0 +1,87 @@
1
+
2
+ #
3
+ # Testing OpenWFEru
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+
8
+ require 'flowtestbase'
9
+ require 'openwfe/def'
10
+
11
+
12
+ class FlowTest21 < Test::Unit::TestCase
13
+ include FlowTestBase
14
+
15
+ #def setup
16
+ #end
17
+
18
+ #def teardown
19
+ #end
20
+
21
+ #
22
+ # Test 0
23
+ #
24
+
25
+ class TestDefinition0 < OpenWFE::ProcessDefinition
26
+ cron :tab => "* * * * *", :name => "cron" do
27
+ participant :cron_event
28
+ end
29
+ end
30
+
31
+ #
32
+ # this one tests whether a cron event is removed when his process
33
+ # terminates, as should be.
34
+ #
35
+ def test_0
36
+
37
+ #log_level_to_debug
38
+
39
+ @engine.register_participant(:cron_event) do
40
+ puts " :( cron_event at #{Time.now.to_s}"
41
+ @tracer << "cron_event"
42
+ end
43
+
44
+ #puts "start at #{Time.now.to_s}"
45
+ #dotest TestDefinition0, "", 62
46
+
47
+ fei = launch TestDefinition0
48
+
49
+ sleep 0.350
50
+
51
+ assert_equal "", @tracer.to_s
52
+ assert_not_nil @engine.process_status(fei)
53
+
54
+ @engine.cancel_process fei
55
+
56
+ sleep 0.350
57
+
58
+ assert_nil @engine.process_status(fei)
59
+ assert_equal 1, @engine.get_expression_storage.size
60
+ end
61
+
62
+ #
63
+ # Test 1
64
+ #
65
+
66
+ class TestDefinition1 < OpenWFE::ProcessDefinition
67
+ concurrence :count => 1 do
68
+ cron :every => "1s500" do
69
+ participant :cron_event
70
+ end
71
+ _sleep "7s"
72
+ end
73
+ end
74
+
75
+ def test_1
76
+
77
+ #log_level_to_debug
78
+
79
+ @engine.register_participant(:cron_event) do
80
+ @tracer << "x"
81
+ end
82
+
83
+ dotest TestDefinition1, [ "xxxx", "xxxxx" ]
84
+ end
85
+
86
+ end
87
+
@@ -0,0 +1,82 @@
1
+
2
+ #
3
+ # Testing OpenWFEru
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Sun Mar 23 13:26:15 JST 2008
8
+ #
9
+
10
+ require 'flowtestbase'
11
+ require 'openwfe/def'
12
+
13
+
14
+ class FlowTest21b < Test::Unit::TestCase
15
+ include FlowTestBase
16
+
17
+ #def setup
18
+ #end
19
+
20
+ #def teardown
21
+ #end
22
+
23
+ #
24
+ # Test 0
25
+ #
26
+
27
+ class TestDefinition0 < OpenWFE::ProcessDefinition
28
+ cron :tab => "* * * * * *", :name => "cron" do
29
+ participant :cron_event
30
+ end
31
+ end
32
+
33
+ #
34
+ # this one tests whether a cron event is removed when his process
35
+ # terminates, as should be.
36
+ #
37
+ def test_0
38
+
39
+ #log_level_to_debug
40
+
41
+ counter = 0
42
+
43
+ @engine.register_participant(:cron_event) do
44
+ counter += 1
45
+ end
46
+
47
+ #puts "start at #{Time.now.to_s}"
48
+ #dotest TestDefinition0, "", 62
49
+
50
+ fei = launch TestDefinition0
51
+
52
+ sleep 0.350
53
+
54
+ assert_equal "", @tracer.to_s
55
+ assert_not_nil @engine.process_status(fei)
56
+
57
+ sleep 3
58
+
59
+ @engine.pause_process fei.wfid
60
+
61
+ assert_equal 3, counter
62
+
63
+ sleep 3
64
+
65
+ assert_equal 3, counter
66
+ assert_equal 0, @engine.process_status(fei).errors.size
67
+
68
+ @engine.resume_process fei.wfid
69
+
70
+ sleep 3
71
+
72
+ assert_equal 6, counter
73
+
74
+ @engine.cancel_process fei.wfid
75
+
76
+ sleep 0.350
77
+
78
+ assert_nil @engine.process_status(fei)
79
+ end
80
+
81
+ end
82
+