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,155 @@
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 'rutest_utils'
13
+
14
+ require 'openwfe/expressions/condition'
15
+
16
+ #
17
+ # testing expression conditions
18
+ #
19
+
20
+ class ConditionTest < Test::Unit::TestCase
21
+ include OpenWFE::ConditionMixin
22
+
23
+ def setup
24
+ @debug = false
25
+ end
26
+
27
+ #def teardown
28
+ #end
29
+
30
+ def test_0
31
+
32
+ #@debug = true
33
+
34
+ assert_t "true"
35
+ assert_F "false"
36
+
37
+ assert_t "1 == 1"
38
+
39
+ assert_t "'a' == 'a'"
40
+ assert_t '"a" == "a"'
41
+
42
+ assert_t "a == a"
43
+ assert_F "'a' == a"
44
+
45
+ #assert_t "!= ''"
46
+
47
+ assert_F " == 1 "
48
+ assert_F " == 1"
49
+ assert_F "== 1"
50
+ end
51
+
52
+ def test_0b
53
+
54
+ #@debug = true
55
+
56
+ assert_t "a"
57
+ assert_F ""
58
+ end
59
+
60
+ def test_1
61
+
62
+ #@debug = true
63
+
64
+ assert_set_t "1 is set"
65
+ assert_set_t "1 set"
66
+ assert_set_F "1 is not set"
67
+ assert_set_F "1 not set"
68
+
69
+ assert_set_t " is not set"
70
+ assert_set_t " not set"
71
+ assert_set_F " is set"
72
+ assert_set_F " set"
73
+
74
+ assert_t "1 is set"
75
+ assert_t "1 set"
76
+ assert_F "1 is not set"
77
+ assert_F "1 not set"
78
+
79
+ assert_t " is not set"
80
+ assert_t " not set"
81
+ assert_F " is set"
82
+ assert_F " set"
83
+ end
84
+
85
+ def test_2
86
+
87
+ #@debug = true
88
+
89
+ $my_owferu_var = nil
90
+
91
+ #assert_F "f = File.open('toto', 'w'); f.puts('nada'); f.close"
92
+ assert_t "$my_owferu_var = 3; $my_owferu_var = 4"
93
+
94
+ target = on_jruby? ? 4 : nil
95
+ assert_equal target, $my_owferu_var
96
+
97
+ #assert_F "fe.reply('a')"
98
+ assert_t "fe.reply('a')"
99
+ end
100
+
101
+ protected
102
+
103
+ #
104
+ # just for test_2
105
+ #
106
+ def reply (m)
107
+ @fei = nil
108
+ end
109
+
110
+ def assert_t (s, inv=false)
111
+
112
+ r = eval_condition(s, nil)
113
+
114
+ #puts "raw r is _#{r}_" if @debug
115
+
116
+ r = (not r) if inv
117
+
118
+ assert r, ">#{s}< should have evaluated to _#{not inv}_"
119
+ end
120
+
121
+ def assert_F (s)
122
+
123
+ assert_t s, true
124
+ end
125
+
126
+ def assert_set_t (s, inv=false)
127
+
128
+ r = eval_set s
129
+ r = (not r) if inv
130
+
131
+ assert r, ">#{s}< should have evaluated to _#{not inv}_"
132
+ end
133
+
134
+ def assert_set_F (s)
135
+
136
+ assert_set_t s, true
137
+ end
138
+
139
+ #def evalc (s)
140
+ # eval_condition(s, nil)
141
+ #end
142
+
143
+ def lookup_attribute (attname, workitem)
144
+
145
+ attname
146
+ end
147
+
148
+ def ldebug (&block)
149
+
150
+ # don't do a thing
151
+ return unless @debug
152
+
153
+ puts " " + block.call
154
+ end
155
+ end
@@ -0,0 +1,12 @@
1
+
2
+ a = "A"
3
+ b = 2
4
+
5
+ require 'openwfe/util/irb'
6
+
7
+ OpenWFE::trap_int_irb(binding())
8
+
9
+ sleep(30)
10
+
11
+ puts "out"
12
+
@@ -0,0 +1,15 @@
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 'rubygems'
10
+
11
+ require 'ft_20_cron'
12
+ require 'ft_21_cron'
13
+ require 'ft_21b_cron_pause'
14
+ require 'restart_cron_test'
15
+
@@ -0,0 +1,87 @@
1
+
2
+ #
3
+ # Testing OpenWFE
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Mon Oct 15 08:42:08 JST 2007
8
+ #
9
+
10
+ require 'rubygems'
11
+
12
+ require 'test/unit'
13
+
14
+ require 'openwfe/expool/parser'
15
+
16
+ #
17
+ # testing definition.get_description
18
+ #
19
+
20
+ class DescriptionTest < Test::Unit::TestCase
21
+
22
+ #def setup
23
+ #end
24
+
25
+ #def teardown
26
+ #end
27
+
28
+ DEF0 = """
29
+ class MyDef0 < OpenWFE::ProcessDefinition
30
+ description 'not much to say'
31
+ sequence do
32
+ end
33
+ end
34
+ """
35
+
36
+ def test_0
37
+
38
+ #rep = OpenWFE::SimpleExpRepresentation.from_code DEF0
39
+ rep = OpenWFE::DefParser.parse_string DEF0
40
+
41
+ assert_equal(
42
+ "not much to say",
43
+ OpenWFE::ExpressionTree.get_description(rep))
44
+ end
45
+
46
+ DEF1 = <<-EOS
47
+ <process-definition name="x" revision="y">
48
+ <description>
49
+ just a tiny process
50
+ </description>
51
+ <participant ref="nada" />
52
+ </process-definition>
53
+ EOS
54
+
55
+ def test_1
56
+
57
+ rep = OpenWFE::DefParser.parse_string DEF1
58
+
59
+ assert_equal(
60
+ "just a tiny process",
61
+ OpenWFE::ExpressionTree.get_description(rep))
62
+ end
63
+
64
+ class Test2 < OpenWFE::ProcessDefinition
65
+ # no description
66
+ sequence do
67
+ end
68
+ end
69
+ class Test2b < OpenWFE::ProcessDefinition
70
+ # no description
71
+ sequence do
72
+ end
73
+ define "sub0" do
74
+ end
75
+ end
76
+
77
+ def test_2
78
+
79
+ tree = OpenWFE::DefParser.parse Test2
80
+ assert_nil OpenWFE::ExpressionTree.get_description(tree)
81
+
82
+ tree = OpenWFE::DefParser.parse Test2b
83
+ #p tree
84
+ assert_nil OpenWFE::ExpressionTree.get_description(tree)
85
+ end
86
+ end
87
+
data/test/eno_test.rb ADDED
@@ -0,0 +1,76 @@
1
+
2
+ #
3
+ # Testing OpenWFEru
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Tue Jan 2 13:14:37 JST 2007
8
+ #
9
+
10
+ require 'test/unit'
11
+
12
+ require 'openwfe/workitem'
13
+ require 'openwfe/engine/engine'
14
+ require 'openwfe/def'
15
+ require 'openwfe/participants/participants'
16
+ require 'openwfe/participants/enoparticipants'
17
+
18
+ require 'rubygems'
19
+ require 'mailtrap'
20
+
21
+
22
+ class EnoTest < Test::Unit::TestCase
23
+
24
+ #def setup
25
+ #end
26
+
27
+ #def teardown
28
+ #end
29
+
30
+ #
31
+ # Test 0
32
+ #
33
+
34
+ class TestDefinition0 < OpenWFE::ProcessDefinition
35
+ email_notification_participant
36
+ end
37
+
38
+ def test_eno
39
+
40
+ mailfile = "work/mailtrap.txt"
41
+
42
+ FileUtils.mkdir "work" unless File.exist?("work")
43
+ FileUtils.rm mailfile if File.exist?(mailfile)
44
+ Thread.new do
45
+ Mailtrap.new 'localhost', 2525, true, "work/mailtrap.txt"
46
+ end
47
+
48
+ engine = Engine.new
49
+
50
+ eno = OpenWFE::MailParticipant.new(
51
+ :smtp_server => "localhost",
52
+ :smtp_port => 2525,
53
+ :from_address => "eno@outoftheblue.co.jp"
54
+ ) do
55
+
56
+ s = ""
57
+ s << "Subject: test 0\n"
58
+ s << "\n"
59
+ s << "konnichiwa. #{Time.now.to_s}\n\n"
60
+
61
+ s
62
+ end
63
+
64
+ engine.register_participant("email_notification_participant", eno)
65
+
66
+ li = OpenWFE::LaunchItem.new TestDefinition0
67
+
68
+ li.email_target = 'john@localhost'
69
+
70
+ fei = engine.launch li
71
+ engine.wait_for fei
72
+
73
+ assert_equal 1, OpenWFE.grep("konnichiwa", mailfile).size
74
+ end
75
+ end
76
+
@@ -0,0 +1,54 @@
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
+ require 'openwfe/expressions/expressionmap'
12
+
13
+ #
14
+ # testing misc things
15
+ #
16
+
17
+ class ExpmapTest < Test::Unit::TestCase
18
+
19
+ #def setup
20
+ #end
21
+
22
+ #def teardown
23
+ #end
24
+
25
+ def test_expmap_0
26
+
27
+ em = OpenWFE::ExpressionMap.new
28
+
29
+ #puts em.to_s
30
+
31
+ assert_equal \
32
+ em.get_class(:sequence),
33
+ OpenWFE::SequenceExpression
34
+
35
+ assert_equal \
36
+ em.get_class(:sequence),
37
+ em.get_class("sequence")
38
+
39
+ assert_not_equal \
40
+ em.get_class(:loop),
41
+ em.get_class(:cursor)
42
+
43
+ assert \
44
+ em.get_class('process-definition') == OpenWFE::DefineExpression,
45
+ "class of 'process-definition' should be DefineExpression"
46
+ assert \
47
+ em.is_definition?('process-definition'),
48
+ "process-definition should be considered as a definition"
49
+ assert \
50
+ em.is_definition?(:process_definition),
51
+ "process-definition should be considered as a definition (2)"
52
+ end
53
+
54
+ end
Binary file
@@ -0,0 +1,62 @@
1
+
2
+ #
3
+ # Testing OpenWFE
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+ # Thu Nov 1 19:33:45 JST 2007
8
+ #
9
+
10
+ require 'rubygems'
11
+
12
+ require 'test/unit'
13
+ require 'openwfe/expressions/flowexpression'
14
+
15
+
16
+ class FeLookupAttTest < Test::Unit::TestCase
17
+
18
+ #def setup
19
+ #end
20
+
21
+ #def teardown
22
+ #end
23
+
24
+ def test_0
25
+
26
+ attributes = {
27
+ "a" => true,
28
+ "b" => false,
29
+ "A" => "a, b, c,d,${e},f",
30
+ "B" => [ 1, 2, 3, "${a}" ]
31
+ }
32
+
33
+ fe = OpenWFE::FlowExpression.new_exp nil, nil, nil, nil, attributes
34
+
35
+ class << fe
36
+ def lookup_variable (varname)
37
+ varname * 2
38
+ end
39
+ end
40
+
41
+ assert_equal true, fe.lookup_boolean_attribute("a", nil)
42
+ assert_equal true, fe.lookup_boolean_attribute(:a, nil)
43
+ assert_equal true, fe.lookup_boolean_attribute("a", nil, false)
44
+ assert_equal true, fe.lookup_boolean_attribute(:a, nil, false)
45
+ assert_equal true, fe.lookup_boolean_attribute("a", nil, true)
46
+ assert_equal true, fe.lookup_boolean_attribute(:a, nil, true)
47
+
48
+ assert_equal false, fe.lookup_boolean_attribute("b", nil)
49
+ assert_equal false, fe.lookup_boolean_attribute(:b, nil)
50
+ assert_equal false, fe.lookup_boolean_attribute("b", nil, false)
51
+ assert_equal false, fe.lookup_boolean_attribute(:b, nil, false)
52
+ assert_equal false, fe.lookup_boolean_attribute("b", nil, true)
53
+ assert_equal false, fe.lookup_boolean_attribute(:b, nil, true)
54
+
55
+ assert_equal %w{ a b c d ee f }, fe.lookup_array_attribute('A', nil)
56
+ assert_equal [ 1, 2, 3, "aa" ], fe.lookup_array_attribute('B', nil)
57
+
58
+ # a fat but fast test
59
+ end
60
+
61
+ end
62
+