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,214 @@
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 FlowTest45 < 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 TestCase45a0 < OpenWFE::ProcessDefinition
27
+ sequence do
28
+ concurrent_iterator :on_value => "1, 2", :to_variable => "v" do
29
+ _print "${r:fei.expid} - ${v}"
30
+ end
31
+ _print "done."
32
+ end
33
+ end
34
+
35
+ def test_0
36
+ dotest(
37
+ TestCase45a0,
38
+ [ """
39
+ 0.0.0.0 - 1
40
+ 0.0.0.1 - 2
41
+ done.
42
+ """.strip,
43
+ """
44
+ 0.0.0.1 - 2
45
+ 0.0.0.0 - 1
46
+ done.
47
+ """.strip
48
+ ])
49
+ end
50
+
51
+
52
+ #
53
+ # Test 1
54
+ #
55
+
56
+ class TestCase45a1 < OpenWFE::ProcessDefinition
57
+ sequence do
58
+ concurrent_iterator :on_value => "1, 2", :to_field => "f" do
59
+ _print "${r:fei.expid} - ${f:f}"
60
+ end
61
+ _print "done."
62
+ end
63
+ end
64
+
65
+ def test_1
66
+ dotest(
67
+ TestCase45a1,
68
+ [ """
69
+ 0.0.0.0 - 1
70
+ 0.0.0.1 - 2
71
+ done.
72
+ """.strip,
73
+ """
74
+ 0.0.0.1 - 2
75
+ 0.0.0.0 - 1
76
+ done.
77
+ """.strip
78
+ ])
79
+ end
80
+
81
+ #
82
+ # Test 2
83
+ #
84
+
85
+ class TestCase45a2 < OpenWFE::ProcessDefinition
86
+ sequence do
87
+ concurrent_iterator \
88
+ :on_value => "1, 2",
89
+ :to_field => "f",
90
+ :over_if => "${f:__ip__} == 0" do
91
+
92
+ _print "${r:fei.sub_instance_id} - ${f:f}"
93
+ end
94
+ _print "done."
95
+ end
96
+ end
97
+
98
+ # test 'parked' for now
99
+
100
+ def _test_2
101
+ dotest(
102
+ TestCase45a2,
103
+ """
104
+ .0 - 1
105
+ .1 - 2
106
+ done.
107
+ """.strip)
108
+ end
109
+
110
+
111
+ #
112
+ # Test 3
113
+ #
114
+
115
+ class TestCase45a3 < OpenWFE::ProcessDefinition
116
+ sequence do
117
+ concurrent_iterator :on_value => "", :to_field => "f" do
118
+ _print "${r:fei.sub_instance_id} - ${f:f}"
119
+ end
120
+ _print "done."
121
+ end
122
+ end
123
+
124
+ def test_3
125
+ dotest TestCase45a3, "done."
126
+ end
127
+
128
+
129
+ #
130
+ # Test 4
131
+ #
132
+
133
+ class TestCase45a4 < OpenWFE::ProcessDefinition
134
+ sequence do
135
+ concurrent_iterator :on => "a, b, c", :to_field => "f" do
136
+ _print "${f:f}"
137
+ end
138
+ set :var => "v", :value => "1, 2"
139
+ concurrent_iterator :on_variable_value => "v", :to_field => "f" do
140
+ _print "${f:f}"
141
+ end
142
+ concurrent_iterator :on_var_value => "v", :to_field => "f" do
143
+ _print "${f:f}"
144
+ end
145
+ concurrent_iterator :on_var => "v", :to_field => "f" do
146
+ _print "${f:f}"
147
+ end
148
+ _print "done."
149
+ end
150
+ end
151
+
152
+ def test_4
153
+
154
+ dotest(
155
+ TestCase45a4,
156
+ %w{ a b c 1 2 1 2 1 2 }.join("\n") + "\ndone.")
157
+ end
158
+
159
+
160
+ #
161
+ # Test 5
162
+ #
163
+
164
+ class TestCase45a5 < OpenWFE::ProcessDefinition
165
+ sequence do
166
+ set :f => "f0", :value => "1, 2"
167
+ concurrent_iterator :on_f => "f0", :to_field => "f" do
168
+ _print "${f:f}"
169
+ end
170
+ concurrent_iterator :on_f => :f0, :to_field => "f" do
171
+ _print "${f:f}"
172
+ end
173
+ _print "done."
174
+ end
175
+ end
176
+
177
+ def test_5
178
+
179
+ dotest(
180
+ TestCase45a5,
181
+ %w{ 1 2 1 2 }.join("\n") + "\ndone.")
182
+ end
183
+
184
+
185
+ #
186
+ # Test 6
187
+ #
188
+
189
+ class Test6 < OpenWFE::ProcessDefinition
190
+ concurrent_iterator :on => "a, b, c, d", :to_field => "f" do
191
+ participant "${f:f}"
192
+ end
193
+ end
194
+
195
+ def test_6
196
+
197
+ @engine.register_participant ".", OpenWFE::NullParticipant
198
+
199
+ fei = launch Test6
200
+
201
+ sleep 0.350
202
+
203
+ #puts @engine.get_expression_storage
204
+ assert_equal 12, @engine.get_expression_storage.size
205
+
206
+ @engine.cancel_process fei
207
+
208
+ sleep 0.350
209
+
210
+ assert_equal 1, @engine.get_expression_storage.size
211
+ end
212
+
213
+ end
214
+
@@ -0,0 +1,62 @@
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 FlowTest46 < 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 TestPTask46a0 < OpenWFE::ProcessDefinition
27
+ sequence do
28
+
29
+ participant :ref => :nemo, :description => "clean the desk"
30
+
31
+ _print "${f:description}"
32
+ # just checking that the description is wiped after usage
33
+
34
+ participant :ref => :nemo, :task => "force"
35
+
36
+ _print "${f:task}"
37
+ end
38
+ end
39
+
40
+ def test_0
41
+
42
+ @engine.register_participant :nemo do |workitem|
43
+ @tracer.puts workitem.params['ref']
44
+ @tracer.puts workitem.params['description']
45
+ @tracer.puts workitem.params['task']
46
+ end
47
+
48
+ dotest(
49
+ TestPTask46a0,
50
+ """
51
+ nemo
52
+ clean the desk
53
+
54
+
55
+ nemo
56
+
57
+ force
58
+ """.strip)
59
+ end
60
+
61
+ end
62
+
@@ -0,0 +1,160 @@
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 FlowTest47 < 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 TestFilter47a0 < OpenWFE::ProcessDefinition
27
+ sequence do
28
+ _print "${v0}"
29
+ _print "${v1}"
30
+ filter_definition :name => "filter1" do
31
+ end
32
+ _defined :variable => :filter0
33
+ _print "${f:__result__}"
34
+ _defined :variable => :filter1
35
+ _print "${f:__result__}"
36
+ end
37
+ filter_definition :name => "filter0" do
38
+ end
39
+ set :variable => "v0", :value => "toto"
40
+ set :variable => "v1", :value => "hector"
41
+ end
42
+
43
+ def test_0
44
+ dotest(
45
+ TestFilter47a0,
46
+ "toto\nhector\ntrue\ntrue")
47
+ end
48
+
49
+
50
+ #
51
+ # Test 1
52
+ #
53
+
54
+ class TestFilter47a1 < OpenWFE::ProcessDefinition
55
+ sequence do
56
+
57
+ set :field => "readable", :value => "bible"
58
+ set :field => "writable", :value => "sand"
59
+ set :field => "randw", :value => "notebook"
60
+ set :field => "hidden", :value => "playboy"
61
+
62
+ toto
63
+ toto :filter => "filter0"
64
+
65
+ _print "${f:readable}"
66
+ _print "${f:writable}"
67
+ _print "${f:randw}"
68
+ _print "${f:hidden}"
69
+ end
70
+
71
+ filter_definition :name => "filter0" do
72
+ field :regex => "readable", :permissions => "r"
73
+ field :regex => "writable", :permissions => "w"
74
+ field :regex => "randw", :permissions => "rw"
75
+ field :regex => "hidden", :permissions => ""
76
+ end
77
+ end
78
+
79
+ def test_1
80
+
81
+ @engine.register_participant :toto do |workitem|
82
+
83
+ @tracer << "filter.size is #{workitem.filter.fields.size}\n" \
84
+ if workitem.filter
85
+
86
+ @tracer << "r : #{workitem.attributes['readable']}\n"
87
+ @tracer << "w : #{workitem.attributes['writable']}\n"
88
+ @tracer << "rw : #{workitem.attributes['randw']}\n"
89
+ @tracer << "h : #{workitem.attributes['hidden']}\n"
90
+ @tracer << "--\n"
91
+ end
92
+
93
+ dotest(
94
+ TestFilter47a1,
95
+ """
96
+ r : bible
97
+ w : sand
98
+ rw : notebook
99
+ h : playboy
100
+ --
101
+ filter.size is 4
102
+ r : bible
103
+ w :
104
+ rw : notebook
105
+ h :
106
+ --
107
+ bible
108
+ sand
109
+ notebook
110
+ playboy
111
+ """.strip)
112
+ end
113
+
114
+
115
+ #
116
+ # Test 2
117
+ #
118
+
119
+ class TestFilter47a2 < OpenWFE::ProcessDefinition
120
+ sequence do
121
+
122
+ set :field => "readable", :value => "bible"
123
+ set :field => "writable", :value => "sand"
124
+ set :field => "randw", :value => "notebook"
125
+ set :field => "hidden", :value => "playboy"
126
+
127
+ alice :filter => "filter0"
128
+ pp_fields
129
+ end
130
+
131
+ filter_definition :name => "filter0" do
132
+ field :regex => "readable", :permissions => "r"
133
+ field :regex => "writable", :permissions => "w"
134
+ field :regex => "randw", :permissions => "rw"
135
+ field :regex => "hidden", :permissions => ""
136
+ end
137
+ end
138
+
139
+ def test_2
140
+
141
+ @engine.register_participant :alice do |workitem|
142
+ workitem.readable = "nada"
143
+ workitem.writable = "nada"
144
+ workitem.randw = "nada"
145
+ workitem.hidden = "nada"
146
+ end
147
+
148
+ dotest(
149
+ TestFilter47a2,
150
+ """
151
+ hidden: playboy
152
+ randw: nada
153
+ readable: bible
154
+ writable: nada
155
+ --
156
+ """.strip)
157
+ end
158
+
159
+ end
160
+
@@ -0,0 +1,88 @@
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 FlowTest48 < 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 TestFilter48a0 < OpenWFE::ProcessDefinition
27
+ sequence do
28
+
29
+ set :field => "readable", :value => "bible"
30
+ set :field => "writable", :value => "sand"
31
+ set :field => "randw", :value => "notebook"
32
+ set :field => "hidden", :value => "playboy"
33
+
34
+ alice
35
+
36
+ filter :name => "filter0" do
37
+ alice
38
+ end
39
+
40
+ alice
41
+ end
42
+
43
+ filter_definition :name => "filter0" do
44
+ field :regex => "readable", :permissions => "r"
45
+ field :regex => "writable", :permissions => "w"
46
+ field :regex => "randw", :permissions => "rw"
47
+ field :regex => "hidden", :permissions => ""
48
+ end
49
+ end
50
+
51
+ def test_0
52
+
53
+ @engine.register_participant :alice do |workitem|
54
+
55
+ @tracer << "filter.size is #{workitem.filter.fields.size}\n" \
56
+ if workitem.filter
57
+
58
+ @tracer << "r : #{workitem.attributes['readable']}\n"
59
+ @tracer << "w : #{workitem.attributes['writable']}\n"
60
+ @tracer << "rw : #{workitem.attributes['randw']}\n"
61
+ @tracer << "h : #{workitem.attributes['hidden']}\n"
62
+ @tracer << "--\n"
63
+ end
64
+
65
+ dotest(
66
+ TestFilter48a0,
67
+ """
68
+ r : bible
69
+ w : sand
70
+ rw : notebook
71
+ h : playboy
72
+ --
73
+ filter.size is 4
74
+ r : bible
75
+ w :
76
+ rw : notebook
77
+ h :
78
+ --
79
+ r : bible
80
+ w : sand
81
+ rw : notebook
82
+ h : playboy
83
+ --
84
+ """.strip)
85
+ end
86
+
87
+ end
88
+