diff options
Diffstat (limited to 'spec/unit/network/client/master.rb')
-rwxr-xr-x | spec/unit/network/client/master.rb | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/spec/unit/network/client/master.rb b/spec/unit/network/client/master.rb index 754fd0583..f55ba316c 100755 --- a/spec/unit/network/client/master.rb +++ b/spec/unit/network/client/master.rb @@ -397,4 +397,46 @@ describe Puppet::Network::Client::Master, " when using the cached catalog" do @client.catalog.should equal(ral_config) end + + describe "when calling splay" do + it "should do nothing if splay is not enabled" do + Puppet.stubs(:[]).with(:splay).returns(false) + @client.expects(:rand).never + @client.send(:splay) + end + + describe "when splay is enabled" do + before do + Puppet.stubs(:[]).with(:splay).returns(true) + Puppet.stubs(:[]).with(:splaylimit).returns(42) + end + + it "should sleep for a random time" do + @client.expects(:rand).with(42).returns(42) + @client.expects(:sleep).with(42) + @client.send(:splay) + end + + it "should inform that it is splayed" do + @client.stubs(:rand).with(42).returns(42) + @client.stubs(:sleep).with(42) + Puppet.expects(:info) + @client.send(:splay) + end + + it "should set splay = true" do + @client.stubs(:rand).with(42).returns(42) + @client.stubs(:sleep).with(42) + @client.send(:splay) + @client.send(:splayed?).should == true + end + + it "should do nothing if already splayed" do + @client.stubs(:rand).with(42).returns(42).at_most_once + @client.stubs(:sleep).with(42).at_most_once + @client.send(:splay) + @client.send(:splay) + end + end + end end |