Updated Rails to 2.1.0
[gitorious:georgyos-clone.git] / vendor / plugins / rspec_on_rails / spec / rails / mocks / mock_model_spec.rb
1 require File.dirname(__FILE__) + '/../../spec_helper'
2
3 class MockableModel < ActiveRecord::Base
4   has_one :associated_model
5 end
6
7 class SubMockableModel < MockableModel
8 end
9
10 class AssociatedModel < ActiveRecord::Base
11   belongs_to :mockable_model
12 end
13
14 describe "mock_model", :type => :view do
15   before(:each) do
16     @model = mock_model(SubMockableModel)
17   end
18   it "should say it is_a? if it is" do
19     @model.is_a?(SubMockableModel).should be(true)
20   end
21   it "should say it is_a? if it's ancestor is" do
22     @model.is_a?(MockableModel).should be(true)
23   end
24   it "should say it is kind_of? if it is" do
25     @model.kind_of?(SubMockableModel).should be(true)
26   end
27   it "should say it is kind_of? if it's ancestor is" do
28     @model.kind_of?(MockableModel).should be(true)
29   end
30   it "should say it is instance_of? if it is" do
31     @model.instance_of?(SubMockableModel).should be(true)
32   end
33   it "should not say it instance_of? if it isn't, even if it's ancestor is" do
34     @model.instance_of?(MockableModel).should be(false)
35   end
36 end
37
38 describe "mock_model with null_object", :type => :view do
39   before(:each) do
40     @model = mock_model(MockableModel, :null_object => true, :mocked_method => "mocked")
41   end
42   
43   it "should be able to mock methods" do
44     @model.mocked_method.should == "mocked"
45   end
46   it "should return itself to unmocked methods" do
47     @model.unmocked_method.should equal(@model)
48   end
49 end
50
51 describe "mock_model as association", :type => :view do
52   before(:each) do
53     @real = AssociatedModel.create!
54     @mock_model = mock_model(MockableModel)
55     @real.mockable_model = @mock_model
56   end
57   
58   it "should pass associated_model == mock" do
59       @mock_model.should == @real.mockable_model
60   end
61
62   it "should pass mock == associated_model" do
63       @real.mockable_model.should == @mock_model
64   end
65 end