forked from jmettraux/ruote
-
Notifications
You must be signed in to change notification settings - Fork 1
/
wi_test.rb
71 lines (52 loc) · 1.77 KB
/
wi_test.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#
# Testing OpenWFE
#
# John Mettraux at openwfe.org
#
require 'rubygems'
require 'test/unit'
require 'openwfe/workitem'
require 'openwfe/util/dollar'
class WiTest < Test::Unit::TestCase
def test_0
wi = OpenWFE::InFlowWorkItem.new
wi.attributes = {
"field0" => "value0",
"field1" => [ 0, 1, 2, 3, [ "a", "b", "c" ]],
"field2" => {
"a" => "AA",
"b" => "BB",
"c" => [ "C0", "C1", "C3" ]
},
"field3" => 3,
"field99" => nil
}
assert_equal 3, wi.lookup_attribute("field3")
assert_equal 1, wi.lookup_attribute("field1.1")
assert_equal "b", wi.lookup_attribute("field1.4.1")
assert_equal "C1", wi.lookup_attribute("field2.c.1")
assert_equal nil, wi.lookup_attribute("field4")
assert_equal nil, wi.lookup_attribute("field4.2")
assert_equal nil, wi.lookup_attribute("field99")
assert_equal nil, wi.lookup_attribute("field99.9")
assert_equal false, wi.has_attribute?("field4")
assert_equal false, wi.has_attribute?("field4.2")
assert_equal true, wi.has_attribute?("field99")
assert_equal false, wi.has_attribute?("field99.9")
text = "value is '${f:field2.c.1}'"
text = OpenWFE::dosub text, nil, wi
assert_equal "value is 'C1'", text
# setting attributes
wi.set_attribute("field2.a", 42)
wi.set_attribute("field99", "f99")
assert_equal 42, wi.lookup_attribute("field2.a")
assert_equal "f99", wi.lookup_attribute("field99")
# unsetting attributes
wi.unset_attribute "field99"
assert_nil wi.lookup_attribute("field99")
wi.unset_attribute "field1.4"
assert_equal [ 0, 1, 2, 3 ], wi.lookup_attribute("field1")
wi.unset_attribute "field2.c"
assert_equal({ "a" => 42, "b" => "BB" }, wi.lookup_attribute("field2"))
end
end