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,105 @@
1
+
2
+ #
3
+ # Testing OpenWFE
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Thu Nov 22 11:53:13 JST 2007
8
+ #
9
+
10
+ require 'flowtestbase'
11
+ require 'openwfe/def'
12
+
13
+
14
+ class FlowTest9b < Test::Unit::TestCase
15
+ include FlowTestBase
16
+
17
+ #def setup
18
+ #end
19
+
20
+ #def teardown
21
+ #end
22
+
23
+ #
24
+ # Test 0
25
+ #
26
+
27
+ class Test0 < OpenWFE::ProcessDefinition
28
+ cursor do
29
+ set :v => "v0", :val => "x"
30
+ _print "${v0}"
31
+ end
32
+ end
33
+
34
+ def test_0
35
+
36
+ dotest Test0, "x"
37
+ end
38
+
39
+ #
40
+ # Test 1
41
+ #
42
+
43
+ #class Test1 < OpenWFE::ProcessDefinition
44
+ # cursor do
45
+ # my_participant
46
+ # end
47
+ #end
48
+ #def test_1
49
+ # @engine.register_participant :my_participant do |fexp, wi|
50
+ # #puts fexp.to_s
51
+ # #puts fexp.environment_id.to_s
52
+ # @tracer << "ok0\n" if fexp.environment_id.expid != fexp.fei.expid
53
+ # @tracer << "ok1\n" if fexp.environment_id.expid == "0.0"
54
+ # @tracer << "ok2\n" if fexp.environment_id.wfid + ".0" == fexp.fei.wfid
55
+ # end
56
+ # dotest Test1, "ok0\nok1\nok2"
57
+ #end
58
+
59
+ #
60
+ # Test 2
61
+ #
62
+
63
+ class Test2 < OpenWFE::ProcessDefinition
64
+ cursor do
65
+ my_participant
66
+ end
67
+ end
68
+ class MyParticipant
69
+ include OpenWFE::LocalParticipant
70
+
71
+ def initialize (tracer)
72
+ @tracer = tracer
73
+ end
74
+ def consume (workitem)
75
+ @tracer << "consume\n"
76
+ @workitem = workitem
77
+ end
78
+ def cancel (cancelitem)
79
+ @tracer << "cancel\n"
80
+ end
81
+ end
82
+
83
+ def test_2
84
+
85
+ #log_level_to_debug
86
+
87
+ @engine.register_participant :my_participant, MyParticipant.new(@tracer)
88
+
89
+ fei = launch Test2
90
+
91
+ sleep 0.350
92
+
93
+ @engine.cancel_process fei
94
+
95
+ sleep 0.350
96
+
97
+ assert(
98
+ [ "consume\ncancel",
99
+ "consume\ncancel\ncancel" ].include?(@tracer.to_s))
100
+
101
+ assert_equal 1, @engine.get_expression_storage.size
102
+ end
103
+
104
+ end
105
+
data/test/ft_tests.rb ADDED
@@ -0,0 +1,124 @@
1
+ #
2
+ # Testing OpenWFE
3
+ #
4
+ # John Mettraux at openwfe.org
5
+ #
6
+ # Mon Oct 9 22:19:44 JST 2006
7
+ #
8
+
9
+ #require 'test/unit'
10
+
11
+ require 'ft_0'
12
+ require 'ft_0b_sequence'
13
+ require 'ft_0c_testname'
14
+ require 'ft_0d_participant'
15
+ require 'ft_0e_multibody'
16
+ require 'ft_1_unset'
17
+ require 'ft_1b_unset'
18
+ require 'ft_2_concurrence'
19
+ require 'ft_2b_concurrence'
20
+ require 'ft_2c_concurrence'
21
+ require 'ft_3_equals'
22
+ require 'ft_3b_lookup_vf'
23
+ require 'ft_4_misc'
24
+ require 'ft_6_lambda'
25
+ require 'ft_7_lose'
26
+ require 'ft_7b_lose'
27
+ require 'ft_8_forget'
28
+ require 'ft_9_cursor'
29
+ require 'ft_9b_cursor'
30
+ require 'ft_10_loop'
31
+ require 'ft_11_ppd'
32
+ require 'ft_11b_ppd'
33
+ require 'ft_12_blockparticipant'
34
+ require 'ft_14_subprocess'
35
+ require 'ft_14b_subprocess'
36
+ require 'ft_14c_subprocess'
37
+ require 'ft_15_iterator'
38
+ require 'ft_15b_iterator'
39
+ require 'ft_16_fqv'
40
+ require 'ft_17_condition'
41
+ require 'ft_18_pname'
42
+ require 'extras/ft_19_csv'
43
+ require 'ft_22_history'
44
+ require 'ft_23_when'
45
+ require 'ft_23b_when'
46
+ require 'ft_23c_wait'
47
+ require 'ft_23d_cww'
48
+ require 'ft_24_def'
49
+ require 'ft_25_cancel'
50
+
51
+ require 'ft_27_getflowpos'
52
+ require 'ft_28_fileparticipant'
53
+
54
+ require 'ft_31_flowname'
55
+ require 'ft_34_cancelwfid'
56
+ require 'ft_35_localdefs'
57
+ require 'ft_36_subprocids'
58
+ require 'ft_37_pnames'
59
+ require 'ft_38_tag'
60
+ require 'ft_38b_tag'
61
+ require 'ft_38c_tag'
62
+ require 'ft_39_reserve'
63
+ require 'ft_39b_reserve'
64
+ require 'ft_40_defined'
65
+ require 'ft_41_case'
66
+ require 'ft_42_environments'
67
+ require 'ft_43_pat10'
68
+ require 'ft_44_save'
69
+ require 'ft_44b_restore'
70
+ require 'ft_45_citerator'
71
+ require 'ft_46_pparams'
72
+ require 'ft_47_filter'
73
+ require 'ft_48_fe_filter'
74
+ require 'ft_49_condition'
75
+ require 'ft_50_xml_attribute'
76
+ #require 'ft_51_stack'
77
+ require 'ft_52_obs_participant'
78
+ require 'ft_53_null_noop_participant'
79
+ require 'ft_54_listen'
80
+ require 'ft_54b_listen'
81
+ require 'ft_54c_listen'
82
+ require 'ft_55_ptimeout'
83
+ require 'ft_56_timeout'
84
+ require 'ft_57_a'
85
+
86
+ require 'ft_32_journal'
87
+ require 'ft_32c_journal'
88
+ require 'ft_32d_journal'
89
+
90
+ require 'ft_58_ejournal'
91
+ require 'ft_59_ps'
92
+ require 'ft_60_ecancel'
93
+ require 'ft_61_elsub'
94
+ require 'ft_62_procparticipant'
95
+ require 'ft_63_pause'
96
+ require 'ft_64_alias'
97
+ require 'ft_65_stringlaunch'
98
+ require 'ft_66_subforget'
99
+
100
+ require 'ft_68_ifparticipant'
101
+ require 'ft_69_cancelmissing'
102
+ require 'ft_70_lookupvar'
103
+ require 'ft_71_log'
104
+ require 'ft_72_lookup_processes'
105
+ require 'ft_73_cancel_sub'
106
+ require 'ft_74_block_and_workitem_dup'
107
+ require 'ft_75_ruby_attributes'
108
+ require 'ft_76_merge_isolate'
109
+ require 'ft_77_segments'
110
+ require 'ft_78_eval'
111
+ require 'ft_79_tticket'
112
+ require 'ft_79b_tticket'
113
+ require 'ft_79c_outcome'
114
+ require 'ft_80_spname'
115
+ require 'ft_81_exp'
116
+
117
+ require 'back_0916_test'
118
+
119
+ require 'ft_82_trecu'
120
+ require 'ft_84_updateexp'
121
+ require 'ft_85_dolhash'
122
+ require 'ft_86_dollar_fv'
123
+ require 'ft_87_define'
124
+
data/test/hash_test.rb ADDED
@@ -0,0 +1,75 @@
1
+
2
+ #
3
+ # Testing OpenWFE
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Sun Oct 29 16:18:25 JST 2006
8
+ #
9
+
10
+ require 'test/unit'
11
+
12
+ require 'openwfe/workitem'
13
+ require 'openwfe/flowexpressionid'
14
+
15
+ require 'rutest_utils'
16
+
17
+
18
+ #
19
+ # testing fei.to_h and wi.to_h
20
+ #
21
+
22
+ class HashTest < Test::Unit::TestCase
23
+
24
+ #def setup
25
+ #end
26
+
27
+ #def teardown
28
+ #end
29
+
30
+ def test_fei_to_h
31
+
32
+ fei0 = new_fei
33
+ h = fei0.to_h
34
+ fei1 = OpenWFE::FlowExpressionId.from_h(h)
35
+
36
+ assert_equal fei0, fei1
37
+ end
38
+
39
+ def test_wi_to_h
40
+
41
+ wi0 = OpenWFE::InFlowWorkItem.new
42
+ wi0.fei = new_fei
43
+
44
+ h = wi0.to_h
45
+ #p h
46
+
47
+ wi1 = OpenWFE::InFlowWorkItem.from_h(h)
48
+
49
+ assert_equal wi0.fei, wi1.fei
50
+ assert_equal wi0.attributes.length, wi1.attributes.length
51
+
52
+ wi2 = OpenWFE::workitem_from_h(h)
53
+
54
+ assert_equal wi0.fei, wi2.fei
55
+ assert_equal wi0.attributes.length, wi2.attributes.length
56
+ end
57
+
58
+ def test_any_from_h
59
+
60
+ li = OpenWFE::LaunchItem.new
61
+ li.workflow_definition_url = "http://www.openwfe.org/nada"
62
+ li.price = "USD 12"
63
+ li.customer = "Captain Nemo"
64
+
65
+ h = li.to_h
66
+ #p h
67
+
68
+ li1 = OpenWFE::workitem_from_h h
69
+
70
+ assert_kind_of OpenWFE::LaunchItem, li1
71
+ assert_equal "USD 12", li1.price
72
+ assert_equal 3, li1.attributes.size
73
+ end
74
+
75
+ end
@@ -0,0 +1,164 @@
1
+ #
2
+ # Testing OpenWFE
3
+ #
4
+ # John Mettraux at openwfe.org
5
+ #
6
+ # Sun Oct 29 15:41:44 JST 2006
7
+ #
8
+ # Kita Yokohama
9
+ #
10
+
11
+ require 'test/unit'
12
+
13
+ require 'openwfe/flowexpressionid'
14
+ require 'openwfe/engine/engine'
15
+ require 'openwfe/def'
16
+ require 'openwfe/participants/storeparticipants'
17
+
18
+
19
+ class HParticipantTest < Test::Unit::TestCase
20
+
21
+ def setup
22
+
23
+ @engine = Engine.new({ :definition_in_launchitem_allowed => true })
24
+ end
25
+
26
+ def teardown
27
+
28
+ @engine.stop if @engine
29
+ end
30
+
31
+ class HpDefinition0 < OpenWFE::ProcessDefinition
32
+ sequence do
33
+ participant :alice
34
+ participant :bob
35
+ end
36
+ end
37
+
38
+ def test_hp_0
39
+
40
+ @hpAlice = HashParticipant.new
41
+ @hpBob = HashParticipant.new
42
+
43
+ @engine.register_participant :alice, @hpAlice
44
+ @engine.register_participant :bob, @hpBob
45
+
46
+ do_test
47
+ end
48
+
49
+ def test_hp_1
50
+
51
+ #FileUtils.remove_dir "./work" if File.exist? "./work"
52
+ FileUtils.rm_rf "work" if File.exist? "./work"
53
+
54
+ @engine.application_context[:work_directory] = "./work"
55
+ @hpAlice = YamlParticipant.new("alice", @engine.application_context)
56
+ #@hpBob = YamlParticipant.new("bob", @engine.application_context)
57
+
58
+ @engine.register_participant(:alice, @hpAlice)
59
+ #@engine.register_participant(:bob, @hpBob)
60
+ @hpBob = @engine.register_participant(:bob, YamlParticipant)
61
+
62
+ do_test
63
+ end
64
+
65
+ def do_test
66
+
67
+ id = @engine.launch HpDefinition0
68
+
69
+ assert \
70
+ id.kind_of?(FlowExpressionId),
71
+ "engine.launch() doesn't return an instance of FlowExpressionId "+
72
+ "but of #{id.class}"
73
+
74
+ #puts id.to_s
75
+
76
+ #puts "alice count : #{@hpAlice.size}"
77
+ #puts "bob count : #{@hpBob.size}"
78
+
79
+ sleep 0.350
80
+
81
+ assert_equal 0, @hpBob.size
82
+ assert_equal 1, @hpAlice.size
83
+
84
+ wi = @hpAlice.list_workitems(id.workflow_instance_id)[0]
85
+
86
+ assert \
87
+ wi != nil,
88
+ "didn't find wi for flow #{id.workflow_instance_id}"
89
+
90
+ wi.message = "Hello bob !"
91
+
92
+ @hpAlice.forward(wi)
93
+
94
+ sleep 0.350
95
+
96
+ assert_equal 0, @hpAlice.size
97
+ assert_equal 1, @hpBob.size
98
+
99
+ wi = @hpBob.list_workitems(id.workflow_instance_id)[0]
100
+
101
+ assert_equal wi.message, "Hello bob !"
102
+
103
+ @hpBob.proceed wi
104
+
105
+ sleep 0.350
106
+
107
+ assert_equal 0, @hpAlice.size
108
+ assert_equal 0, @hpBob.size
109
+
110
+ assert_equal 1, @engine.get_expression_storage.size
111
+ end
112
+
113
+ def test_d_0
114
+
115
+ @hpAlice = HashParticipant.new
116
+ @hpBob = HashParticipant.new
117
+
118
+ @engine.register_participant :alice, @hpAlice
119
+ @engine.register_participant :bob, @hpBob
120
+
121
+ id = @engine.launch HpDefinition0
122
+
123
+ sleep 0.350
124
+
125
+ assert_equal 1, @hpAlice.size
126
+ assert_equal 0, @hpBob.size
127
+
128
+ wi = @hpAlice.first_workitem
129
+
130
+ @hpAlice.delegate wi, @hpBob
131
+
132
+ assert_equal 0, @hpAlice.size
133
+ assert_equal 1, @hpBob.size
134
+
135
+ wi = @hpBob.first_workitem
136
+
137
+ @hpBob.proceed wi
138
+
139
+ sleep 0.350
140
+
141
+ assert_equal 0, @hpAlice.size
142
+ assert_equal 1, @hpBob.size
143
+
144
+ wi = @hpBob.first_workitem
145
+
146
+ @hpBob.delegate wi.fei, @hpAlice
147
+
148
+ assert_equal 1, @hpAlice.size
149
+ assert_equal 0, @hpBob.size
150
+
151
+ wi = @hpAlice.first_workitem
152
+
153
+ @hpAlice.forward wi
154
+
155
+ sleep 0.350
156
+
157
+ assert_equal 0, @hpAlice.size
158
+ assert_equal 0, @hpBob.size
159
+
160
+ assert_equal 1, @engine.get_expression_storage.size
161
+ end
162
+
163
+ end
164
+