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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
if __FILE__ == $0
$:.unshift '..'
$:.unshift '../../lib'
$puppetbase = "../.."
end
require 'puppet/type'
require 'puppettest'
require 'test/unit'
class TestState < Test::Unit::TestCase
include TestPuppet
def newinst(state)
inst = nil
assert_nothing_raised {
return state.new(:parent => nil)
}
end
def newstate(name = :fakestate)
assert_nothing_raised {
state = Class.new(Puppet::State) do
@name = :fakeparam
end
state.initvars
return state
}
end
def test_newvalue
state = newstate()
# These are bogus because they don't define events. :/
assert_nothing_raised {
state.newvalue(:one) do
@is = 1
end
}
assert_nothing_raised {
state.newvalue("two") do
@is = 2
end
}
inst = newinst(state)
assert_nothing_raised {
inst.should = "one"
}
assert_equal(:one, inst.should)
ret = nil
assert_nothing_raised { inst.set_one }
assert_equal(1, inst.is)
assert_nothing_raised {
inst.should = :two
}
assert_equal(:two, inst.should)
assert_nothing_raised { inst.set_two }
assert_equal(2, inst.is)
end
def test_newstatevaluewithregexes
state = newstate()
assert_nothing_raised {
state.newvalue(/^\w+$/) do
@is = self.should.upcase
return :regex_matched
end
}
inst = newinst(state)
assert_nothing_raised {
inst.should = "yayness"
}
assert_equal("yayness", inst.should)
assert_nothing_raised {
inst.sync
}
assert_equal("yayness".upcase, inst.is)
end
def test_newvalue_event_option
state = newstate()
assert_nothing_raised do
state.newvalue(:myvalue, :event => :fake_valued) do
@is = :valued
end
state.newvalue(:other, :event => "fake_other") do
@is = :valued
end
end
inst = newinst(state)
assert_nothing_raised {
inst.should = :myvalue
}
ret = nil
assert_nothing_raised {
ret = inst.sync
}
assert_equal(:fake_valued, ret,
"Event did not get returned correctly")
assert_nothing_raised {
inst.should = :other
}
assert_nothing_raised {
ret = inst.sync
}
assert_equal(:fake_other, ret,
"Event did not get returned correctly")
end
end
# $Id$
|