spec/sprinkle/policy_spec.rb in sprinkle-0.7.6.2 vs spec/sprinkle/policy_spec.rb in sprinkle-0.7.7
- old
+ new
@@ -49,10 +49,39 @@
Sprinkle::POLICIES.size.should eq sz + 1
Sprinkle::POLICIES.last.should eq p
end
end
+
+ describe 'with the same package multiple times' do
+ include Sprinkle::Package
+
+ before do
+ @deployment = double(Sprinkle::Deployment)
+ actor = double(:servers_for_role? => true)
+ @deployment.stub(:style).and_return(actor)
+ Sprinkle::Package::PACKAGES.clear # reset full package list before each spec is run
+
+ @user = package :user do; end
+
+ @policy = policy :test, :roles => :app do
+ requires :user, :name => "josh"
+ requires :user, :name => "bill"
+ end
+ end
+
+ it "should call process on both users" do
+ (all=@policy.package_install_tree).size.should == 2
+ all.each do |p|
+ p.should_receive(:process).and_return
+ end
+ end
+
+ after do
+ @policy.process(@deployment)
+ end
+ end
describe 'with packages' do
include Sprinkle::Package
before do
@@ -70,11 +99,11 @@
@b.stub(:instance).and_return(@b)
@c.stub(:instance).and_return(@c)
@d.stub(:instance).and_return(@d)
@policy = policy :test, :roles => :app do; requires :a; end
- $terminal.stub(:choose).and_return(:c) # stub out highline asking questions
+ $terminal.stub(:choose).and_return(@c) # stub out highline asking questions
end
describe 'when applying' do
include Sprinkle::Package
@@ -121,10 +150,10 @@
@b.should_receive(:process)
end
it 'should ask the user for the concrete package implementation to use for a virtual one when more than one possible choice exists' do
@policy = policy :virtual, :roles => :app do; requires :abc; end
- $terminal.should_receive(:choose).and_return(:c)
+ $terminal.should_receive(:choose).and_return(@c)
@c.should_receive(:process)
end
end