Sha256: 8d3a8e226611cb08475ef4903f5872d2a26e09f24c6198500e5bba7cbe59b855

Contents?: true

Size: 1.87 KB

Versions: 35

Compression:

Stored size: 1.87 KB

Contents

#!/usr/bin/env rspec
require 'spec_helper'

describe Puppet::Parser::AST::ResourceOverride do

  ast = Puppet::Parser::AST

  before :each do
    @compiler = Puppet::Parser::Compiler.new(Puppet::Node.new("mynode"))
    @scope = Puppet::Parser::Scope.new(:compiler => @compiler)
    @params = ast::ASTArray.new({})
    @compiler.stubs(:add_override)
  end

  it "should evaluate the overriden object" do
    klass = stub 'klass', :title => "title", :type => "type"
    object = mock 'object'
    object.expects(:safeevaluate).with(@scope).returns(klass)
    ast::ResourceOverride.new(:object => object, :parameters => @params ).evaluate(@scope)
  end

  it "should tell the compiler to override the resource with our own" do
    @compiler.expects(:add_override)

    klass = stub 'klass', :title => "title", :type => "one"
    object = mock 'object', :safeevaluate => klass
    ast::ResourceOverride.new(:object => object , :parameters => @params).evaluate(@scope)
  end

  it "should return the overriden resource directly when called with one item" do
    klass = stub 'klass', :title => "title", :type => "one"
    object = mock 'object', :safeevaluate => klass
    override = ast::ResourceOverride.new(:object => object , :parameters => @params).evaluate(@scope)
    override.should be_an_instance_of(Puppet::Parser::Resource)
    override.title.should == "title"
    override.type.should == "One"
  end

  it "should return an array of overriden resources when called with an array of titles" do
    klass1 = stub 'klass1', :title => "title1", :type => "one"
    klass2 = stub 'klass2', :title => "title2", :type => "one"

    object = mock 'object', :safeevaluate => [klass1,klass2]

    override = ast::ResourceOverride.new(:object => object , :parameters => @params).evaluate(@scope)
    override.should have(2).elements
    override.each {|o| o.should be_an_instance_of(Puppet::Parser::Resource) }
  end

end

Version data entries

35 entries across 35 versions & 3 rubygems

Version Path
puppet-2.7.26 spec/unit/parser/ast/resource_override_spec.rb
puppet-2.7.25 spec/unit/parser/ast/resource_override_spec.rb
puppet-2.7.24 spec/unit/parser/ast/resource_override_spec.rb
puppet-2.7.23 spec/unit/parser/ast/resource_override_spec.rb
puppet-2.7.22 spec/unit/parser/ast/resource_override_spec.rb
puppet-2.7.21 spec/unit/parser/ast/resource_override_spec.rb
puppet-2.7.20 spec/unit/parser/ast/resource_override_spec.rb
puppet-2.7.20.rc1 spec/unit/parser/ast/resource_override_spec.rb
librarian-puppet-0.9.4 vendor/gems/ruby/1.8/gems/puppet-2.7.18/spec/unit/parser/ast/resource_override_spec.rb
puppet-2.7.19 spec/unit/parser/ast/resource_override_spec.rb
supply_drop-0.11.0 examples/vendored-puppet/vendor/puppet-2.7.8/spec/unit/parser/ast/resource_override_spec.rb
librarian-puppet-0.9.3 vendor/gems/ruby/1.8/gems/puppet-2.7.18/spec/unit/parser/ast/resource_override_spec.rb
supply_drop-0.10.2 examples/vendored-puppet/vendor/puppet-2.7.8/spec/unit/parser/ast/resource_override_spec.rb
puppet-2.7.18 spec/unit/parser/ast/resource_override_spec.rb
supply_drop-0.10.1 examples/vendored-puppet/vendor/puppet-2.7.8/spec/unit/parser/ast/resource_override_spec.rb
supply_drop-0.10.0 examples/vendored-puppet/vendor/puppet-2.7.8/spec/unit/parser/ast/resource_override_spec.rb
puppet-2.7.17 spec/unit/parser/ast/resource_override_spec.rb
puppet-2.7.16 spec/unit/parser/ast/resource_override_spec.rb
puppet-2.7.14 spec/unit/parser/ast/resource_override_spec.rb
puppet-2.7.13 spec/unit/parser/ast/resource_override_spec.rb