Sha256: 462ba60019a3b79db078eaa9dc83edc4cf9b4c5a295fdfcb9a0011e5750664e9

Contents?: true

Size: 1.4 KB

Versions: 2

Compression:

Stored size: 1.4 KB

Contents

require "spec/spec_helper"

module RR
  describe DoubleInjection, "#object_has_original_method?" do
    before do
      @space = Space.new
      @object = Object.new
      @method_name = :to_s
      @double_insertion = DoubleInjection.new(@space, @object, @method_name)
      class << @double_insertion
        public :original_method_name
      end
    end

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

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

      @double_insertion.object_has_original_method?.should be_true
    end

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

      @double_insertion.object_has_original_method?.should be_true
    end

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

      @double_insertion.object_has_original_method?.should be_false
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rr-0.4.3 spec/rr/double/double_injection_has_original_method_spec.rb
rr-0.4.2 spec/rr/double/double_injection_has_original_method_spec.rb