200
200
@compiler.catalog.should be_edge(foo_stage, resource)
203
it "should allow edges to propagate multiple levels down the scope hierarchy" do
204
Puppet[:code] = <<-MANIFEST
205
stage { before: before => Stage[main] }
214
class { alpha: stage => before }
217
catalog = Puppet::Parser::Compiler.compile(Puppet::Node.new 'anyone')
219
# Stringify them to make for easier lookup
220
edges = catalog.edges.map {|e| [e.source.ref, e.target.ref]}
222
edges.should include(["Stage[before]", "Class[Alpha]"])
223
edges.should include(["Stage[before]", "Class[Beta]"])
224
edges.should include(["Stage[before]", "Class[Gamma]"])
227
it "should use the specified stage even if the parent scope specifies one" do
228
Puppet[:code] = <<-MANIFEST
229
stage { before: before => Stage[main], }
230
stage { after: require => Stage[main], }
233
class { beta: stage => after }
236
class { alpha: stage => before }
239
catalog = Puppet::Parser::Compiler.compile(Puppet::Node.new 'anyone')
241
edges = catalog.edges.map {|e| [e.source.ref, e.target.ref]}
243
edges.should include(["Stage[before]", "Class[Alpha]"])
244
edges.should include(["Stage[after]", "Class[Beta]"])
203
247
it "should add edges from top-level class resources to the main stage if no stage is specified", :'fails_on_ruby_1.9.2' => true do
204
248
main = @compiler.catalog.resource(:stage, :main)
205
249
@compiler.known_resource_types.add Puppet::Resource::Type.new(:hostclass, "foo", '')