Sha256: 694e10bf9a9988ae3f8cee61d5acd38d2839bf48eec8ca4be8b5741d26a58d5a

Contents?: true

Size: 1.6 KB

Versions: 2

Compression:

Stored size: 1.6 KB

Contents

require File.expand_path("#{File.dirname(__FILE__)}/../../spec_helper")

module RR
  describe DoubleInjection do
    describe "#object_has_original_method?" do
      attr_reader :subject, :method_name, :double_injection
      before do
        @subject = Object.new
        @method_name = :to_s
        @double_injection = DoubleInjection.new(subject, method_name, (class << subject; self; end))
        class << double_injection
          public :original_method_alias_name
        end
      end

      it "returns true when method is still in object" do
        double_injection.bind
        double_injection.object_has_original_method?.should be_true
      end

      it "returns true when respond_to is true and methods include method" do
        double_injection.bind
        def subject.methods
          [:__rr_original_to_s]
        end
        def subject.respond_to?(value)
          true
        end

        double_injection.object_has_original_method?.should be_true
      end

      it "returns true when respond_to is true and methods do not include method" do
        double_injection.bind
        def subject.methods
          []
        end
        def subject.respond_to?(value)
          true
        end

        double_injection.object_has_original_method?.should be_true
      end

      it "returns false when respond_to is false and methods do not include method" do
        double_injection.bind
        def subject.methods
          []
        end
        def subject.respond_to?(value)
          false
        end

        double_injection.object_has_original_method?.should be_false
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rr-0.10.2 spec/rr/double_injection/double_injection_has_original_method_spec.rb
rr-0.10.0 spec/rr/double_injection/double_injection_has_original_method_spec.rb