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