Sha256: 02c26fa1b4d1191c66873dd9b0e31c44f5e6970b84a40b124d8b15288a5518ef

Contents?: true

Size: 1.45 KB

Versions: 8

Compression:

Stored size: 1.45 KB

Contents

require "examples/example_helper"

module RR
describe Double, "#reset", :shared => true do
  it "cleans up by removing the __rr__ method" do
    @double.bind
    @object.methods.should include("__rr__foobar")

    @double.reset
    @object.methods.should_not include("__rr__foobar")
  end
end

describe Double, "#reset when method does not exist" do
  it_should_behave_like "RR::Double#reset"

  before do
    @space = Space.new
    @object = Object.new
    @method_name = :foobar
    @object.methods.should_not include(@method_name.to_s)
    @double = Double.new(@space, @object, @method_name)
  end

  it "removes the method" do
    @double.bind
    @object.methods.should include(@method_name.to_s)

    @double.reset
    @object.methods.should_not include(@method_name.to_s)
    proc {@object.foobar}.should raise_error(NoMethodError)
  end
end

describe Double, "#reset when method exists" do
  it_should_behave_like "RR::Double#reset"

  before do
    @space = Space.new
    @object = Object.new
    @method_name = :foobar
    def @object.foobar
      :original_foobar
    end
    @object.methods.should include(@method_name.to_s)
    @original_method = @object.method(@method_name)
    @double = Double.new(@space, @object, @method_name)
  end

  it "removes the method" do
    @double.bind
    @object.methods.should include(@method_name.to_s)

    @double.reset
    @object.methods.should include(@method_name.to_s)
    @object.foobar.should == :original_foobar
  end
end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
rr-0.1.10 examples/rr/double_reset_example.rb
rr-0.1.11 examples/rr/double_reset_example.rb
rr-0.1.8 examples/rr/double_reset_example.rb
rr-0.1.7 examples/rr/double_reset_example.rb
rr-0.1.12 examples/rr/double_reset_example.rb
rr-0.1.13 examples/rr/double_reset_example.rb
rr-0.1.14 examples/rr/double/double_reset_example.rb
rr-0.1.9 examples/rr/double_reset_example.rb