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,68 @@
1
+
2
+ #
3
+ # Testing OpenWFE
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Tue Apr 8 12:24:27 JST 2008
8
+ #
9
+
10
+ require 'rubygems'
11
+
12
+ require 'openwfe/def'
13
+ require 'flowtestbase'
14
+
15
+
16
+ class FlowTest14c < Test::Unit::TestCase
17
+ include FlowTestBase
18
+
19
+ #def setup
20
+ #end
21
+
22
+ #def teardown
23
+ #end
24
+
25
+
26
+ #
27
+ # TEST 0
28
+
29
+ class Test0 < OpenWFE::ProcessDefinition
30
+ sequence do
31
+ sub0 :forget => true
32
+ sub0 :forget => true
33
+ end
34
+ process_definition :name => "sub0" do
35
+ _print "${r:fei.wfid[-2..-1]}"
36
+ end
37
+ end
38
+
39
+ def test_0
40
+
41
+ #log_level_to_debug
42
+
43
+ dotest Test0, ".0\n.1", 0.750
44
+ end
45
+
46
+
47
+ #
48
+ # TEST 1
49
+
50
+ class Test1 < OpenWFE::ProcessDefinition
51
+ sequence do
52
+ sub0 :forget => true
53
+ sub0
54
+ end
55
+ process_definition :name => "sub0" do
56
+ _print "${r:fei.wfid[-2..-1]}"
57
+ end
58
+ end
59
+
60
+ def test_1
61
+
62
+ #log_level_to_debug
63
+
64
+ dotest Test1, ".0\n.1", 0.750
65
+ end
66
+
67
+ end
68
+
@@ -0,0 +1,216 @@
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 'rubygems'
11
+
12
+ require 'openwfe/def'
13
+ require 'openwfe/participants/participants'
14
+ require 'flowtestbase'
15
+
16
+
17
+ class FlowTest15 < Test::Unit::TestCase
18
+ include FlowTestBase
19
+
20
+ #def setup
21
+ #end
22
+
23
+ #def teardown
24
+ #end
25
+
26
+ #
27
+ # Test 0
28
+ #
29
+
30
+ class TestDefinition0 < OpenWFE::ProcessDefinition
31
+ def make
32
+ process_definition :name => "test0", :revision => "0" do
33
+ iterator :on_value => "x, y, z", :to_variable => "v0" do
34
+ _print "${f:__ip__} -- ${v0}"
35
+ end
36
+ end
37
+ end
38
+ end
39
+
40
+ def test_ppd_0
41
+
42
+ dotest(
43
+ TestDefinition0,
44
+ [ "0 -- x", "1 -- y", "2 -- z" ].join("\n"))
45
+ end
46
+
47
+ #
48
+ # Test 0b
49
+ #
50
+
51
+ class Test0b < OpenWFE::ProcessDefinition
52
+ iterator :on_value => "1,2,3", :to_variable => "j" do
53
+ _print "${f:__ip__} -- ${j}"
54
+ end
55
+ end
56
+
57
+ def test_0b
58
+
59
+ dotest(
60
+ Test0b,
61
+ [ "0 -- 1", "1 -- 2", "2 -- 3" ].join("\n"))
62
+ end
63
+
64
+ #
65
+ # Test 0c
66
+ #
67
+
68
+ TEST0C = '''
69
+ <process-definition name="test" revision="0c">
70
+ <sequence>
71
+
72
+ <iterator on-value = "1,2,3" to-variable = "j">
73
+ <print>${f:__ip__} -- ${j}</print>
74
+ </iterator>
75
+
76
+ <set field="control" value="1,2,3" />
77
+ <iterator on-value = "${f:control}" to-variable = "j">
78
+ <print>${f:__ip__} -- ${j}</print>
79
+ </iterator>
80
+
81
+ </sequence>
82
+ </process-definition>
83
+ '''.strip
84
+
85
+ def test_0c
86
+
87
+ dotest(
88
+ TEST0C,
89
+ """0 -- 1
90
+ 1 -- 2
91
+ 2 -- 3
92
+ 0 -- 1
93
+ 1 -- 2
94
+ 2 -- 3""")
95
+ end
96
+
97
+
98
+ #
99
+ # Test 1
100
+ #
101
+
102
+ class TestDefinition1 < OpenWFE::ProcessDefinition
103
+ def make
104
+ process_definition :name => "test1", :revision => "0" do
105
+ iterator :on_value => "x, y, z", :to_field => "f0" do
106
+ _print "${f:__ip__} -- ${f:f0}"
107
+ end
108
+ end
109
+ end
110
+ end
111
+
112
+ def test_ppd_1
113
+
114
+ dotest(
115
+ TestDefinition1,
116
+ [ "0 -- x", "1 -- y", "2 -- z" ].join("\n"))
117
+ end
118
+
119
+
120
+ #
121
+ # Test 2
122
+ #
123
+
124
+ class TestDefinition2 < OpenWFE::ProcessDefinition
125
+ def make
126
+ iterator \
127
+ :on_value => "xayaz",
128
+ :to_field => "f0",
129
+ :value_separator => "a" do
130
+
131
+ _print "${f:__ip__} -- ${f:f0}"
132
+ end
133
+ end
134
+ end
135
+
136
+ def test_iterator_2
137
+
138
+ dotest(
139
+ TestDefinition2,
140
+ [ "0 -- x", "1 -- y", "2 -- z" ].join("\n"))
141
+ end
142
+
143
+
144
+ #
145
+ # Test 3
146
+ #
147
+
148
+ class TestDefinition3 < OpenWFE::ProcessDefinition
149
+ sequence do
150
+ iterator :on_value => "", :to_field => "f0" do
151
+ _print "${f:__ip__} -- ${f:f0}"
152
+ end
153
+ _print "done."
154
+ end
155
+ end
156
+
157
+ def test_iterator_3
158
+
159
+ dotest TestDefinition3, "done."
160
+ end
161
+
162
+
163
+ #
164
+ # Test 4
165
+ #
166
+
167
+ class TestDefinition4 < OpenWFE::ProcessDefinition
168
+ sequence do
169
+ iterator :on_value => "a, b, c", :to_field => "f0" do
170
+ sequence do
171
+ _print "${f:__ip__} -- ${f:f0}"
172
+ _break :if => "${f:__ip__} == 1"
173
+ end
174
+ end
175
+ _print "done."
176
+ end
177
+ end
178
+
179
+ def test_iterator_4
180
+
181
+ dotest TestDefinition4, "0 -- a\n1 -- b\ndone."
182
+ end
183
+
184
+
185
+ #
186
+ # Test 5
187
+ #
188
+
189
+ class TestDefinition5 < OpenWFE::ProcessDefinition
190
+ sequence do
191
+ iterator :on_value => "a, b, c, d, e, f, g", :to_field => "f0" do
192
+ sequence do
193
+ _print "${f:__ip__} -- ${f:f0}"
194
+ skip 2, :if => "${f:__ip__} == 1"
195
+ end
196
+ end
197
+ _print "done."
198
+ end
199
+ end
200
+
201
+ def test_iterator_5
202
+
203
+ dotest(
204
+ TestDefinition5,
205
+ """
206
+ 0 -- a
207
+ 1 -- b
208
+ 4 -- e
209
+ 5 -- f
210
+ 6 -- g
211
+ done.
212
+ """.strip)
213
+ end
214
+
215
+ end
216
+
@@ -0,0 +1,74 @@
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 'rubygems'
11
+
12
+ require 'openwfe/def'
13
+ require 'openwfe/participants/participants'
14
+ require 'flowtestbase'
15
+
16
+
17
+ class FlowTest15b < Test::Unit::TestCase
18
+ include FlowTestBase
19
+
20
+ #def setup
21
+ #end
22
+
23
+ #def teardown
24
+ #end
25
+
26
+ #
27
+ # Test 0
28
+ #
29
+
30
+ class Test0 < OpenWFE::ProcessDefinition
31
+ sequence do
32
+ set :field => "participant_list", :value => "a, b, c"
33
+ iterator :on_value => "${f:participant_list}", :to_variable => "p" do
34
+ participant "${p}"
35
+ end
36
+ _print "done."
37
+ end
38
+ end
39
+
40
+ def test_0
41
+
42
+ @engine.register_participant "." do |workitem|
43
+ @tracer << workitem.participant_name
44
+ end
45
+
46
+ dotest Test0, "abcdone."
47
+ end
48
+
49
+ #
50
+ # Test 1
51
+ #
52
+
53
+ def test_1
54
+
55
+ @engine.register_participant ".", OpenWFE::NullParticipant
56
+
57
+ fei = launch Test0
58
+
59
+ sleep 0.350
60
+
61
+ assert_equal 8, @engine.get_expression_storage.size
62
+ assert_equal "", @tracer.to_s
63
+
64
+ @engine.cancel_process fei
65
+
66
+ sleep 0.350
67
+
68
+ #puts @engine.get_expression_storage
69
+ assert_equal 1, @engine.get_expression_storage.size
70
+ assert_equal "", @tracer.to_s
71
+ end
72
+
73
+ end
74
+
data/test/ft_16_fqv.rb ADDED
@@ -0,0 +1,73 @@
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 FlowTest16 < Test::Unit::TestCase
14
+ include FlowTestBase
15
+
16
+ #def setup
17
+ #end
18
+
19
+ #def teardown
20
+ #end
21
+
22
+ def test_fqv_0
23
+ dotest(
24
+ '''<process-definition name="n" revision="0">
25
+ <sequence>
26
+ <set variable="x"><q>y</q></set>
27
+ <print>x is "${x}"</print>
28
+ </sequence>
29
+ </process-definition>''',
30
+ 'x is "y"')
31
+ end
32
+
33
+ def test_fqv_1
34
+ dotest(
35
+ '''<process-definition name="n" revision="0">
36
+ <sequence>
37
+ <set variable="x0"><q>y0</q></set>
38
+ <set variable="x1"><v>x0</v></set>
39
+ <print>x1 is "${x1}"</print>
40
+ </sequence>
41
+ </process-definition>''',
42
+ 'x1 is "y0"')
43
+ end
44
+
45
+ def test_fqv_2
46
+ dotest(
47
+ '''<process-definition name="n" revision="0">
48
+ <sequence>
49
+ <set field="x0"><q>y0</q></set>
50
+ <set variable="x1"><f>x0</f></set>
51
+ <print>x1 is "${x1}"</print>
52
+ </sequence>
53
+ </process-definition>''',
54
+ 'x1 is "y0"')
55
+ end
56
+
57
+ class Fqv3 < OpenWFE::ProcessDefinition
58
+ sequence do
59
+ _set :f => "x0" do
60
+ _q "y0"
61
+ end
62
+ _set :v => "x1" do
63
+ _f "x0"
64
+ end
65
+ _print "x1 is \"${x1}\""
66
+ end
67
+ end
68
+ def test_fqv_3
69
+ dotest(Fqv3, 'x1 is "y0"')
70
+ end
71
+
72
+ end
73
+
@@ -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 'flowtestbase'
11
+
12
+
13
+ class FlowTest17 < Test::Unit::TestCase
14
+ include FlowTestBase
15
+
16
+ #def setup
17
+ #end
18
+
19
+ #def teardown
20
+ #end
21
+
22
+ def test_condition_0
23
+ dotest(
24
+ '''<process-definition name="con" revision="0">
25
+ <if test="a == a">
26
+ <print>ok</print>
27
+ </if>
28
+ </process-definition>''', "ok")
29
+ end
30
+
31
+ def test_condition_1
32
+ dotest(
33
+ '''<process-definition name="con" revision="0">
34
+ <if test="a == b">
35
+ <print>ok</print>
36
+ </if>
37
+ </process-definition>''', "")
38
+ end
39
+
40
+ def test_condition_2
41
+ dotest(
42
+ '''<process-definition name="con" revision="0">
43
+ <sequence>
44
+ <set field="toto" value="nada" />
45
+ <if test="${f:toto} == nada">
46
+ <print>ok</print>
47
+ </if>
48
+ </sequence>
49
+ </process-definition>''', "ok")
50
+ end
51
+
52
+ def test_condition_3
53
+ dotest(
54
+ '''<process-definition name="con" revision="0">
55
+ <sequence>
56
+ <set field="toto" value="true" />
57
+ <if test="${f:toto}">
58
+ <print>ok</print>
59
+ </if>
60
+ </sequence>
61
+ </process-definition>''', "ok")
62
+ end
63
+
64
+ def test_condition_4
65
+ dotest(
66
+ '''<process-definition name="con" revision="0">
67
+ <if rtest="1+2 == 3">
68
+ <print>ok</print>
69
+ </if>
70
+ </process-definition>''', "ok")
71
+ end
72
+
73
+ def test_condition_5
74
+ dotest(
75
+ '''<process-definition name="con" revision="0">
76
+ <if test="1+2 == 3">
77
+ <print>ok</print>
78
+ <print>nok</print>
79
+ </if>
80
+ </process-definition>''', "ok")
81
+ end
82
+
83
+ end
84
+