spec/spec/matchers/have_spec.rb in rspec-1.1.11 vs spec/spec/matchers/have_spec.rb in rspec-1.1.12
- old
+ new
@@ -1,18 +1,31 @@
require File.dirname(__FILE__) + '/../../spec_helper.rb'
-module HaveSpecHelper
+share_as :HaveSpecHelper do
def create_collection_owner_with(n)
owner = Spec::Expectations::Helper::CollectionOwner.new
(1..n).each do |n|
owner.add_to_collection_with_length_method(n)
owner.add_to_collection_with_size_method(n)
end
owner
end
+ before(:each) do
+ unless defined?(::ActiveSupport::Inflector)
+ @active_support_was_not_defined
+ module ::ActiveSupport
+ class Inflector
+ def self.pluralize(string)
+ string.to_s + 's'
+ end
+ end
+ end
+ end
+ end
end
+
describe "should have(n).items" do
include HaveSpecHelper
it "should pass if target has a collection of items with n members" do
owner = create_collection_owner_with(3)
@@ -48,31 +61,18 @@
end
describe 'should have(1).item when ActiveSupport::Inflector is defined' do
include HaveSpecHelper
- before(:each) do
- unless defined?(ActiveSupport::Inflector)
- @active_support_was_not_defined
- module ActiveSupport
- class Inflector
- def self.pluralize(string)
- string.to_s + 's'
- end
- end
- end
- end
- end
-
it 'should pluralize the collection name' do
owner = create_collection_owner_with(1)
owner.should have(1).item
end
after(:each) do
if @active_support_was_not_defined
- Object.send :remove_const, :ActiveSupport
+ Object.__send__ :remove_const, :ActiveSupport
end
end
end
describe 'should have(1).item when Inflector is defined' do
@@ -94,11 +94,11 @@
owner.should have(1).item
end
after(:each) do
if @inflector_was_not_defined
- Object.send :remove_const, :Inflector
+ Object.__send__ :remove_const, :Inflector
end
end
end
describe "should have(n).items where result responds to items but returns something other than a collection" do
@@ -325,11 +325,11 @@
end
end
describe Spec::Matchers::Have, "for a collection owner that implements #send" do
include HaveSpecHelper
-
+
before(:each) do
@collection = Object.new
def @collection.floozles; [1,2] end
def @collection.send(*args); raise "DOH! Library developers shouldn't use #send!" end
end
@@ -355,10 +355,15 @@
module Spec
module Matchers
describe Have do
it "should have method_missing as private" do
- Have.private_instance_methods.should include("method_missing")
+ with_ruby '1.8' do
+ Have.private_instance_methods.should include("method_missing")
+ end
+ with_ruby '1.9' do
+ Have.private_instance_methods.should include(:method_missing)
+ end
end
describe "respond_to?" do
before :each do
@have = Have.new(:foo)