openwferu 0.9.8 → 0.9.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. data/README.txt +4 -5
  2. data/lib/openwfe/engine/engine.rb +14 -14
  3. data/lib/openwfe/expool/expressionpool.rb +60 -45
  4. data/lib/openwfe/expool/expstorage.rb +1 -1
  5. data/lib/openwfe/expressions/condition.rb +47 -34
  6. data/lib/openwfe/expressions/environment.rb +29 -7
  7. data/lib/openwfe/expressions/expressionmap.rb +16 -1
  8. data/lib/openwfe/expressions/fe_concurrence.rb +142 -55
  9. data/lib/openwfe/expressions/fe_cursor.rb +146 -41
  10. data/lib/openwfe/expressions/fe_define.rb +52 -35
  11. data/lib/openwfe/expressions/fe_filter.rb +129 -0
  12. data/lib/openwfe/expressions/fe_filter_definition.rb +170 -0
  13. data/lib/openwfe/expressions/fe_iterator.rb +23 -10
  14. data/lib/openwfe/expressions/fe_losfor.rb +7 -6
  15. data/lib/openwfe/expressions/fe_participant.rb +19 -9
  16. data/lib/openwfe/expressions/fe_raw.rb +11 -16
  17. data/lib/openwfe/expressions/fe_save.rb +225 -0
  18. data/lib/openwfe/expressions/fe_sequence.rb +15 -10
  19. data/lib/openwfe/expressions/fe_subprocess.rb +0 -6
  20. data/lib/openwfe/expressions/fe_value.rb +7 -19
  21. data/lib/openwfe/expressions/filter.rb +104 -0
  22. data/lib/openwfe/expressions/flowexpression.rb +102 -36
  23. data/lib/openwfe/expressions/merge.rb +80 -0
  24. data/lib/openwfe/expressions/raw_prog.rb +21 -18
  25. data/lib/openwfe/filterdef.rb +259 -0
  26. data/lib/openwfe/flowexpressionid.rb +36 -3
  27. data/lib/openwfe/participants/participants.rb +7 -1
  28. data/lib/openwfe/rest/xmlcodec.rb +1 -1
  29. data/lib/openwfe/util/dollar.rb +4 -2
  30. data/lib/openwfe/util/scheduler.rb +3 -1
  31. data/lib/openwfe/util/sqs.rb +1 -2
  32. data/lib/openwfe/utils.rb +13 -0
  33. data/lib/openwfe/version.rb +1 -1
  34. data/lib/openwfe/workitem.rb +1 -1
  35. data/test/filter_test.rb +109 -0
  36. data/test/flowtestbase.rb +12 -1
  37. data/test/ft_11_ppd.rb +13 -1
  38. data/test/ft_11b_ppd.rb +45 -0
  39. data/test/ft_17_condition.rb +1 -1
  40. data/test/ft_2b_concurrence.rb +24 -0
  41. data/test/ft_2c_concurrence.rb +22 -1
  42. data/test/ft_3_equals.rb +26 -0
  43. data/test/ft_42_environments.rb +78 -0
  44. data/test/ft_43_pat10.rb +109 -0
  45. data/test/ft_44_save.rb +81 -0
  46. data/test/ft_44b_restore.rb +159 -0
  47. data/test/ft_45_citerator.rb +104 -0
  48. data/test/ft_46_pparams.rb +62 -0
  49. data/test/ft_47_filter.rb +165 -0
  50. data/test/ft_48_fe_filter.rb +91 -0
  51. data/test/ft_49_condition.rb +65 -0
  52. data/test/ft_50_xml_attribute.rb +89 -0
  53. data/test/ft_9_cursor.rb +36 -6
  54. data/test/ft_tests.rb +11 -1
  55. data/test/misc_test.rb +8 -0
  56. data/test/rake_qtest.rb +2 -2
  57. data/test/rutest_utils.rb +6 -1
  58. data/test/sec_test.rb +2 -2
  59. metadata +20 -2
@@ -0,0 +1,109 @@
1
+
2
+ #
3
+ # Testing OpenWFEru
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+
8
+ require 'flowtestbase'
9
+ require 'openwfe/def'
10
+
11
+ include OpenWFE
12
+
13
+
14
+ class FlowTest43 < Test::Unit::TestCase
15
+ include FlowTestBase
16
+
17
+ #def setup
18
+ #end
19
+
20
+ #def teardown
21
+ #end
22
+
23
+
24
+ #
25
+ # Test 0
26
+ #
27
+
28
+ class TestCase43a0 < ProcessDefinition
29
+ def initialize (jump)
30
+ super()
31
+ @jump = jump
32
+ end
33
+ def make
34
+ process_definition :name => "jump", :revision => "0" do
35
+ sequence do
36
+ set :field => "__cursor_command__", :value => "jump #{@jump}"
37
+ cursor do
38
+ _print "0"
39
+ _print "1"
40
+ _print "2"
41
+ end
42
+ _print "3"
43
+ end
44
+ end
45
+ end
46
+ end
47
+
48
+ #def xxxx_0
49
+ def test_0
50
+ dotest(
51
+ TestCase43a0.new(1),
52
+ """
53
+ 1
54
+ 2
55
+ 3
56
+ """.strip)
57
+ end
58
+
59
+ #def xxxx_1
60
+ def test_1
61
+ dotest(
62
+ TestCase43a0.new(2),
63
+ """
64
+ 2
65
+ 3
66
+ """.strip)
67
+ end
68
+
69
+ #def xxxx_2
70
+ def test_2
71
+ dotest(
72
+ TestCase43a0.new(2000),
73
+ """
74
+ 2
75
+ 3
76
+ """.strip)
77
+ end
78
+
79
+
80
+ #
81
+ # Test 3
82
+ #
83
+
84
+ class TestCase43a3 < ProcessDefinition
85
+ sequence do
86
+ set :field => "__cursor_command__", :value => "jump 2"
87
+ cursor do
88
+ _print "0"
89
+ skip :step => 2
90
+ jump :step => 0
91
+ _print "1"
92
+ end
93
+ _print "2"
94
+ end
95
+ end
96
+
97
+ #def xxxx_3
98
+ def test_3
99
+ dotest(
100
+ TestCase43a3,
101
+ """
102
+ 0
103
+ 1
104
+ 2
105
+ """.strip)
106
+ end
107
+
108
+ end
109
+
@@ -0,0 +1,81 @@
1
+
2
+ #
3
+ # Testing OpenWFEru
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+
8
+ require 'flowtestbase'
9
+ require 'openwfe/def'
10
+
11
+ include OpenWFE
12
+
13
+
14
+ class FlowTest44 < Test::Unit::TestCase
15
+ include FlowTestBase
16
+
17
+ #def setup
18
+ #end
19
+
20
+ #def teardown
21
+ #end
22
+
23
+
24
+ #
25
+ # Test 0
26
+ #
27
+
28
+ class TestCase44a0 < ProcessDefinition
29
+ sequence do
30
+ set :field => "f", :value => "v"
31
+ save :to_field => "saved"
32
+ #pp_workitem
33
+ _print "${f:saved.f}"
34
+ end
35
+ end
36
+
37
+ #def xxxx_0
38
+ def test_0
39
+ dotest(
40
+ TestCase44a0,
41
+ """
42
+ v
43
+ """.strip)
44
+ end
45
+
46
+
47
+ #
48
+ # Test 1
49
+ #
50
+
51
+ class TestCase44a1 < ProcessDefinition
52
+ sequence do
53
+
54
+ set :field => "f", :value => "field_value"
55
+ save :to_variable => "v"
56
+
57
+ #pp_workitem
58
+ #_print "${r:fexp.lookup_variable('v').f}"
59
+ #
60
+ # doesn't work in case of ptest
61
+
62
+ print_var
63
+ end
64
+ end
65
+
66
+ #def xxxx_1
67
+ def test_1
68
+
69
+ @engine.register_participant :print_var do |fexp, wi|
70
+ @tracer << fexp.lookup_variable('v').f.to_s
71
+ end
72
+
73
+ dotest(
74
+ TestCase44a1,
75
+ """
76
+ field_value
77
+ """.strip)
78
+ end
79
+
80
+ end
81
+
@@ -0,0 +1,159 @@
1
+
2
+ #
3
+ # Testing OpenWFEru
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+
8
+ require 'flowtestbase'
9
+ require 'openwfe/def'
10
+
11
+ include OpenWFE
12
+
13
+
14
+ class FlowTest44b < Test::Unit::TestCase
15
+ include FlowTestBase
16
+
17
+ #def setup
18
+ #end
19
+
20
+ #def teardown
21
+ #end
22
+
23
+
24
+ #
25
+ # Test 0
26
+ #
27
+
28
+ class TestCase44b0 < ProcessDefinition
29
+ sequence do
30
+ set :field => "f", :value => "v"
31
+ save :to_field => "saved"
32
+ #pp_workitem
33
+ _print "${f:saved.f}"
34
+ restore :from_field => "saved"
35
+ _print "${f:saved.f}"
36
+ _print "${f:f}"
37
+ end
38
+ end
39
+
40
+ #def xxxx_0
41
+ def test_0
42
+ dotest(
43
+ TestCase44b0,
44
+ """
45
+ v
46
+
47
+ v
48
+ """.strip)
49
+ end
50
+
51
+
52
+ #
53
+ # Test 1
54
+ #
55
+
56
+ class TestCase44b1 < ProcessDefinition
57
+ sequence do
58
+ set :field => "f", :value => "field_value"
59
+ save :to_variable => "v"
60
+ #pp_workitem
61
+ set :field => "f", :value => "field_value_x"
62
+ _print "${f:f}"
63
+ restore :from_variable => "v"
64
+ _print "${f:f}"
65
+ end
66
+ end
67
+
68
+ #def xxxx_1
69
+ def test_1
70
+ dotest(
71
+ TestCase44b1,
72
+ """
73
+ field_value_x
74
+ field_value
75
+ """.strip)
76
+ end
77
+
78
+
79
+ #
80
+ # Test 2
81
+ #
82
+
83
+ class TestCase44b2 < ProcessDefinition
84
+ sequence do
85
+ set :field => "f", :value => "field_value"
86
+ save :to_variable => "v"
87
+ restore :from_variable => :v, :to_field => :f1
88
+ #pp_workitem
89
+ _print "${f:f1.f}"
90
+ end
91
+ end
92
+
93
+ #def xxxx_2
94
+ def test_2
95
+ dotest(
96
+ TestCase44b2,
97
+ """
98
+ field_value
99
+ """.strip)
100
+ end
101
+
102
+
103
+ #
104
+ # Test 3
105
+ #
106
+
107
+ class TestCase44b3 < ProcessDefinition
108
+ sequence do
109
+ set :field => "f0", :value => "value_a"
110
+ save :to_variable => "v"
111
+ set :field => "f0", :value => "value_aa"
112
+ set :field => "f1", :value => "value_b"
113
+ restore :from_variable => :v, :merge_lead => :current
114
+ #pp_workitem
115
+ _print "${f:f0}"
116
+ _print "${f:f1}"
117
+ end
118
+ end
119
+
120
+ #def xxxx_3
121
+ def test_3
122
+ dotest(
123
+ TestCase44b3,
124
+ """
125
+ value_aa
126
+ value_b
127
+ """.strip)
128
+ end
129
+
130
+
131
+ #
132
+ # Test 4
133
+ #
134
+
135
+ class TestCase44b4 < ProcessDefinition
136
+ sequence do
137
+ set :field => "f0", :value => "value_a"
138
+ save :to_variable => "v"
139
+ set :field => "f0", :value => "value_aa"
140
+ set :field => "f1", :value => "value_b"
141
+ restore :from_variable => :v, :merge_lead => :restored
142
+ #pp_workitem
143
+ _print "${f:f0}"
144
+ _print "${f:f1}"
145
+ end
146
+ end
147
+
148
+ #def xxxx_4
149
+ def test_4
150
+ dotest(
151
+ TestCase44b4,
152
+ """
153
+ value_a
154
+ value_b
155
+ """.strip)
156
+ end
157
+
158
+ end
159
+
@@ -0,0 +1,104 @@
1
+
2
+ #
3
+ # Testing OpenWFEru
4
+ #
5
+ # John Mettraux at openwfe.org
6
+ #
7
+
8
+ require 'flowtestbase'
9
+ require 'openwfe/def'
10
+
11
+ include OpenWFE
12
+
13
+
14
+ class FlowTest45 < Test::Unit::TestCase
15
+ include FlowTestBase
16
+
17
+ #def setup
18
+ #end
19
+
20
+ #def teardown
21
+ #end
22
+
23
+
24
+ #
25
+ # Test 0
26
+ #
27
+
28
+ class TestCase45a0 < ProcessDefinition
29
+ sequence do
30
+ concurrent_iterator :on_value => "1, 2", :to_variable => "v" do
31
+ _print "${r:fei.sub_instance_id} - ${v}"
32
+ end
33
+ _print "done."
34
+ end
35
+ end
36
+
37
+ #def xxxx_0
38
+ def test_0
39
+ dotest(
40
+ TestCase45a0,
41
+ """
42
+ .0 - 1
43
+ .1 - 2
44
+ done.
45
+ """.strip)
46
+ end
47
+
48
+
49
+ #
50
+ # Test 1
51
+ #
52
+
53
+ class TestCase45a1 < ProcessDefinition
54
+ sequence do
55
+ concurrent_iterator :on_value => "1, 2", :to_field => "f" do
56
+ _print "${r:fei.sub_instance_id} - ${f:f}"
57
+ end
58
+ _print "done."
59
+ end
60
+ end
61
+
62
+ #def xxxx_1
63
+ def test_1
64
+ dotest(
65
+ TestCase45a1,
66
+ """
67
+ .0 - 1
68
+ .1 - 2
69
+ done.
70
+ """.strip)
71
+ end
72
+
73
+ #
74
+ # Test 2
75
+ #
76
+
77
+ class TestCase45a2 < ProcessDefinition
78
+ sequence do
79
+ concurrent_iterator \
80
+ :on_value => "1, 2",
81
+ :to_field => "f",
82
+ :over_if => "${f:__ip__} == 0" do
83
+
84
+ _print "${r:fei.sub_instance_id} - ${f:f}"
85
+ end
86
+ _print "done."
87
+ end
88
+ end
89
+
90
+ # test 'parked' for now
91
+
92
+ def xxxx_2
93
+ #def test_2
94
+ dotest(
95
+ TestCase45a2,
96
+ """
97
+ .0 - 1
98
+ .1 - 2
99
+ done.
100
+ """.strip)
101
+ end
102
+
103
+ end
104
+