mocha 1.11.2 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +1 -1
  3. data/README.md +28 -30
  4. data/RELEASE.md +25 -0
  5. data/Rakefile +6 -1
  6. data/lib/mocha/cardinality.rb +30 -27
  7. data/lib/mocha/expectation.rb +24 -24
  8. data/lib/mocha/mock.rb +1 -1
  9. data/lib/mocha/mockery.rb +9 -22
  10. data/lib/mocha/state_machine.rb +30 -38
  11. data/lib/mocha/version.rb +1 -1
  12. data/mocha.gemspec +3 -1
  13. metadata +5 -192
  14. data/docs/CNAME +0 -1
  15. data/docs/Mocha.html +0 -254
  16. data/docs/Mocha/API.html +0 -1285
  17. data/docs/Mocha/ClassMethods.html +0 -264
  18. data/docs/Mocha/Configuration.html +0 -1525
  19. data/docs/Mocha/Expectation.html +0 -2862
  20. data/docs/Mocha/ExpectationError.html +0 -152
  21. data/docs/Mocha/ExpectationErrorFactory.html +0 -260
  22. data/docs/Mocha/Hooks.html +0 -370
  23. data/docs/Mocha/Integration.html +0 -125
  24. data/docs/Mocha/Integration/MiniTest.html +0 -123
  25. data/docs/Mocha/Integration/MiniTest/Adapter.html +0 -164
  26. data/docs/Mocha/Integration/TestUnit.html +0 -123
  27. data/docs/Mocha/Integration/TestUnit/Adapter.html +0 -164
  28. data/docs/Mocha/Mock.html +0 -1210
  29. data/docs/Mocha/ObjectMethods.html +0 -765
  30. data/docs/Mocha/ParameterMatchers.html +0 -2949
  31. data/docs/Mocha/ParameterMatchers/AllOf.html +0 -153
  32. data/docs/Mocha/ParameterMatchers/AnyOf.html +0 -153
  33. data/docs/Mocha/ParameterMatchers/AnyParameters.html +0 -153
  34. data/docs/Mocha/ParameterMatchers/Anything.html +0 -153
  35. data/docs/Mocha/ParameterMatchers/Base.html +0 -441
  36. data/docs/Mocha/ParameterMatchers/Equals.html +0 -153
  37. data/docs/Mocha/ParameterMatchers/EquivalentUri.html +0 -153
  38. data/docs/Mocha/ParameterMatchers/HasEntries.html +0 -153
  39. data/docs/Mocha/ParameterMatchers/HasEntry.html +0 -153
  40. data/docs/Mocha/ParameterMatchers/HasKey.html +0 -153
  41. data/docs/Mocha/ParameterMatchers/HasValue.html +0 -153
  42. data/docs/Mocha/ParameterMatchers/Includes.html +0 -153
  43. data/docs/Mocha/ParameterMatchers/InstanceOf.html +0 -153
  44. data/docs/Mocha/ParameterMatchers/IsA.html +0 -153
  45. data/docs/Mocha/ParameterMatchers/KindOf.html +0 -153
  46. data/docs/Mocha/ParameterMatchers/Not.html +0 -153
  47. data/docs/Mocha/ParameterMatchers/Optionally.html +0 -153
  48. data/docs/Mocha/ParameterMatchers/RegexpMatches.html +0 -153
  49. data/docs/Mocha/ParameterMatchers/RespondsWith.html +0 -153
  50. data/docs/Mocha/ParameterMatchers/YamlEquivalent.html +0 -153
  51. data/docs/Mocha/Sequence.html +0 -149
  52. data/docs/Mocha/StateMachine.html +0 -527
  53. data/docs/Mocha/StateMachine/State.html +0 -140
  54. data/docs/Mocha/StateMachine/StatePredicate.html +0 -140
  55. data/docs/Mocha/StubbingError.html +0 -150
  56. data/docs/_index.html +0 -519
  57. data/docs/class_list.html +0 -51
  58. data/docs/css/common.css +0 -1
  59. data/docs/css/full_list.css +0 -58
  60. data/docs/css/style.css +0 -496
  61. data/docs/file.COPYING.html +0 -81
  62. data/docs/file.MIT-LICENSE.html +0 -85
  63. data/docs/file.README.html +0 -448
  64. data/docs/file.RELEASE.html +0 -1028
  65. data/docs/file_list.html +0 -71
  66. data/docs/frames.html +0 -17
  67. data/docs/index.html +0 -448
  68. data/docs/js/app.js +0 -303
  69. data/docs/js/full_list.js +0 -216
  70. data/docs/js/jquery.js +0 -4
  71. data/docs/method_list.html +0 -651
  72. data/docs/top-level-namespace.html +0 -118
  73. data/test/acceptance/acceptance_test_helper.rb +0 -42
  74. data/test/acceptance/bug_18914_test.rb +0 -37
  75. data/test/acceptance/bug_21465_test.rb +0 -31
  76. data/test/acceptance/bug_21563_test.rb +0 -22
  77. data/test/acceptance/display_matching_invocations_alongside_expectations_test.rb +0 -69
  78. data/test/acceptance/exception_rescue_test.rb +0 -53
  79. data/test/acceptance/expectations_on_multiple_methods_test.rb +0 -55
  80. data/test/acceptance/expected_invocation_count_test.rb +0 -229
  81. data/test/acceptance/failure_messages_test.rb +0 -77
  82. data/test/acceptance/issue_272_test.rb +0 -50
  83. data/test/acceptance/issue_457_test.rb +0 -31
  84. data/test/acceptance/issue_65_test.rb +0 -64
  85. data/test/acceptance/issue_70_test.rb +0 -53
  86. data/test/acceptance/mocha_example_test.rb +0 -106
  87. data/test/acceptance/mocha_test_result_test.rb +0 -83
  88. data/test/acceptance/mock_built_with_first_argument_type_being_string_test.rb +0 -98
  89. data/test/acceptance/mock_test.rb +0 -191
  90. data/test/acceptance/mocked_methods_dispatch_test.rb +0 -75
  91. data/test/acceptance/multiple_expectations_failure_message_test.rb +0 -66
  92. data/test/acceptance/multiple_yielding_test.rb +0 -59
  93. data/test/acceptance/optional_parameters_test.rb +0 -67
  94. data/test/acceptance/parameter_matcher_test.rb +0 -299
  95. data/test/acceptance/partial_mocks_test.rb +0 -44
  96. data/test/acceptance/prepend_test.rb +0 -86
  97. data/test/acceptance/prevent_use_of_mocha_outside_test_test.rb +0 -76
  98. data/test/acceptance/raise_exception_test.rb +0 -36
  99. data/test/acceptance/return_value_test.rb +0 -49
  100. data/test/acceptance/sequence_test.rb +0 -189
  101. data/test/acceptance/states_test.rb +0 -71
  102. data/test/acceptance/stub_any_instance_method_defined_on_superclass_test.rb +0 -64
  103. data/test/acceptance/stub_any_instance_method_test.rb +0 -301
  104. data/test/acceptance/stub_class_method_defined_on_active_record_association_proxy_test.rb +0 -105
  105. data/test/acceptance/stub_class_method_defined_on_class_test.rb +0 -78
  106. data/test/acceptance/stub_class_method_defined_on_module_test.rb +0 -73
  107. data/test/acceptance/stub_class_method_defined_on_superclass_test.rb +0 -144
  108. data/test/acceptance/stub_everything_test.rb +0 -53
  109. data/test/acceptance/stub_instance_method_defined_on_active_record_association_proxy_test.rb +0 -91
  110. data/test/acceptance/stub_instance_method_defined_on_class_and_aliased_test.rb +0 -67
  111. data/test/acceptance/stub_instance_method_defined_on_class_test.rb +0 -67
  112. data/test/acceptance/stub_instance_method_defined_on_kernel_module_test.rb +0 -136
  113. data/test/acceptance/stub_instance_method_defined_on_module_test.rb +0 -76
  114. data/test/acceptance/stub_instance_method_defined_on_object_class_test.rb +0 -75
  115. data/test/acceptance/stub_instance_method_defined_on_singleton_class_test.rb +0 -67
  116. data/test/acceptance/stub_instance_method_defined_on_superclass_test.rb +0 -70
  117. data/test/acceptance/stub_method_defined_on_module_and_aliased_test.rb +0 -38
  118. data/test/acceptance/stub_module_method_test.rb +0 -200
  119. data/test/acceptance/stub_test.rb +0 -49
  120. data/test/acceptance/stubba_example_test.rb +0 -103
  121. data/test/acceptance/stubba_test_result_test.rb +0 -71
  122. data/test/acceptance/stubbing_error_backtrace_test.rb +0 -63
  123. data/test/acceptance/stubbing_frozen_object_test.rb +0 -88
  124. data/test/acceptance/stubbing_method_accepting_block_parameter_test.rb +0 -52
  125. data/test/acceptance/stubbing_method_unnecessarily_test.rb +0 -63
  126. data/test/acceptance/stubbing_nil_test.rb +0 -60
  127. data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +0 -157
  128. data/test/acceptance/stubbing_non_existent_class_method_test.rb +0 -157
  129. data/test/acceptance/stubbing_non_existent_instance_method_test.rb +0 -145
  130. data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +0 -128
  131. data/test/acceptance/stubbing_non_public_class_method_test.rb +0 -163
  132. data/test/acceptance/stubbing_non_public_instance_method_test.rb +0 -141
  133. data/test/acceptance/stubbing_on_non_mock_object_test.rb +0 -70
  134. data/test/acceptance/stubbing_same_class_method_on_parent_and_child_classes_test.rb +0 -33
  135. data/test/acceptance/throw_test.rb +0 -42
  136. data/test/acceptance/unexpected_invocation_test.rb +0 -23
  137. data/test/acceptance/unstubbing_test.rb +0 -194
  138. data/test/acceptance/yielding_test.rb +0 -80
  139. data/test/assertions.rb +0 -8
  140. data/test/deprecation_disabler.rb +0 -15
  141. data/test/execution_point.rb +0 -36
  142. data/test/integration/mini_test_test.rb +0 -8
  143. data/test/integration/shared_tests.rb +0 -178
  144. data/test/integration/test_unit_test.rb +0 -8
  145. data/test/method_definer.rb +0 -16
  146. data/test/mini_test_result.rb +0 -96
  147. data/test/minitest_result.rb +0 -48
  148. data/test/simple_counter.rb +0 -11
  149. data/test/test_helper.rb +0 -58
  150. data/test/test_runner.rb +0 -58
  151. data/test/test_unit_result.rb +0 -22
  152. data/test/unit/any_instance_method_test.rb +0 -175
  153. data/test/unit/array_inspect_test.rb +0 -14
  154. data/test/unit/backtrace_filter_test.rb +0 -17
  155. data/test/unit/cardinality_test.rb +0 -72
  156. data/test/unit/central_test.rb +0 -98
  157. data/test/unit/change_state_side_effect_test.rb +0 -37
  158. data/test/unit/class_methods_test.rb +0 -69
  159. data/test/unit/configuration_test.rb +0 -37
  160. data/test/unit/date_time_inspect_test.rb +0 -19
  161. data/test/unit/exception_raiser_test.rb +0 -45
  162. data/test/unit/expectation_list_test.rb +0 -82
  163. data/test/unit/expectation_test.rb +0 -504
  164. data/test/unit/hash_inspect_test.rb +0 -14
  165. data/test/unit/hooks_test.rb +0 -35
  166. data/test/unit/in_state_ordering_constraint_test.rb +0 -39
  167. data/test/unit/instance_method_test.rb +0 -282
  168. data/test/unit/method_matcher_test.rb +0 -26
  169. data/test/unit/mock_test.rb +0 -372
  170. data/test/unit/mockery_test.rb +0 -171
  171. data/test/unit/module_methods_test.rb +0 -16
  172. data/test/unit/object_inspect_test.rb +0 -60
  173. data/test/unit/object_methods_test.rb +0 -63
  174. data/test/unit/parameter_matchers/all_of_test.rb +0 -24
  175. data/test/unit/parameter_matchers/any_of_test.rb +0 -24
  176. data/test/unit/parameter_matchers/anything_test.rb +0 -19
  177. data/test/unit/parameter_matchers/equals_test.rb +0 -23
  178. data/test/unit/parameter_matchers/equivalent_uri_test.rb +0 -41
  179. data/test/unit/parameter_matchers/has_entries_test.rb +0 -51
  180. data/test/unit/parameter_matchers/has_entry_test.rb +0 -128
  181. data/test/unit/parameter_matchers/has_key_test.rb +0 -54
  182. data/test/unit/parameter_matchers/has_value_test.rb +0 -55
  183. data/test/unit/parameter_matchers/includes_test.rb +0 -106
  184. data/test/unit/parameter_matchers/instance_of_test.rb +0 -23
  185. data/test/unit/parameter_matchers/is_a_test.rb +0 -23
  186. data/test/unit/parameter_matchers/kind_of_test.rb +0 -23
  187. data/test/unit/parameter_matchers/not_test.rb +0 -24
  188. data/test/unit/parameter_matchers/regexp_matches_test.rb +0 -45
  189. data/test/unit/parameter_matchers/responds_with_test.rb +0 -38
  190. data/test/unit/parameter_matchers/stub_matcher.rb +0 -23
  191. data/test/unit/parameter_matchers/yaml_equivalent_test.rb +0 -23
  192. data/test/unit/parameters_matcher_test.rb +0 -119
  193. data/test/unit/receivers_test.rb +0 -96
  194. data/test/unit/return_values_test.rb +0 -66
  195. data/test/unit/sequence_test.rb +0 -100
  196. data/test/unit/single_return_value_test.rb +0 -17
  197. data/test/unit/state_machine_test.rb +0 -96
  198. data/test/unit/string_inspect_test.rb +0 -9
  199. data/test/unit/thrower_test.rb +0 -23
  200. data/test/unit/yield_parameters_test.rb +0 -73
@@ -1,76 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/not_initialized_error'
3
-
4
- class PreventUseOfMochaOutsideTestTest < Mocha::TestCase
5
- include AcceptanceTest
6
-
7
- def setup
8
- setup_acceptance_test
9
- mocha_teardown
10
- end
11
-
12
- def teardown
13
- teardown_acceptance_test
14
- end
15
-
16
- def test_should_raise_exception_when_mock_called_outside_test
17
- assert_raises(Mocha::NotInitializedError) { mock('object') }
18
- end
19
-
20
- def test_should_raise_exception_when_stub_called_outside_test
21
- assert_raises(Mocha::NotInitializedError) { stub('object') }
22
- end
23
-
24
- def test_should_raise_exception_when_stub_everything_called_outside_test
25
- assert_raises(Mocha::NotInitializedError) { stub_everything('object') }
26
- end
27
-
28
- def test_should_raise_exception_when_states_called_outside_test
29
- assert_raises(Mocha::NotInitializedError) { states('state-machine') }
30
- end
31
-
32
- def test_should_raise_exception_when_expects_called_on_instance_outside_test
33
- instance = Class.new.new
34
- assert_raises(Mocha::NotInitializedError) { instance.expects(:expected_method) }
35
- end
36
-
37
- def test_should_raise_exception_when_expects_called_on_class_outside_test
38
- klass = Class.new
39
- assert_raises(Mocha::NotInitializedError) { klass.expects(:expected_method) }
40
- end
41
-
42
- def test_should_raise_exception_when_expects_called_on_any_instance_outside_test
43
- klass = Class.new
44
- assert_raises(Mocha::NotInitializedError) { klass.any_instance.expects(:expected_method) }
45
- end
46
-
47
- def test_should_raise_exception_when_stubs_called_on_instance_outside_test
48
- instance = Class.new.new
49
- assert_raises(Mocha::NotInitializedError) { instance.stubs(:expected_method) }
50
- end
51
-
52
- def test_should_raise_exception_when_stubs_called_on_class_outside_test
53
- klass = Class.new
54
- assert_raises(Mocha::NotInitializedError) { klass.stubs(:expected_method) }
55
- end
56
-
57
- def test_should_raise_exception_when_stubs_called_on_any_instance_outside_test
58
- klass = Class.new
59
- assert_raises(Mocha::NotInitializedError) { klass.any_instance.stubs(:expected_method) }
60
- end
61
-
62
- def test_should_raise_exception_when_unstub_called_on_instance_outside_test
63
- instance = Class.new.new
64
- assert_raises(Mocha::NotInitializedError) { instance.unstub(:expected_method) }
65
- end
66
-
67
- def test_should_raise_exception_when_unstub_called_on_class_outside_test
68
- klass = Class.new
69
- assert_raises(Mocha::NotInitializedError) { klass.unstub(:expected_method) }
70
- end
71
-
72
- def test_should_raise_exception_when_unstub_called_on_any_instance_outside_test
73
- klass = Class.new
74
- assert_raises(Mocha::NotInitializedError) { klass.any_instance.unstub(:expected_method) }
75
- end
76
- end
@@ -1,36 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
-
3
- class RaiseExceptionTest < Mocha::TestCase
4
- include AcceptanceTest
5
-
6
- def setup
7
- setup_acceptance_test
8
- end
9
-
10
- def teardown
11
- teardown_acceptance_test
12
- end
13
-
14
- def test_should_raise_exception
15
- exception_class = Class.new(StandardError)
16
- test_result = run_as_test do
17
- foo = stub('foo')
18
- foo.stubs(:bar).raises(exception_class, 'my-message')
19
- exception = assert_raises(exception_class) { foo.bar }
20
- assert_equal 'my-message', exception.message
21
- end
22
- assert_passed(test_result)
23
- end
24
-
25
- def test_should_raise_two_different_exceptions
26
- exception_one_class = Class.new(StandardError)
27
- exception_two_class = Class.new(StandardError)
28
- test_result = run_as_test do
29
- foo = stub('foo')
30
- foo.stubs(:bar).raises(exception_one_class).then.raises(exception_two_class)
31
- assert_raises(exception_one_class) { foo.bar }
32
- assert_raises(exception_two_class) { foo.bar }
33
- end
34
- assert_passed(test_result)
35
- end
36
- end
@@ -1,49 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
-
3
- class ReturnValueTest < Mocha::TestCase
4
- include AcceptanceTest
5
-
6
- def setup
7
- setup_acceptance_test
8
- end
9
-
10
- def teardown
11
- teardown_acceptance_test
12
- end
13
-
14
- def test_should_build_mock_and_explicitly_add_an_expectation_with_a_return_value
15
- test_result = run_as_test do
16
- foo = mock('foo')
17
- foo.expects(:bar).returns('bar')
18
- assert_equal 'bar', foo.bar
19
- end
20
- assert_passed(test_result)
21
- end
22
-
23
- def test_should_build_mock_incorporating_two_expectations_with_return_values
24
- test_result = run_as_test do
25
- foo = mock('foo', :bar => 'bar', :baz => 'baz')
26
- assert_equal 'bar', foo.bar
27
- assert_equal 'baz', foo.baz
28
- end
29
- assert_passed(test_result)
30
- end
31
-
32
- def test_should_build_stub_and_explicitly_add_an_expectation_with_a_return_value
33
- test_result = run_as_test do
34
- foo = stub('foo')
35
- foo.stubs(:bar).returns('bar')
36
- assert_equal 'bar', foo.bar
37
- end
38
- assert_passed(test_result)
39
- end
40
-
41
- def test_should_build_stub_incorporating_two_expectations_with_return_values
42
- test_result = run_as_test do
43
- foo = stub('foo', :bar => 'bar', :baz => 'baz')
44
- assert_equal 'bar', foo.bar
45
- assert_equal 'baz', foo.baz
46
- end
47
- assert_passed(test_result)
48
- end
49
- end
@@ -1,189 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
-
3
- class SequenceTest < Mocha::TestCase
4
- include AcceptanceTest
5
-
6
- def setup
7
- setup_acceptance_test
8
- end
9
-
10
- def teardown
11
- teardown_acceptance_test
12
- end
13
-
14
- def test_should_constrain_invocations_to_occur_in_expected_order
15
- test_result = run_as_test do
16
- mock = mock()
17
- sequence = sequence('one')
18
-
19
- mock.expects(:first).in_sequence(sequence)
20
- mock.expects(:second).in_sequence(sequence)
21
-
22
- mock.second
23
- mock.first
24
- end
25
- assert_failed(test_result)
26
- end
27
-
28
- def test_should_allow_invocations_in_sequence
29
- test_result = run_as_test do
30
- mock = mock()
31
- sequence = sequence('one')
32
-
33
- mock.expects(:first).in_sequence(sequence)
34
- mock.expects(:second).in_sequence(sequence)
35
-
36
- mock.first
37
- mock.second
38
- end
39
- assert_passed(test_result)
40
- end
41
-
42
- def test_should_constrain_invocations_to_occur_in_expected_order_even_if_expected_on_different_mocks
43
- test_result = run_as_test do
44
- mock_one = mock('1')
45
- mock_two = mock('2')
46
- sequence = sequence('one')
47
-
48
- mock_one.expects(:first).in_sequence(sequence)
49
- mock_two.expects(:second).in_sequence(sequence)
50
-
51
- mock_two.second
52
- mock_one.first
53
- end
54
- assert_failed(test_result)
55
- end
56
-
57
- def test_should_allow_invocations_in_sequence_even_if_expected_on_different_mocks
58
- test_result = run_as_test do
59
- mock_one = mock('1')
60
- mock_two = mock('2')
61
- sequence = sequence('one')
62
-
63
- mock_one.expects(:first).in_sequence(sequence)
64
- mock_two.expects(:second).in_sequence(sequence)
65
-
66
- mock_one.first
67
- mock_two.second
68
- end
69
- assert_passed(test_result)
70
- end
71
-
72
- def test_should_constrain_invocations_to_occur_in_expected_order_even_if_expected_on_partial_mocks
73
- test_result = run_as_test do
74
- partial_mock_one = '1'
75
- partial_mock_two = '2'
76
- sequence = sequence('one')
77
-
78
- partial_mock_one.expects(:first).in_sequence(sequence)
79
- partial_mock_two.expects(:second).in_sequence(sequence)
80
-
81
- partial_mock_two.second
82
- partial_mock_one.first
83
- end
84
- assert_failed(test_result)
85
- end
86
-
87
- def test_should_allow_invocations_in_sequence_even_if_expected_on_partial_mocks
88
- test_result = run_as_test do
89
- partial_mock_one = '1'
90
- partial_mock_two = '2'
91
- sequence = sequence('one')
92
-
93
- partial_mock_one.expects(:first).in_sequence(sequence)
94
- partial_mock_two.expects(:second).in_sequence(sequence)
95
-
96
- partial_mock_one.first
97
- partial_mock_two.second
98
- end
99
- assert_passed(test_result)
100
- end
101
-
102
- def test_should_allow_stub_expectations_to_be_skipped_in_sequence
103
- test_result = run_as_test do
104
- mock = mock()
105
- sequence = sequence('one')
106
-
107
- mock.expects(:first).in_sequence(sequence)
108
- mock.stubs(:second).in_sequence(sequence)
109
- mock.expects(:third).in_sequence(sequence)
110
-
111
- mock.first
112
- mock.third
113
- end
114
- assert_passed(test_result)
115
- end
116
-
117
- def test_should_regard_sequences_as_independent_of_each_other
118
- test_result = run_as_test do
119
- mock = mock()
120
- sequence_one = sequence('one')
121
- sequence_two = sequence('two')
122
-
123
- mock.expects(:first).in_sequence(sequence_one)
124
- mock.expects(:second).in_sequence(sequence_one)
125
-
126
- mock.expects(:third).in_sequence(sequence_two)
127
- mock.expects(:fourth).in_sequence(sequence_two)
128
-
129
- mock.first
130
- mock.third
131
- mock.second
132
- mock.fourth
133
- end
134
- assert_passed(test_result)
135
- end
136
-
137
- def test_should_include_sequence_in_failure_message
138
- test_result = run_as_test do
139
- mock = mock()
140
- sequence = sequence('one')
141
-
142
- mock.expects(:first).in_sequence(sequence)
143
- mock.expects(:second).in_sequence(sequence)
144
-
145
- mock.second
146
- mock.first
147
- end
148
- assert_failed(test_result)
149
- assert_match Regexp.new(%(in sequence "one")), test_result.failures.first.message
150
- end
151
-
152
- def test_should_allow_expectations_to_be_in_more_than_one_sequence
153
- test_result = run_as_test do
154
- mock = mock()
155
- sequence_one = sequence('one')
156
- sequence_two = sequence('two')
157
-
158
- mock.expects(:first).in_sequence(sequence_one)
159
- mock.expects(:second).in_sequence(sequence_two)
160
- mock.expects(:third).in_sequence(sequence_one).in_sequence(sequence_two)
161
-
162
- mock.first
163
- mock.third
164
- mock.second
165
- end
166
- assert_failed(test_result)
167
- assert_match Regexp.new(%(in sequence "one")), test_result.failures.first.message
168
- assert_match Regexp.new(%(in sequence "two")), test_result.failures.first.message
169
- end
170
-
171
- def test_should_have_shortcut_for_expectations_to_be_in_more_than_one_sequence
172
- test_result = run_as_test do
173
- mock = mock()
174
- sequence_one = sequence('one')
175
- sequence_two = sequence('two')
176
-
177
- mock.expects(:first).in_sequence(sequence_one)
178
- mock.expects(:second).in_sequence(sequence_two)
179
- mock.expects(:third).in_sequence(sequence_one, sequence_two)
180
-
181
- mock.first
182
- mock.third
183
- mock.second
184
- end
185
- assert_failed(test_result)
186
- assert_match Regexp.new(%(in sequence "one")), test_result.failures.first.message
187
- assert_match Regexp.new(%(in sequence "two")), test_result.failures.first.message
188
- end
189
- end
@@ -1,71 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
-
3
- class StatesTest < Mocha::TestCase
4
- include AcceptanceTest
5
-
6
- def setup
7
- setup_acceptance_test
8
- end
9
-
10
- def teardown
11
- teardown_acceptance_test
12
- end
13
-
14
- def test_should_constrain_expectations_to_occur_within_a_given_state
15
- test_result = run_as_test do
16
- mock = mock()
17
- readiness = states('readiness')
18
-
19
- mock.stubs(:first).when(readiness.is('ready'))
20
- mock.stubs(:second).then(readiness.is('ready'))
21
-
22
- mock.first
23
- end
24
- assert_failed(test_result)
25
- end
26
-
27
- def test_should_allow_expectations_to_occur_in_correct_state
28
- test_result = run_as_test do
29
- mock = mock()
30
- readiness = states('readiness')
31
-
32
- mock.stubs(:first).when(readiness.is('ready'))
33
- mock.stubs(:second).then(readiness.is('ready'))
34
-
35
- mock.second
36
- mock.first
37
- end
38
- assert_passed(test_result)
39
- end
40
-
41
- def test_should_be_able_to_start_in_a_specific_state
42
- test_result = run_as_test do
43
- mock = mock()
44
- readiness = states('readiness')
45
-
46
- mock.stubs(:first).when(readiness.is('ready'))
47
-
48
- readiness.starts_as('ready')
49
- mock.first
50
- end
51
- assert_passed(test_result)
52
- end
53
-
54
- def test_should_switch_state_when_method_raises_an_exception
55
- test_result = run_as_test do
56
- mock = mock()
57
- readiness = states('readiness')
58
-
59
- mock.expects(:first).raises.then(readiness.is('ready'))
60
- mock.expects(:second).when(readiness.is('ready'))
61
-
62
- begin
63
- mock.first
64
- rescue StandardError
65
- nil
66
- end
67
- mock.second
68
- end
69
- assert_passed(test_result)
70
- end
71
- end
@@ -1,64 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
-
3
- class StubAnyInstanceMethodDefinedOnSuperclassTest < Mocha::TestCase
4
- include AcceptanceTest
5
-
6
- def setup
7
- setup_acceptance_test
8
- end
9
-
10
- def teardown
11
- teardown_acceptance_test
12
- end
13
-
14
- def test_should_stub_method_and_leave_it_unchanged_after_test
15
- superklass = Class.new do
16
- def my_superclass_method
17
- :original_return_value
18
- end
19
- public :my_superclass_method
20
- end
21
- klass = Class.new(superklass)
22
- instance = klass.new
23
- assert_snapshot_unchanged(instance) do
24
- test_result = run_as_test do
25
- superklass.any_instance.stubs(:my_superclass_method).returns(:new_return_value)
26
- assert_equal :new_return_value, instance.my_superclass_method
27
- end
28
- assert_passed(test_result)
29
- end
30
- assert_equal :original_return_value, instance.my_superclass_method
31
- end
32
-
33
- def test_expect_method_on_any_instance_of_superclass_even_if_preceded_by_test_expecting_method_on_any_instance_of_subclass
34
- superklass = Class.new do
35
- def self.inspect
36
- 'superklass'
37
- end
38
-
39
- def my_instance_method; end
40
- end
41
- klass = Class.new(superklass) do
42
- def self.inspect
43
- 'klass'
44
- end
45
-
46
- def my_instance_method; end
47
- end
48
- test_result = run_as_tests(
49
- :test_1 => lambda {
50
- klass.any_instance.expects(:my_instance_method)
51
- klass.new.my_instance_method
52
- },
53
- :test_2 => lambda {
54
- superklass.any_instance.expects(:my_instance_method)
55
- }
56
- )
57
- assert_failed(test_result)
58
- assert_equal [
59
- 'not all expectations were satisfied',
60
- 'unsatisfied expectations:',
61
- '- expected exactly once, invoked never: #<AnyInstance:superklass>.my_instance_method(any_parameters)'
62
- ], test_result.failure_message_lines
63
- end
64
- end