]> git.openstreetmap.org Git - rails.git/blobdiff - vendor/gems/rspec-1.1.2/spec/spec/mocks/null_object_mock_spec.rb
added RSpec and RSpec on Rails
[rails.git] / vendor / gems / rspec-1.1.2 / spec / spec / mocks / null_object_mock_spec.rb
diff --git a/vendor/gems/rspec-1.1.2/spec/spec/mocks/null_object_mock_spec.rb b/vendor/gems/rspec-1.1.2/spec/spec/mocks/null_object_mock_spec.rb
new file mode 100644 (file)
index 0000000..57e8ca3
--- /dev/null
@@ -0,0 +1,40 @@
+require File.dirname(__FILE__) + '/../../spec_helper.rb'
+
+module Spec
+  module Mocks
+    describe "a mock acting as a NullObject" do
+      before(:each) do
+        @mock = Mock.new("null_object", :null_object => true)
+      end
+
+      it "should allow explicit expectation" do
+        @mock.should_receive(:something)
+        @mock.something
+      end
+
+      it "should fail verification when explicit exception not met" do
+        lambda do
+          @mock.should_receive(:something)
+          @mock.rspec_verify
+        end.should raise_error(MockExpectationError)
+      end
+
+      it "should ignore unexpected methods" do
+        @mock.random_call("a", "d", "c")
+        @mock.rspec_verify
+      end
+
+      it "should expected message with different args first" do
+        @mock.should_receive(:message).with(:expected_arg)
+        @mock.message(:unexpected_arg)
+        @mock.message(:expected_arg)
+      end
+
+      it "should expected message with different args second" do
+        @mock.should_receive(:message).with(:expected_arg)
+        @mock.message(:expected_arg)
+        @mock.message(:unexpected_arg)
+      end
+    end
+  end
+end