spec/rspec/unit/method_call_spec.rb in caricature-0.7.5 vs spec/rspec/unit/method_call_spec.rb in caricature-0.7.6

- old
+ new

@@ -1,343 +1,343 @@ -require File.dirname(__FILE__) + "/../spec_helper" - -describe "MethodCallRecorder" do - - before do - @recorder = Caricature::MethodCallRecorder.new - end - - describe "when recording a call without arguments" do - - before do - @recorder.record_call :my_method - end - - it "should have 1 method call" do - @recorder.method_calls[:instance].size.should == 1 - end - - describe "recorded call" do - - before do - @mc = @recorder.method_calls[:instance][:my_method] - end - - it "should have a method call collected" do - @mc.should_not be_nil - end - - it "should have the correct name" do - @mc.method_name.should == :my_method - end - - it "should have no arguments" do - @mc.args.should == [Caricature::ArgumentRecording.new] - end - - it "should have no block" do - @mc.block.should be_nil - end - - it "should have a count a 1" do - @mc.count.should == 1 - end - - end - - end - - describe "when recording a call without arguments but with a block" do - - before do - @block_content = "I'm in the block" - @recorder.record_call :my_method do - @block_content - end - end - - it "should have 1 method call" do - @recorder.method_calls[:instance].size.should == 1 - end - - describe "recorded call" do - - before do - @mc = @recorder.method_calls[:instance][:my_method] - end - - it "should have a method call collected" do - @mc.should_not be_nil - end - - it "should have the correct name" do - @mc.method_name.should == :my_method - end - - it "should have no arguments" do - @mc.args.should == [Caricature::ArgumentRecording.new] - end - - it "should have a block" do - @mc.args.first.block.should_not be_nil - end - - it "should have the correct block" do - @mc.args.first.block.call.should == @block_content - end - - it "should have a count a 1" do - @mc.count.should == 1 - end - - end - - end - - describe "when recording a call 1 argument" do - - before do - @recorder.record_call :my_method, :instance, nil, 1 - end - - it "should have 1 method call" do - @recorder.method_calls[:instance].size.should == 1 - end - - describe "recorded call" do - - before do - @mc = @recorder.method_calls[:instance][:my_method] - end - - it "should have a method call collected" do - @mc.should_not be_nil - end - - it "should have the correct name" do - @mc.method_name.should == :my_method - end - - it "should have 1 argument" do - @mc.args.size.should == 1 - end - - it "should have the correct argument" do - @mc.args.should == [Caricature::ArgumentRecording.new([1])] - end - - it "should have no block" do - @mc.block.should be_nil - end - - it "should have a count a 1" do - @mc.count.should == 1 - end - - end - - end - - describe "when recording a call 2 arguments" do - - before do - @recorder.record_call :my_method, :instance, nil, 1, 2 - end - - it "should have 1 method call" do - @recorder.method_calls[:instance].size.should == 1 - end - - describe "recorded call" do - - before do - @mc = @recorder.method_calls[:instance][:my_method] - end - - it "should have a method call collected" do - @mc.should_not be_nil - end - - it "should have the correct name" do - @mc.method_name.should == :my_method - end - - it "should have 1 argument recording" do - @mc.args.size.should == 1 - end - - it "should have the correct arguments" do - @mc.args.should == [Caricature::ArgumentRecording.new([1, 2])] - end - - it "should have no block" do - @mc.block.should be_nil - end - - it "should have a count a 1" do - @mc.count.should == 1 - end - - end - - end - - describe "when recording 2 calls with no arguments" do - - before do - @recorder.record_call :my_method - @recorder.record_call :my_method - end - - it "should have 1 method call" do - @recorder.method_calls[:instance].size.should == 1 - end - - describe "recorded call" do - - before do - @mc = @recorder.method_calls[:instance][:my_method] - end - - it "should have a method call collected" do - @mc.should_not be_nil - end - - it "should have the correct name" do - @mc.method_name.should == :my_method - end - - it "should have no arguments" do - @mc.args.should == [Caricature::ArgumentRecording.new] - end - - it "should have no block" do - @mc.block.should be_nil - end - - it "should have a count of 2" do - @mc.count.should == 2 - end - - end - - end - - describe "when recording a call with a block" do - before do - @args = [] - @b = @recorder.record_call :some_method, :instance, nil, 5, 6, 7 do |*args| - @args = args - end - - end - - it "should return a block" do - @b.should_not be_nil - end - - it "should return a block that wraps a recording" do - @b.call 8, 9, 0 - @recorder.method_calls[:instance][:some_method].args.first.blocks.first.args.should == [8, 9, 0] - end - - it "should call the original block" do - @b.call 8, 9, 0 - @args.should == [8, 9, 0] - end - end - - describe "when recording 2 calls with different arguments" do - - before do - @recorder.record_call :my_method - @recorder.record_call :my_method, :instance, nil, 1, 3, 4 - end - - it "should have 1 method call" do - @recorder.method_calls[:instance].size.should == 1 - end - - describe "recorded call" do - - before do - @mc = @recorder.method_calls[:instance][:my_method] - end - - it "should have a method call collected" do - @mc.should_not be_nil - end - - it "should have the correct name" do - @mc.method_name.should == :my_method - end - - it "should have argument variations" do - @mc.has_argument_variations?.should be_true - end - - it "should have no block" do - @mc.block.should be_nil - end - - it "should have a count of 2" do - @mc.count.should == 2 - end - - end - - end - - describe "when asked if a certain method was called" do - - before do - @recorder.record_call :my_method - @recorder.record_call :my_method, :instance, nil, 1, 3, 4 - - end - - it "should confirm when we don't care about the arguments" do - @recorder.was_called?(:my_method, nil, :instance, :any).should be_true - end - - it "should confirm when there are no argument variations" do - @recorder.record_call :another_method - @recorder.was_called?(:another_method, nil, :instance, :any).should be_true - end - - it "should be negative when we provide the wrong arguments" do - @recorder.was_called?(:my_method, nil, :instance, 1, 2, 5).should be_false - end - - it "should be positive when we provide the correct arguments" do - @recorder.was_called?(:my_method, nil, :instance, 1, 3, 4).should be_true - end - - it "should be positive when we provide no arguments and a call had been recorded without arguments" do - @recorder.was_called?(:my_method, nil, :instance).should be_true - end - - describe "with block" do - - before do - @args = [] - b = @recorder.record_call :some_method, :instance, nil, 5, 6, 7 do |*args| - @args << args - end - b.call 1, 3, 5 - b.call 3, 4, 6 - b.call - end - - it "should be positive when we provide any arguments" do - @recorder.was_called?(:some_method, [:any], :instance, :any).should be_true - end - - it "should be positive when we provide specific arguments" do - @recorder.was_called?(:some_method, [1, 3, 5], :instance, :any).should be_true - end - - end - - end - +require File.dirname(__FILE__) + "/../spec_helper" + +describe "MethodCallRecorder" do + + before do + @recorder = Caricature::MethodCallRecorder.new + end + + describe "when recording a call without arguments" do + + before do + @recorder.record_call :my_method + end + + it "should have 1 method call" do + @recorder.method_calls[:instance].size.should == 1 + end + + describe "recorded call" do + + before do + @mc = @recorder.method_calls[:instance][:my_method] + end + + it "should have a method call collected" do + @mc.should_not be_nil + end + + it "should have the correct name" do + @mc.method_name.should == :my_method + end + + it "should have no arguments" do + @mc.args.should == [Caricature::ArgumentRecording.new] + end + + it "should have no block" do + @mc.block.should be_nil + end + + it "should have a count a 1" do + @mc.count.should == 1 + end + + end + + end + + describe "when recording a call without arguments but with a block" do + + before do + @block_content = "I'm in the block" + @recorder.record_call :my_method do + @block_content + end + end + + it "should have 1 method call" do + @recorder.method_calls[:instance].size.should == 1 + end + + describe "recorded call" do + + before do + @mc = @recorder.method_calls[:instance][:my_method] + end + + it "should have a method call collected" do + @mc.should_not be_nil + end + + it "should have the correct name" do + @mc.method_name.should == :my_method + end + + it "should have no arguments" do + @mc.args.should == [Caricature::ArgumentRecording.new] + end + + it "should have a block" do + @mc.args.first.block.should_not be_nil + end + + it "should have the correct block" do + @mc.args.first.block.call.should == @block_content + end + + it "should have a count a 1" do + @mc.count.should == 1 + end + + end + + end + + describe "when recording a call 1 argument" do + + before do + @recorder.record_call :my_method, :instance, nil, 1 + end + + it "should have 1 method call" do + @recorder.method_calls[:instance].size.should == 1 + end + + describe "recorded call" do + + before do + @mc = @recorder.method_calls[:instance][:my_method] + end + + it "should have a method call collected" do + @mc.should_not be_nil + end + + it "should have the correct name" do + @mc.method_name.should == :my_method + end + + it "should have 1 argument" do + @mc.args.size.should == 1 + end + + it "should have the correct argument" do + @mc.args.should == [Caricature::ArgumentRecording.new([1])] + end + + it "should have no block" do + @mc.block.should be_nil + end + + it "should have a count a 1" do + @mc.count.should == 1 + end + + end + + end + + describe "when recording a call 2 arguments" do + + before do + @recorder.record_call :my_method, :instance, nil, 1, 2 + end + + it "should have 1 method call" do + @recorder.method_calls[:instance].size.should == 1 + end + + describe "recorded call" do + + before do + @mc = @recorder.method_calls[:instance][:my_method] + end + + it "should have a method call collected" do + @mc.should_not be_nil + end + + it "should have the correct name" do + @mc.method_name.should == :my_method + end + + it "should have 1 argument recording" do + @mc.args.size.should == 1 + end + + it "should have the correct arguments" do + @mc.args.should == [Caricature::ArgumentRecording.new([1, 2])] + end + + it "should have no block" do + @mc.block.should be_nil + end + + it "should have a count a 1" do + @mc.count.should == 1 + end + + end + + end + + describe "when recording 2 calls with no arguments" do + + before do + @recorder.record_call :my_method + @recorder.record_call :my_method + end + + it "should have 1 method call" do + @recorder.method_calls[:instance].size.should == 1 + end + + describe "recorded call" do + + before do + @mc = @recorder.method_calls[:instance][:my_method] + end + + it "should have a method call collected" do + @mc.should_not be_nil + end + + it "should have the correct name" do + @mc.method_name.should == :my_method + end + + it "should have no arguments" do + @mc.args.should == [Caricature::ArgumentRecording.new] + end + + it "should have no block" do + @mc.block.should be_nil + end + + it "should have a count of 2" do + @mc.count.should == 2 + end + + end + + end + + describe "when recording a call with a block" do + before do + @args = [] + @b = @recorder.record_call :some_method, :instance, nil, 5, 6, 7 do |*args| + @args = args + end + + end + + it "should return a block" do + @b.should_not be_nil + end + + it "should return a block that wraps a recording" do + @b.call 8, 9, 0 + @recorder.method_calls[:instance][:some_method].args.first.blocks.first.args.should == [8, 9, 0] + end + + it "should call the original block" do + @b.call 8, 9, 0 + @args.should == [8, 9, 0] + end + end + + describe "when recording 2 calls with different arguments" do + + before do + @recorder.record_call :my_method + @recorder.record_call :my_method, :instance, nil, 1, 3, 4 + end + + it "should have 1 method call" do + @recorder.method_calls[:instance].size.should == 1 + end + + describe "recorded call" do + + before do + @mc = @recorder.method_calls[:instance][:my_method] + end + + it "should have a method call collected" do + @mc.should_not be_nil + end + + it "should have the correct name" do + @mc.method_name.should == :my_method + end + + it "should have argument variations" do + @mc.has_argument_variations?.should be_true + end + + it "should have no block" do + @mc.block.should be_nil + end + + it "should have a count of 2" do + @mc.count.should == 2 + end + + end + + end + + describe "when asked if a certain method was called" do + + before do + @recorder.record_call :my_method + @recorder.record_call :my_method, :instance, nil, 1, 3, 4 + + end + + it "should confirm when we don't care about the arguments" do + @recorder.was_called?(:my_method, nil, :instance, :any).should be_true + end + + it "should confirm when there are no argument variations" do + @recorder.record_call :another_method + @recorder.was_called?(:another_method, nil, :instance, :any).should be_true + end + + it "should be negative when we provide the wrong arguments" do + @recorder.was_called?(:my_method, nil, :instance, 1, 2, 5).should be_false + end + + it "should be positive when we provide the correct arguments" do + @recorder.was_called?(:my_method, nil, :instance, 1, 3, 4).should be_true + end + + it "should be positive when we provide no arguments and a call had been recorded without arguments" do + @recorder.was_called?(:my_method, nil, :instance).should be_true + end + + describe "with block" do + + before do + @args = [] + b = @recorder.record_call :some_method, :instance, nil, 5, 6, 7 do |*args| + @args << args + end + b.call 1, 3, 5 + b.call 3, 4, 6 + b.call + end + + it "should be positive when we provide any arguments" do + @recorder.was_called?(:some_method, [:any], :instance, :any).should be_true + end + + it "should be positive when we provide specific arguments" do + @recorder.was_called?(:some_method, [1, 3, 5], :instance, :any).should be_true + end + + end + + end + end \ No newline at end of file