summaryrefslogtreecommitdiffstats
path: root/spec/unit/parser/ast/collection_spec.rb
blob: c141bd708da48df3f111bcba8eaa8c3bfb4276b4 (plain)
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
#!/usr/bin/env ruby

require File.dirname(__FILE__) + '/../../../spec_helper'

describe Puppet::Parser::AST::Collection do
    before :each do
        @scope = stub_everything 'scope'
        @compiler = stub_everything 'compile'
        @scope.stubs(:compiler).returns(@compiler)

        @overrides = stub_everything 'overrides'
        @overrides.stubs(:is_a?).with(Puppet::Parser::AST).returns(true)

    end

    it "should evaluate its query" do
        query = mock 'query'
        collection = Puppet::Parser::AST::Collection.new :query => query, :form => :virtual

        query.expects(:safeevaluate).with(@scope)

        collection.evaluate(@scope)
    end

    it "should instantiate a Collector for this type" do
        collection = Puppet::Parser::AST::Collection.new :form => :virtual, :type => "test"

        Puppet::Parser::Collector.expects(:new).with(@scope, "test", nil, nil, :virtual)

        collection.evaluate(@scope)
    end

    it "should tell the compiler about this collector" do
        collection = Puppet::Parser::AST::Collection.new :form => :virtual, :type => "test"
        Puppet::Parser::Collector.stubs(:new).returns("whatever")

        @compiler.expects(:add_collection).with("whatever")

        collection.evaluate(@scope)
    end

    it "should evaluate overriden paramaters" do
        collector = stub_everything 'collector'
        collection = Puppet::Parser::AST::Collection.new :form => :virtual, :type => "test", :override => @overrides
        Puppet::Parser::Collector.stubs(:new).returns(collector)

        @overrides.expects(:safeevaluate).with(@scope)

        collection.evaluate(@scope)
    end

    it "should tell the collector about overrides" do
        collector = mock 'collector'
        collection = Puppet::Parser::AST::Collection.new :form => :virtual, :type => "test", :override => @overrides
        Puppet::Parser::Collector.stubs(:new).returns(collector)

        collector.expects(:add_override)

        collection.evaluate(@scope)
    end


end