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,100 @@
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'
14
+
15
+ require 'flowtestbase'
16
+
17
+
18
+ class FlowTest38c < Test::Unit::TestCase
19
+ include FlowTestBase
20
+
21
+ #def teardown
22
+ #end
23
+
24
+ #def setup
25
+ #end
26
+
27
+
28
+ #
29
+ # test 5
30
+ #
31
+
32
+ class TestTag5 < OpenWFE::ProcessDefinition
33
+
34
+ sequence do
35
+ sub0
36
+ end
37
+
38
+ process_definition :name => "sub0" do
39
+ sequence :tag => "seq0" do
40
+ peekin
41
+ end
42
+ end
43
+ end
44
+
45
+ def test_tag_5
46
+
47
+ @engine.register_participant :peekin do |fexp, wi|
48
+
49
+ wfid = fexp.fei.parent_workflow_instance_id
50
+
51
+ assert_equal 3, @engine.get_variables(wfid).size
52
+ # :next_sub_id and one [sub] process definition
53
+
54
+ assert_equal 0, @engine.process_status(wfid).tags.size
55
+ assert_equal "", @engine.process_status(wfid).tags.to_s
56
+
57
+ @tracer << "peekin\n"
58
+ end
59
+
60
+ dotest TestTag5, "peekin"
61
+ end
62
+
63
+
64
+ #
65
+ # test 5b
66
+ #
67
+
68
+ class TestTag5b < OpenWFE::ProcessDefinition
69
+
70
+ sequence do
71
+ sub0
72
+ end
73
+
74
+ process_definition :name => "sub0" do
75
+ sequence :tag => "/seq0" do
76
+ peekin
77
+ end
78
+ end
79
+ end
80
+
81
+ def test_5b
82
+
83
+ @engine.register_participant :peekin do |fexp, wi|
84
+
85
+ wfid = fexp.fei.parent_workflow_instance_id
86
+
87
+ assert_equal 4, @engine.get_variables(wfid).size
88
+ # :next_sub_id and one [sub] process definition (and the tag)
89
+
90
+ assert_equal 1, @engine.process_status(wfid).tags.size
91
+ assert_equal "seq0", @engine.process_status(wfid).tags.to_s
92
+
93
+ @tracer << "peekin\n"
94
+ end
95
+
96
+ dotest TestTag5b, "peekin"
97
+ end
98
+
99
+ end
100
+
@@ -0,0 +1,63 @@
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 FlowTest39 < Test::Unit::TestCase
13
+ include FlowTestBase
14
+
15
+ #def setup
16
+ #end
17
+
18
+ #def teardown
19
+ #end
20
+
21
+
22
+ #
23
+ # Test 0
24
+ #
25
+
26
+ class TestReserve39a0 < OpenWFE::ProcessDefinition
27
+ reserve :mutex => :toto do
28
+ _print "ok"
29
+ end
30
+ end
31
+
32
+ def test_0
33
+
34
+ dotest TestReserve39a0, "ok", true
35
+ end
36
+
37
+ #
38
+ # Test 1
39
+ #
40
+
41
+ # became obsolete
42
+
43
+ #
44
+ # Test 2
45
+ #
46
+
47
+ # moved to ft_39b_reserve.rb
48
+
49
+ #
50
+ # Test 3
51
+ #
52
+
53
+ class TestReserve39a3 < OpenWFE::ProcessDefinition
54
+ reserve :mutex => :toto do
55
+ end
56
+ end
57
+
58
+ def test_3
59
+ dotest TestReserve39a3, "", true
60
+ end
61
+
62
+ end
63
+
@@ -0,0 +1,84 @@
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 FlowTest39b < 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 TestReserve39b0 < OpenWFE::ProcessDefinition
26
+ #
27
+ # doesn't prove it enough though...
28
+ #
29
+ concurrence do
30
+ reserve :mutex => :toto do
31
+ sequence do
32
+ test_alpha
33
+ test_bravo
34
+ end
35
+ end
36
+ reserve :mutex => :toto do
37
+ sequence do
38
+ test_charly
39
+ test_delta
40
+ end
41
+ end
42
+ end
43
+ end
44
+
45
+ def test_0
46
+
47
+ #log_level_to_debug
48
+
49
+ dotest(
50
+ TestReserve39b0,
51
+ [ %w{ test-charly test-delta test-alpha test-bravo }.join("\n"),
52
+ %w{ test-alpha test-bravo test-charly test-delta }.join("\n") ])
53
+ end
54
+
55
+ #
56
+ # Test 1
57
+ #
58
+
59
+ class TestReserve39b1 < OpenWFE::ProcessDefinition
60
+ concurrence do
61
+ reserve :mutex => :toto do
62
+ test_b
63
+ end
64
+ sequence do
65
+ reserve :mutex => :toto do
66
+ test_c
67
+ end
68
+ reserve :mutex => :toto do
69
+ test_d
70
+ end
71
+ end
72
+ end
73
+ end
74
+
75
+ def test_1
76
+
77
+ dotest TestReserve39b1, "test-b\ntest-c\ntest-d"
78
+ #
79
+ # currently the only combination produced, could change
80
+ # with later versions of Ruby... Hopefully :)
81
+ end
82
+
83
+ end
84
+
@@ -0,0 +1,170 @@
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 FlowTest3 < Test::Unit::TestCase
14
+ include FlowTestBase
15
+
16
+ #def setup
17
+ #end
18
+
19
+ #def teardown
20
+ #end
21
+
22
+ def test_equals_0
23
+ dotest(
24
+ '''<process-definition name="equals_0" revision="0">
25
+ <sequence>
26
+ <equals value="a" other-value="a" />
27
+ <print>${field:__result__}</print>
28
+ </sequence>
29
+ </process-definition>''',
30
+ "true")
31
+ end
32
+
33
+ def test_equals_1
34
+ dotest(
35
+ '''<process-definition name="equals_1" revision="0">
36
+ <sequence>
37
+ <equals value="a" other-value="b" />
38
+ <print>${field:__result__}</print>
39
+ </sequence>
40
+ </process-definition>''',
41
+ "false")
42
+ end
43
+
44
+ def test_if_0
45
+ dotest(
46
+ '''<process-definition name="if_0" revision="0">
47
+ <if>
48
+ <equals value="a" other-value="a" />
49
+ <print>ok</print>
50
+ </if>
51
+ </process-definition>''',
52
+ "ok")
53
+ end
54
+
55
+ def test_if_1
56
+ dotest(
57
+ '''<process-definition name="if_1" revision="0">
58
+ <if>
59
+ <equals value="a" other-value="a" />
60
+ <print>ok</print>
61
+ <print>nok</print>
62
+ </if>
63
+ </process-definition>''',
64
+ "ok")
65
+ end
66
+
67
+ def test_if_2
68
+ dotest(
69
+ '''<process-definition name="if_2" revision="0">
70
+ <if>
71
+ <equals value="a" other-value="b" />
72
+ <print>nok</print>
73
+ </if>
74
+ </process-definition>''',
75
+ "")
76
+ end
77
+
78
+ def test_if_3
79
+ dotest(
80
+ '''<process-definition name="if_3" revision="0">
81
+ <if>
82
+ <equals value="a" other-value="b" />
83
+ <print>nok</print>
84
+ <print>ok</print>
85
+ </if>
86
+ </process-definition>''', "ok")
87
+ end
88
+
89
+ def test_equals_0
90
+ dotest(
91
+ '<process-definition name="'+name_of_test+'''" revision="0">
92
+ <sequence>
93
+ <set field="a" value="true" />
94
+ <print>${f:a}</print>
95
+ <if>
96
+ <equals field-value="a" other-value="true" />
97
+ <print>true</print>
98
+ <print>bad test_equals_0</print>
99
+ </if>
100
+ </sequence>
101
+ </process-definition>''',
102
+ """true
103
+ true""")
104
+ end
105
+
106
+ def test_equals_1
107
+ dotest(
108
+ '<process-definition name="'+name_of_test+'''" revision="0">
109
+ <sequence>
110
+ <set variable="a" value="true" />
111
+ <print>${a}</print>
112
+ <if>
113
+ <equals variable-value="a" other-value="true" />
114
+ <print>true</print>
115
+ <print>bad test_equals_1</print>
116
+ </if>
117
+ </sequence>
118
+ </process-definition>''',
119
+ "true\ntrue")
120
+ end
121
+
122
+ def test_equals_2
123
+ dotest(
124
+ '<process-definition name="'+name_of_test+'''" revision="0">
125
+ <sequence>
126
+ <set variable="a" value="true" />
127
+
128
+ <equals variable="a" other-value="true" />
129
+ <print>${f:__result__}</print>
130
+
131
+ <equals variable="a" value="true" />
132
+ <print>${f:__result__}</print>
133
+ </sequence>
134
+ </process-definition>''',
135
+ "true\ntrue")
136
+ end
137
+
138
+ def test_equals_3
139
+
140
+ #log_level_to_debug
141
+
142
+ dotest(
143
+ '<process-definition name="'+name_of_test+'''" revision="0">
144
+ <sequence>
145
+ <if test="3 > 2">
146
+ <print>ok0</print>
147
+ </if>
148
+ <if test="3 > a">
149
+ <print>bad</print>
150
+ <print>ok1</print>
151
+ </if>
152
+ <if test="3>a">
153
+ <print>bad</print>
154
+ <print>ok2</print>
155
+ </if>
156
+ <if test="3 &gt; 2">
157
+ <print>ok3</print>
158
+ <print>bad</print>
159
+ </if>
160
+ <if test="1 &lt; 2.0">
161
+ <print>ok4</print>
162
+ <print>bad</print>
163
+ </if>
164
+ </sequence>
165
+ </process-definition>''',
166
+ (0..4).collect { |i| "ok#{i}" }.join("\n"))
167
+ end
168
+
169
+ end
170
+
@@ -0,0 +1,83 @@
1
+
2
+ #
3
+ # Testing OpenWFE
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Wed Jan 9 22:52:06 JST 2008
8
+ #
9
+
10
+ require 'flowtestbase'
11
+
12
+
13
+ class FlowTest3b < Test::Unit::TestCase
14
+ include FlowTestBase
15
+
16
+ #def setup
17
+ #end
18
+
19
+ #def teardown
20
+ #end
21
+
22
+ class Def0 < OpenWFE::ProcessDefinition
23
+ sequence do
24
+
25
+ # variable
26
+
27
+ set :v => "v0", :val => "val0"
28
+
29
+ equals :variable => "v0", :other_value => "val0"
30
+ _print "${f:__result__}"
31
+
32
+ equals :variable_value => "v0", :other_value => "val0"
33
+ _print "${f:__result__}"
34
+
35
+ equals :var_value => "v0", :other_value => "val0"
36
+ _print "${f:__result__}"
37
+
38
+ equals :v_value => "v0", :other_value => "val0"
39
+ _print "${f:__result__}"
40
+
41
+ equals :var => "v0", :other_value => "val0"
42
+ _print "${f:__result__}"
43
+
44
+ equals :v => "v0", :other_value => "val0"
45
+ _print "${f:__result__}"
46
+
47
+ equals :v => "v0", :other_val => "val0"
48
+ _print "${f:__result__}"
49
+
50
+ equals :val => "val0", :other_val => "val0"
51
+ _print "${f:__result__}"
52
+
53
+ # field
54
+
55
+ set :f => "f0", :val => "f_val0"
56
+
57
+ equals :field_value => "f0", :other_value => "f_val0"
58
+ _print "${f:__result__}"
59
+
60
+ equals :f_value => "f0", :other_value => "f_val0"
61
+ _print "${f:__result__}"
62
+
63
+ equals :field => "f0", :other_value => "f_val0"
64
+ _print "${f:__result__}"
65
+
66
+ equals :field => "f0", :value => "f_val0"
67
+ _print "${f:__result__}"
68
+
69
+ equals :f => "f0", :other_value => "f_val0"
70
+ _print "${f:__result__}"
71
+
72
+ # damn, I could use a Rufus subprocess... but it's 11pm...
73
+ # copy, paste is just fine for a test...
74
+ end
75
+ end
76
+
77
+ def test_0
78
+
79
+ dotest Def0, ([ "true" ] * 13).join("\n")
80
+ end
81
+
82
+ end
83
+