~ubuntu-branches/ubuntu/oneiric/puppet/oneiric-security

« back to all changes in this revision

Viewing changes to vendor/gems/mocha-0.5.6/test/unit/object_test.rb

  • Committer: Bazaar Package Importer
  • Author(s): Micah Anderson
  • Date: 2008-07-26 15:43:45 UTC
  • mto: (3.1.1 lenny) (1.3.1 upstream)
  • mto: This revision was merged to the branch mainline in revision 16.
  • Revision ID: james.westby@ubuntu.com-20080726154345-1fmgo76b4l72ulvc
ImportĀ upstreamĀ versionĀ 0.24.5

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
require File.join(File.dirname(__FILE__), "..", "test_helper")
 
2
require 'mocha/mock'
 
3
require 'method_definer'
 
4
 
 
5
require 'mocha/object'
 
6
 
 
7
class ObjectTest < Test::Unit::TestCase
 
8
  
 
9
  include Mocha
 
10
    
 
11
  def test_should_build_mocha
 
12
    instance = Object.new
 
13
    mocha = instance.mocha
 
14
    assert_not_nil mocha
 
15
    assert mocha.is_a?(Mock)
 
16
  end
 
17
  
 
18
  def test_should_reuse_existing_mocha
 
19
    instance = Object.new
 
20
    mocha_1 = instance.mocha
 
21
    mocha_2 = instance.mocha
 
22
    assert_equal mocha_1, mocha_2
 
23
  end
 
24
  
 
25
  def test_should_reset_mocha
 
26
    instance = Object.new
 
27
    assert_nil instance.reset_mocha
 
28
  end
 
29
  
 
30
  def test_should_stub_instance_method
 
31
    instance = Object.new
 
32
    $stubba = Mock.new
 
33
    $stubba.expects(:stub).with(Mocha::InstanceMethod.new(instance, :method1))
 
34
    instance.expects(:method1)
 
35
    $stubba.verify
 
36
  end 
 
37
  
 
38
  def test_should_build_and_store_expectation
 
39
    instance = Object.new
 
40
    $stubba = Mock.new
 
41
    $stubba.stubs(:stub)
 
42
    expectation = instance.expects(:method1)
 
43
    assert_equal [expectation], instance.mocha.expectations.to_a
 
44
  end
 
45
  
 
46
  def test_should_verify_expectations
 
47
    instance = Object.new
 
48
    $stubba = Mock.new
 
49
    $stubba.stubs(:stub)
 
50
    instance.expects(:method1).with(:value1, :value2)
 
51
    assert_raise(ExpectationError) { instance.verify }
 
52
  end
 
53
  
 
54
  def test_should_pass_backtrace_into_expects
 
55
    instance = Object.new
 
56
    $stubba = Mock.new
 
57
    $stubba.stubs(:stub)
 
58
    mocha = Object.new
 
59
    mocha.define_instance_accessor(:expects_parameters)
 
60
    mocha.define_instance_method(:expects) { |*parameters| self.expects_parameters = parameters }
 
61
    backtrace = Object.new
 
62
    instance.define_instance_method(:mocha) { mocha }
 
63
    instance.define_instance_method(:caller) { backtrace }
 
64
    instance.expects(:method1)
 
65
    assert_equal [:method1, backtrace], mocha.expects_parameters
 
66
  end
 
67
      
 
68
  def test_should_pass_backtrace_into_stubs
 
69
    instance = Object.new
 
70
    $stubba = Mock.new
 
71
    $stubba.stubs(:stub)
 
72
    mocha = Object.new
 
73
    mocha.define_instance_accessor(:stubs_parameters)
 
74
    mocha.define_instance_method(:stubs) { |*parameters| self.stubs_parameters = parameters }
 
75
    backtrace = Object.new
 
76
    instance.define_instance_method(:mocha) { mocha }
 
77
    instance.define_instance_method(:caller) { backtrace }
 
78
    instance.stubs(:method1)
 
79
    assert_equal [:method1, backtrace], mocha.stubs_parameters
 
80
  end
 
81
      
 
82
  def test_should_build_any_instance_object
 
83
    klass = Class.new
 
84
    any_instance = klass.any_instance
 
85
    assert_not_nil any_instance
 
86
    assert any_instance.is_a?(Class::AnyInstance)
 
87
  end
 
88
  
 
89
  def test_should_return_same_any_instance_object
 
90
    klass = Class.new
 
91
    any_instance_1 = klass.any_instance
 
92
    any_instance_2 = klass.any_instance
 
93
    assert_equal any_instance_1, any_instance_2
 
94
  end
 
95
  
 
96
  def test_should_stub_class_method
 
97
    klass = Class.new
 
98
    $stubba = Mock.new
 
99
    $stubba.expects(:stub).with(Mocha::ClassMethod.new(klass, :method1))
 
100
    klass.expects(:method1)
 
101
    $stubba.verify
 
102
  end 
 
103
  
 
104
  def test_should_build_and_store_class_method_expectation
 
105
    klass = Class.new
 
106
    $stubba = Mock.new
 
107
    $stubba.stubs(:stub)
 
108
    expectation = klass.expects(:method1)
 
109
    assert_equal [expectation], klass.mocha.expectations.to_a
 
110
  end
 
111
  
 
112
  def test_should_stub_module_method
 
113
    mod = Module.new
 
114
    $stubba = Mock.new
 
115
    $stubba.expects(:stub).with(Mocha::ClassMethod.new(mod, :method1))
 
116
    mod.expects(:method1)
 
117
    $stubba.verify
 
118
  end
 
119
  
 
120
  def test_should_build_and_store_module_method_expectation
 
121
    mod = Module.new
 
122
    $stubba = Mock.new
 
123
    $stubba.stubs(:stub)
 
124
    expectation = mod.expects(:method1)
 
125
    assert_equal [expectation], mod.mocha.expectations.to_a
 
126
  end
 
127
  
 
128
  def test_should_use_stubba_instance_method_for_object
 
129
    assert_equal Mocha::InstanceMethod, Object.new.stubba_method
 
130
  end
 
131
    
 
132
  def test_should_use_stubba_class_method_for_module
 
133
    assert_equal Mocha::ClassMethod, Module.new.stubba_method
 
134
  end
 
135
    
 
136
  def test_should_use_stubba_class_method_for_class
 
137
    assert_equal Mocha::ClassMethod, Class.new.stubba_method
 
138
  end
 
139
  
 
140
  def test_should_use_stubba_class_method_for_any_instance
 
141
    assert_equal Mocha::AnyInstanceMethod, Class::AnyInstance.new(nil).stubba_method
 
142
  end
 
143
  
 
144
  def test_should_stub_self_for_object
 
145
    object = Object.new
 
146
    assert_equal object, object.stubba_object
 
147
  end
 
148
      
 
149
  def test_should_stub_self_for_module
 
150
    mod = Module.new
 
151
    assert_equal mod, mod.stubba_object
 
152
  end
 
153
      
 
154
  def test_should_stub_self_for_class
 
155
    klass = Class.new
 
156
    assert_equal klass, klass.stubba_object
 
157
  end
 
158
      
 
159
  def test_should_stub_relevant_class_for_any_instance
 
160
    klass = Class.new
 
161
    any_instance = Class::AnyInstance.new(klass)
 
162
    assert_equal klass, any_instance.stubba_object
 
163
  end
 
164
  
 
165
end
 
 
b'\\ No newline at end of file'