summaryrefslogtreecommitdiffstats
path: root/spec/integration/node
diff options
context:
space:
mode:
Diffstat (limited to 'spec/integration/node')
-rwxr-xr-xspec/integration/node/environment.rb58
1 files changed, 58 insertions, 0 deletions
diff --git a/spec/integration/node/environment.rb b/spec/integration/node/environment.rb
new file mode 100755
index 000000000..68dfd93a3
--- /dev/null
+++ b/spec/integration/node/environment.rb
@@ -0,0 +1,58 @@
+#!/usr/bin/env ruby
+
+require File.dirname(__FILE__) + '/../../spec_helper'
+
+require 'puppet_spec/files'
+
+describe Puppet::Node::Environment do
+ include PuppetSpec::Files
+
+ it "should be able to return each module from its environment with the environment, name, and path set correctly" do
+ base = tmpfile("env_modules")
+ Dir.mkdir(base)
+
+ dirs = []
+ mods = {}
+ %w{1 2}.each do |num|
+ dir = File.join(base, "dir#{num}")
+ dirs << dir
+ Dir.mkdir(dir)
+ mod = "mod#{num}"
+ moddir = File.join(dir, mod)
+ mods[mod] = moddir
+ Dir.mkdir(moddir)
+ end
+
+ environment = Puppet::Node::Environment.new("foo")
+ environment.stubs(:modulepath).returns dirs
+
+ environment.modules.each do |mod|
+ mod.environment.should == environment
+ mod.path.should == mods[mod.name]
+ end
+ end
+
+ it "should not yield the same module from different module paths" do
+ base = tmpfile("env_modules")
+ Dir.mkdir(base)
+
+ dirs = []
+ mods = {}
+ %w{1 2}.each do |num|
+ dir = File.join(base, "dir#{num}")
+ dirs << dir
+ Dir.mkdir(dir)
+ mod = "mod"
+ moddir = File.join(dir, mod)
+ mods[mod] = moddir
+ Dir.mkdir(moddir)
+ end
+
+ environment = Puppet::Node::Environment.new("foo")
+ environment.stubs(:modulepath).returns dirs
+
+ mods = environment.modules
+ mods.length.should == 1
+ mods[0].path.should == File.join(base, "dir1", "mod")
+ end
+end