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,147 @@
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 FlowTest27 < 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
+ def make
32
+ _process_definition :name => "27_gfp", :revision => "0" do
33
+ _sequence do
34
+ store_p
35
+ end
36
+ end
37
+ end
38
+ end
39
+
40
+ def test_gfp_0
41
+
42
+ #sp = @engine.register_participant("store_p", OpenWFE::YamlParticipant)
43
+ sp = @engine.register_participant "store_p", OpenWFE::HashParticipant
44
+
45
+ fei = launch TestDefinition0
46
+
47
+ sleep 0.350
48
+
49
+ l = @engine.process_stack fei.wfid
50
+
51
+ #print_exp_list l
52
+
53
+ assert_equal 3, l.size
54
+
55
+ ps = @engine.list_process_status
56
+ #puts
57
+ #puts ps[fei.parent_wfid].to_s
58
+ #puts
59
+
60
+ assert_equal 0, ps[fei.parent_wfid].errors.size
61
+ assert_equal 1, ps[fei.parent_wfid].expressions.size
62
+ assert_kind_of OpenWFE::ParticipantExpression, ps[fei.parent_wfid].expressions[0]
63
+
64
+ assert_not_nil ps[fei.parent_wfid].launch_time
65
+
66
+ ps = @engine.list_process_status fei.wfid[0, 4]
67
+
68
+ assert_equal 0, ps[fei.parent_wfid].errors.size
69
+ assert_equal 1, ps[fei.parent_wfid].expressions.size
70
+ assert_kind_of OpenWFE::ParticipantExpression, ps[fei.parent_wfid].expressions[0]
71
+
72
+ #
73
+ # resume process
74
+
75
+ wi = sp.first_workitem
76
+
77
+ sp.forward(wi)
78
+
79
+ #@engine.wait_for fei
80
+ wait_for fei
81
+
82
+ assert_equal 0, sp.size
83
+ end
84
+
85
+
86
+ #
87
+ # TEST 0b
88
+
89
+ class Gfp27b < OpenWFE::ProcessDefinition
90
+ sequence do
91
+ store_p
92
+ _print "pass"
93
+ end
94
+ end
95
+
96
+ def test_gfp_0b
97
+
98
+ log_level_to_debug
99
+
100
+ sp = @engine.register_participant "store_p", OpenWFE::YamlParticipant
101
+
102
+ #fei = @engine.launch TestDefinition0
103
+ fei = launch Gfp27b
104
+
105
+ sleep 0.350
106
+
107
+ #l = @engine.get_process_stack(fei.wfid)
108
+ l = @engine.process_stack fei
109
+ #
110
+ # shortcut version
111
+
112
+ #print_exp_list l
113
+
114
+ assert_equal 3, l.size
115
+
116
+ l = @engine.list_processes
117
+ assert_equal 1, l.size
118
+
119
+ l = @engine.list_processes(
120
+ :consider_subprocesses => false, :wfid_prefix => "nada")
121
+ assert_equal 0, l.size
122
+
123
+ l = @engine.list_workflows(
124
+ :consider_subprocesses => false, :wfid_prefix => fei.wfid[0, 3])
125
+ assert_equal 1, l.size
126
+
127
+ l = @engine.process_stack fei, true # unapplied exps as well
128
+ #print_exp_list l
129
+ assert_equal 5, l.size
130
+
131
+ #
132
+ # resume flow and terminate it
133
+
134
+ wi = sp.first_workitem
135
+
136
+ assert_not_nil wi
137
+
138
+ sp.forward wi
139
+
140
+ #@engine.wait_for fei
141
+ wait_for fei
142
+
143
+ assert_equal 0, sp.size
144
+ end
145
+
146
+ end
147
+
@@ -0,0 +1,63 @@
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 'find'
11
+ require 'fileutils'
12
+
13
+ require 'rubygems'
14
+
15
+ require 'openwfe/def'
16
+ require 'openwfe/listeners/listeners'
17
+ require 'openwfe/participants/participants'
18
+
19
+ require 'flowtestbase'
20
+
21
+
22
+ class FlowTest28 < Test::Unit::TestCase
23
+ include FlowTestBase
24
+
25
+ #def teardown
26
+ #end
27
+
28
+ #def setup
29
+ #end
30
+
31
+ #
32
+ # TEST 0
33
+
34
+ class TestDefinition0 < OpenWFE::ProcessDefinition
35
+ sequence do
36
+ participant :fp
37
+ _print "done"
38
+ end
39
+ end
40
+
41
+ def test_0
42
+
43
+ FileUtils.mkdir("./work/in") unless File.exist? "./work/in"
44
+
45
+ @engine.register_participant "fp", OpenWFE::FileParticipant
46
+ @engine.add_workitem_listener OpenWFE::FileListener, "500"
47
+
48
+ fei = launch TestDefinition0
49
+
50
+ sleep 0.350
51
+
52
+ Find.find("./work/out/") do |path|
53
+ next unless path.match ".*\.yaml$"
54
+ FileUtils.mv path, "./work/in/"
55
+ end
56
+
57
+ sleep 2.000
58
+
59
+ assert_equal 1, engine.get_expression_storage.size
60
+ end
61
+
62
+ end
63
+
@@ -0,0 +1,106 @@
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/workitem'
14
+ require 'openwfe/participants/storeparticipants'
15
+
16
+ require 'flowtestbase'
17
+
18
+
19
+ class FlowTest29 < Test::Unit::TestCase
20
+ include FlowTestBase
21
+
22
+ #def teardown
23
+ #end
24
+
25
+ def setup
26
+ super
27
+ @engine.ac[:remote_definitions_allowed] = true
28
+ end
29
+
30
+ DEFHOST = "http://openwferu.rubyforge.org/defs"
31
+
32
+ #
33
+ # TEST 0
34
+
35
+ def test_httprb_0
36
+
37
+ li = OpenWFE::LaunchItem.new
38
+ li.wfdurl = "#{DEFHOST}/testdef.rb"
39
+
40
+ dotest li, %w{ a b c }.join("\n")
41
+ end
42
+
43
+
44
+ #
45
+ # TEST 1
46
+
47
+ class MainDefinition1 < OpenWFE::ProcessDefinition
48
+ sequence do
49
+ _print "A"
50
+ subprocess :ref => "#{DEFHOST}/testdef.rb"
51
+ _print "C"
52
+ end
53
+ end
54
+
55
+ def test_httprb_1
56
+
57
+ dotest MainDefinition1, %w{ A a b c C }.join("\n")
58
+ end
59
+
60
+
61
+ #
62
+ # TEST 2
63
+
64
+ class MainDefinition2 < OpenWFE::ProcessDefinition
65
+ def make
66
+ sequence do
67
+ _print "-1"
68
+ subprocess :ref => "#{DEFHOST}/testdef.xml"
69
+ _print "3"
70
+ end
71
+ end
72
+ end
73
+
74
+ def test_httprb_2
75
+
76
+ dotest MainDefinition2, %w{ -1 0 1 2 3 }.join("\n")
77
+ end
78
+
79
+
80
+ #
81
+ # TEST 3
82
+
83
+ def test_httprb_3
84
+
85
+ @engine.ac.delete(:remote_definitions_allowed)
86
+ #
87
+ # relocking
88
+
89
+ li = OpenWFE::LaunchItem.new
90
+ li.wfdurl = "#{DEFHOST}/testdef.rb"
91
+
92
+ e = nil
93
+
94
+ begin
95
+ dotest(li, "")
96
+ rescue Exception => e
97
+ end
98
+
99
+ #puts e
100
+
101
+ assert_not_nil e
102
+ assert_equal e.to_s, ":remote_definitions_allowed is set to false"
103
+ end
104
+
105
+ end
106
+
@@ -0,0 +1,135 @@
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 FlowTest2 < Test::Unit::TestCase
17
+ include FlowTestBase
18
+
19
+ #def setup
20
+ #end
21
+
22
+ #def teardown
23
+ #end
24
+
25
+ # test_con_0 got moved to ft_2c_concurrence.rb
26
+
27
+ def test_con_1
28
+
29
+ #log_level_to_debug
30
+
31
+ dotest(
32
+ '''<process-definition name="ft_2_concurrence" revision="1">
33
+ <concurrence
34
+ count="1"
35
+ >
36
+ <print>a</print>
37
+ <sequence>
38
+ <sleep for="10s" />
39
+ <print>b</print>
40
+ </sequence>
41
+ </concurrence>
42
+ </process-definition>''',
43
+ "a",
44
+ true)
45
+ end
46
+
47
+ def test_con_2
48
+
49
+ #log_level_to_debug
50
+
51
+ dotest(
52
+ '''<process-definition name="ft_2_concurrence" revision="2">
53
+ <concurrence over-if="true">
54
+ <sequence>
55
+ <sleep for="1s"/>
56
+ <print>a</print>
57
+ </sequence>
58
+ <print>b</print>
59
+ </concurrence>
60
+ </process-definition>''',
61
+ "b",
62
+ true)
63
+ end
64
+
65
+ def test_con_3
66
+
67
+ #log_level_to_debug
68
+
69
+ dotest(
70
+ '''<process-definition name="ft_2_concurrence" revision="3">
71
+ <concurrence over-if="${over}">
72
+ <print>a</print>
73
+ <set variable="over" value="true" />
74
+ </concurrence>
75
+ </process-definition>''',
76
+ "a",
77
+ true)
78
+ end
79
+
80
+ def test_con_4
81
+
82
+ #log_level_to_debug
83
+
84
+ dotest(
85
+ '''<process-definition name="ft_2_concurrence" revision="4">
86
+ <concurrence over-if="${nada}">
87
+ <sequence>
88
+ <sleep for="1s"/>
89
+ <print>a</print>
90
+ </sequence>
91
+ <print>b</print>
92
+ </concurrence>
93
+ </process-definition>''',
94
+ "b\na",
95
+ true)
96
+ end
97
+
98
+ def test_con_5
99
+
100
+ #log_level_to_debug
101
+
102
+ dotest(
103
+ '''<process-definition name="ft_2_concurrence" revision="5">
104
+ <concurrence over-if="false">
105
+ <sequence>
106
+ <sleep for="1s"/>
107
+ <print>a</print>
108
+ </sequence>
109
+ <print>b</print>
110
+ </concurrence>
111
+ </process-definition>''',
112
+ "b\na",
113
+ true)
114
+ end
115
+
116
+ class TestDefinition6 < OpenWFE::ProcessDefinition
117
+ sequence do
118
+ concurrence :over_if => "1 == 1" do
119
+ sequence do
120
+ _sleep :for => "350"
121
+ _print "a"
122
+ end
123
+ _print "b"
124
+ end
125
+ _print "c"
126
+ end
127
+ end
128
+
129
+ def test_con_6
130
+
131
+ dotest TestDefinition6, "b\nc"
132
+ end
133
+
134
+ end
135
+