changelog shortlog tags changeset manifest revisions annotate raw

vendor/plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb

changeset 16: 01fd3f10ae84
author: moriq@moriq.com
date: Mon Mar 10 10:13:18 2008 +0900 (16 years ago)
permissions: -rw-r--r--
description: add plugins rspec_on_rails
1require File.dirname(__FILE__) + '/../../spec_helper'
2
3class MockableModel < ActiveRecord::Base
4 has_one :associated_model
5end
6
7class SubMockableModel < MockableModel
8end
9
10class AssociatedModel < ActiveRecord::Base
11 belongs_to :mockable_model
12end
13
14describe "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
36end
37
38describe "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
49end
50
51describe "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
65end