summaryrefslogtreecommitdiffstats
path: root/spec/integration/parser/functions/require.rb
blob: fa1c1bcbb4839d094a381697d74887bf817dcebf (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
#!/usr/bin/env ruby

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

describe "The require function" do
    before :each do
        @node = Puppet::Node.new("mynode")
        @compiler = Puppet::Parser::Compiler.new(@node)

        @compiler.send(:evaluate_main)
        @compiler.catalog.client_version = "0.25"
        @scope = @compiler.topscope
        # preload our functions
        Puppet::Parser::Functions.function(:include)
        Puppet::Parser::Functions.function(:require)
    end

    it "should add a dependency between the 'required' class and our class" do
        @compiler.known_resource_types.add Puppet::Resource::Type.new(:hostclass, "requiredclass")

        @scope.function_require("requiredclass")
        @scope.resource["require"].should_not be_nil
        ref = @scope.resource["require"].shift
        ref.type.should == "Class"
        ref.title.should == "Requiredclass"
    end

    it "should queue relationships between the 'required' class and our classes" do
        @parser.newclass("requiredclass1")
        @parser.newclass("requiredclass2")

        @scope.function_require("requiredclass1")
        @scope.function_require("requiredclass2")

        @scope.resource["require"].should_not be_nil

        (ref1,ref2) = @scope.resource["require"]
        ref1.type.should == "Class"
        ref1.title.should == "requiredclass1"
        ref2.type.should == "Class"
        ref2.title.should == "requiredclass2"
    end

end