Sha256: ad2c1835beb49950d8f99af9abab5caf573edfbdd0b413e77dd61953df62b6a3

Contents?: true

Size: 1.88 KB

Versions: 6

Compression:

Stored size: 1.88 KB

Contents

require 'spec_helper'

module RSpec
  module Matchers
    [:be_an_instance_of, :be_instance_of].each do |method|
      describe "actual.should #{method}(expected)" do
        it_behaves_like "an RSpec matcher", :valid_value => 5, :invalid_value => "a" do
          let(:matcher) { send(method, Fixnum) }
        end

        it "passes if actual is instance of expected class" do
          5.should send(method, Fixnum)
        end

        it "fails if actual is instance of subclass of expected class" do
          lambda { 5.should send(method, Numeric) }.should fail_with(%Q{expected 5 to be an instance of Numeric})
        end

        it "fails with failure message for should unless actual is instance of expected class" do
          lambda { "foo".should send(method, Array) }.should fail_with(%Q{expected "foo" to be an instance of Array})
        end

        it "provides a description" do
          matcher = be_an_instance_of(Fixnum)
          matcher.matches?(Numeric)
          matcher.description.should == "be an instance of Fixnum"
        end

        context "when expected provides an expanded inspect, e.g. AR::Base" do
          let(:user_klass) do
            Class.new do
              def self.inspect
                "User(id: integer, name: string)"
              end
            end
          end

          before { stub_const("User", user_klass) }

          it "provides a description including only the class name" do
            matcher = be_an_instance_of(User)
            matcher.description.should == "be an instance of User"
          end
        end
      end

      describe "actual.should_not #{method}(expected)" do

        it "fails with failure message for should_not if actual is instance of expected class" do
          lambda { "foo".should_not send(method, String) }.should fail_with(%Q{expected "foo" not to be an instance of String})
        end

      end

    end
  end
end

Version data entries

6 entries across 6 versions & 3 rubygems

Version Path
librarian-puppet-0.9.9 vendor/gems/ruby/1.9.1/gems/rspec-expectations-2.12.1/spec/rspec/matchers/be_instance_of_spec.rb
remq-0.0.4 vendor/bundle/gems/rspec-expectations-2.12.1/spec/rspec/matchers/be_instance_of_spec.rb
remq-0.0.3 vendor/bundle/gems/rspec-expectations-2.12.1/spec/rspec/matchers/be_instance_of_spec.rb
librarian-puppet-0.9.8 vendor/gems/ruby/1.9.1/gems/rspec-expectations-2.12.1/spec/rspec/matchers/be_instance_of_spec.rb
rspec-expectations-2.12.1 spec/rspec/matchers/be_instance_of_spec.rb
rspec-expectations-2.12.0 spec/rspec/matchers/be_instance_of_spec.rb