Added and modified specs as appropriate to accompany model changes for graph-walking with history.
Signed-off-by: Nick Lewis <[email protected]> --- spec/models/node_spec.rb | 35 +++++++++++++++++++++++------------ 1 files changed, 23 insertions(+), 12 deletions(-) diff --git a/spec/models/node_spec.rb b/spec/models/node_spec.rb index 27ce369..167cf2d 100644 --- a/spec/models/node_spec.rb +++ b/spec/models/node_spec.rb @@ -191,7 +191,7 @@ describe Node do end it "should return the node's compiled parameters in the returned parameters list" do - @node.stubs(:compiled_parameters).returns({'a' => 'b', 'c' => 'd'}) + @node.stubs(:compiled_parameters).returns({'a' => ['b', Set[:foo]], 'c' => ['d', Set[:bar]]}) @node.configuration['parameters'].should == { 'a' => 'b', 'c' => 'd' } end end @@ -250,7 +250,7 @@ describe Node do describe "handling the node group graph" do before :each do - @node = Node.generate! + @node = Node.generate! :name => "Sample" @node_group_a = NodeGroup.generate! :name => "A" @node_group_b = NodeGroup.generate! :name => "B" @@ -267,17 +267,19 @@ describe Node do describe "when a group is included twice" do before :each do - @node_group_c = NodeGroup.generate! + @node_group_c = NodeGroup.generate! :name => "C" + @node_group_d = NodeGroup.generate! :name => "D" + @node_group_c.node_groups << @node_group_d @node_group_a.node_groups << @node_group_c @node_group_b.node_groups << @node_group_c end it "should return the correct graph" do - @node.node_group_graph.should == {...@node_group_a => {...@node_group_c => {}}, @node_group_b => {...@node_group_c => {}}} + @node.node_group_graph.should == {...@node_group_a => {...@node_group_c => {...@node_group_d => {}}}, @node_group_b => {...@node_group_c => {...@node_group_d => {}}}} end it "should return the correct list" do - @node.node_group_list.should == [...@node, @node_group_a, @node_group_c, @node_group_b] + @node.node_group_list.should == {...@node_group_a => s...@node], @node_group_c => s...@node_group_a,@node_group_b], @node_group_b => s...@node], @node_group_d => s...@node_group_c]} end end @@ -287,17 +289,15 @@ describe Node do @node.node_group_graph.should == { @node_group_a => { - @node_group_b => { - @node_group_a => {} }}, + @node_group_b => {} }, @node_group_b => { - @node_group_a => { - @node_group_b => {} }}} + @node_group_a => {} }} end describe "handling parameters in the graph" do it "should return the compiled parameters" do - @node.compiled_parameters.should == {'foo' => '1', 'bar' => '2'} + @node.compiled_parameters.should == {'foo' => ['1', s...@node_group_a]], 'bar' => ['2', s...@node_group_b]]} end it "should ensure that parameters nearer to the node are retained" do @@ -305,7 +305,7 @@ describe Node do @node_group_a1.parameters << Parameter.create(:key => 'foo', :value => '2') @node_group_a.node_groups << @node_group_a1 - @node.compiled_parameters.should == {'foo' => '1', 'bar' => '2'} + @node.compiled_parameters.should == {'foo' => ['1', s...@node_group_a]], 'bar' => ['2', s...@node_group_b]]} end it "should raise an error if there are parameter conflicts among children" do @@ -338,7 +338,18 @@ describe Node do it "should include parameters of the node itself" do @node.parameters << Parameter.create(:key => "node_parameter", :value => "exist") - @node.compiled_parameters["node_parameter"].should == "exist" + @node.compiled_parameters["node_parameter"].first.should == "exist" + end + + it "should retain the history of its parameters" do + @node_group_c = NodeGroup.generate! :name => "C" + @node_group_d = NodeGroup.generate! :name => "D" + @node_group_c.parameters << Parameter.generate(:key => 'foo', :value => '3') + @node_group_d.parameters << Parameter.generate(:key => 'foo', :value => '4') + @node_group_a.node_groups << @node_group_c + @node_group_a.node_groups << @node_group_d + + @node.compiled_parameters.should == {'foo' => ['1', s...@node_group_a]], 'bar' => ['2',s...@node_group_b]]} end end end -- 1.7.2.1 -- You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en.
