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,118 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>
7
- Top Level Namespace
8
-
9
- &mdash; Mocha 1.11.2
10
-
11
- </title>
12
-
13
- <link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
14
-
15
- <link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
16
-
17
- <script type="text/javascript" charset="utf-8">
18
- pathId = "";
19
- relpath = '';
20
- </script>
21
-
22
-
23
- <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
24
-
25
- <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
26
-
27
-
28
- </head>
29
- <body>
30
- <div class="nav_wrap">
31
- <iframe id="nav" src="class_list.html?1"></iframe>
32
- <div id="resizer"></div>
33
- </div>
34
-
35
- <div id="main" tabindex="-1">
36
- <div id="header">
37
- <div id="menu">
38
-
39
- <a href="_index.html">Index</a> &raquo;
40
-
41
-
42
- <span class="title">Top Level Namespace</span>
43
-
44
- </div>
45
-
46
- <div id="search">
47
-
48
- <a class="full_list_link" id="class_list_link"
49
- href="class_list.html">
50
-
51
- <svg width="24" height="24">
52
- <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
- <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
- <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
- </svg>
56
- </a>
57
-
58
- </div>
59
- <div class="clear"></div>
60
- </div>
61
-
62
- <div id="content"><h1>Top Level Namespace
63
-
64
-
65
-
66
- </h1>
67
- <div class="box_info">
68
-
69
-
70
-
71
-
72
-
73
-
74
-
75
-
76
-
77
-
78
-
79
- </div>
80
-
81
- <h2>Defined Under Namespace</h2>
82
- <p class="children">
83
-
84
-
85
- <strong class="modules">Modules:</strong> <span class='object_link'><a href="Mocha.html" title="Mocha (module)">Mocha</a></span>
86
-
87
-
88
-
89
-
90
- </p>
91
-
92
-
93
-
94
-
95
-
96
-
97
-
98
-
99
-
100
- <script async src="https://www.googletagmanager.com/gtag/js?id=UA-625523-7"></script>
101
- <script>
102
- window.dataLayer = window.dataLayer || [];
103
- function gtag(){dataLayer.push(arguments);}
104
- gtag('js', new Date());
105
-
106
- gtag('config', 'UA-625523-7');
107
- </script>
108
- </div>
109
-
110
- <div id="footer">
111
- Generated on Sat Jan 4 17:36:46 2020 by
112
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
113
- 0.9.20 (ruby-2.6.5).
114
- </div>
115
-
116
- </div>
117
- </body>
118
- </html>
@@ -1,42 +0,0 @@
1
- require File.expand_path('../../test_helper', __FILE__)
2
- require 'test_runner'
3
- require 'mocha/configuration'
4
- require 'mocha/mockery'
5
- require 'introspection'
6
-
7
- if Mocha::Detection::MiniTest.testcase && (ENV['MOCHA_RUN_INTEGRATION_TESTS'] != 'test-unit')
8
- require 'mocha/minitest'
9
- else
10
- require 'mocha/test_unit'
11
- end
12
-
13
- module AcceptanceTest
14
- class FakeLogger
15
- attr_reader :warnings
16
-
17
- def initialize
18
- @warnings = []
19
- end
20
-
21
- def warn(message)
22
- @warnings << message
23
- end
24
- end
25
-
26
- attr_reader :logger
27
-
28
- include TestRunner
29
-
30
- def setup_acceptance_test
31
- Mocha::Configuration.reset_configuration
32
- @logger = FakeLogger.new
33
- mockery = Mocha::Mockery.instance
34
- mockery.logger = @logger
35
- end
36
-
37
- def teardown_acceptance_test
38
- Mocha::Configuration.reset_configuration
39
- end
40
-
41
- include Introspection::Assertions
42
- end
@@ -1,37 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
-
3
- class Bug18914Test < 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
- class AlwaysEql
15
- def my_method
16
- true
17
- end
18
-
19
- def ==(_other)
20
- true
21
- end
22
-
23
- def eql?(_other)
24
- true
25
- end
26
- end
27
-
28
- def test_should_not_allow_stubbing_of_non_mock_instance_disrupted_by_legitimate_overriding_of_eql_method
29
- always_eql1 = AlwaysEql.new
30
- always_eql1.stubs(:my_method).returns(false)
31
-
32
- always_eql2 = AlwaysEql.new
33
- always_eql2.stubs(:my_method).returns(false)
34
-
35
- assert_equal false, always_eql2.my_method
36
- end
37
- end
@@ -1,31 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
-
3
- class Bug21465Test < 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_allow_expected_method_name_to_be_a_string
15
- test_result = run_as_test do
16
- mock = mock()
17
- mock.expects('wibble')
18
- mock.wibble
19
- end
20
- assert_passed(test_result)
21
- end
22
-
23
- def test_should_allow_stubbed_method_name_to_be_a_string
24
- test_result = run_as_test do
25
- mock = mock()
26
- mock.stubs('wibble')
27
- mock.wibble
28
- end
29
- assert_passed(test_result)
30
- end
31
- end
@@ -1,22 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
-
3
- class Bug21563Test < 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_allow_stubbing_of_verified_method
15
- test_result = run_as_test do
16
- object = Object.new
17
- object.stubs(:verified?).returns(false)
18
- assert !object.verified?
19
- end
20
- assert_passed(test_result)
21
- end
22
- end
@@ -1,69 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
-
3
- class DisplayMatchingInvocationsAlongsideExpectationsTest < Mocha::TestCase
4
- include AcceptanceTest
5
-
6
- def setup
7
- setup_acceptance_test
8
- Mocha.configuration.display_matching_invocations_on_failure = true
9
- end
10
-
11
- def test_should_display_results
12
- test_result = run_as_test do
13
- foo = mock('foo')
14
- foo.expects(:bar).with(1).returns('a')
15
- foo.stubs(:bar).with(any_parameters).returns('f').raises(StandardError).throws(:tag, 'value')
16
-
17
- foo.bar(1, 2)
18
- assert_raises(StandardError) { foo.bar(3, 4) }
19
- assert_throws(:tag) { foo.bar(5, 6) }
20
- end
21
- assert_invocations(
22
- test_result,
23
- '- allowed any number of times, invoked 3 times: #<Mock:foo>.bar(any_parameters)',
24
- ' - #<Mock:foo>.bar(1, 2) # => "f"',
25
- ' - #<Mock:foo>.bar(3, 4) # => raised StandardError',
26
- ' - #<Mock:foo>.bar(5, 6) # => threw (:tag, "value")'
27
- )
28
- end
29
-
30
- def test_should_display_yields
31
- test_result = run_as_test do
32
- foo = mock('foo')
33
- foo.expects(:bar).with(1).returns('a')
34
- foo.stubs(:bar).with(any_parameters).multiple_yields('bc', %w[d e]).returns('f').raises(StandardError).throws(:tag, 'value')
35
-
36
- foo.bar(1, 2) { |_ignored| }
37
- assert_raises(StandardError) { foo.bar(3, 4) { |_ignored| } }
38
- assert_throws(:tag) { foo.bar(5, 6) { |_ignored| } }
39
- end
40
- assert_invocations(
41
- test_result,
42
- '- allowed any number of times, invoked 3 times: #<Mock:foo>.bar(any_parameters)',
43
- ' - #<Mock:foo>.bar(1, 2) { ... } # => "f" after yielding ("bc"), then ("d", "e")',
44
- ' - #<Mock:foo>.bar(3, 4) { ... } # => raised StandardError after yielding ("bc"), then ("d", "e")',
45
- ' - #<Mock:foo>.bar(5, 6) { ... } # => threw (:tag, "value") after yielding ("bc"), then ("d", "e")'
46
- )
47
- end
48
-
49
- def test_should_display_empty_yield_and_return
50
- test_result = run_as_test do
51
- foo = mock('foo')
52
- foo.expects(:bar).with(1).returns('a')
53
- foo.stubs(:bar).with(any_parameters).yields
54
-
55
- foo.bar(1, 2) { |_ignored| }
56
- end
57
- assert_invocations(
58
- test_result,
59
- '- allowed any number of times, invoked once: #<Mock:foo>.bar(any_parameters)',
60
- ' - #<Mock:foo>.bar(1, 2) { ... } # => nil after yielding ()'
61
- )
62
- end
63
-
64
- def assert_invocations(test_result, *invocations)
65
- assert_failed(test_result)
66
- assert_equal invocations.unshift('satisfied expectations:'),
67
- test_result.failure_message_lines[-invocations.size..-1]
68
- end
69
- end
@@ -1,53 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
-
3
- class ExceptionRescueTest < 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_unexpected_invocation_exception_is_not_caught_by_standard_rescue
15
- test_result = run_as_test do
16
- mock = mock('mock')
17
- begin
18
- mock.some_method
19
- rescue StandardError => e
20
- flunk "should not rescue #{e.class}"
21
- end
22
- end
23
- assert_failed(test_result)
24
- assert_equal 'unexpected invocation: #<Mock:mock>.some_method()', test_result.failure_message_lines[0]
25
- end
26
-
27
- def test_invocation_never_expected_exception_is_not_caught_by_standard_rescue
28
- test_result = run_as_test do
29
- mock = mock('mock')
30
- mock.expects(:some_method).never
31
- begin
32
- mock.some_method
33
- rescue StandardError => e
34
- flunk "should not rescue #{e.class}"
35
- end
36
- end
37
- assert_failed(test_result)
38
- assert_equal 'unexpected invocation: #<Mock:mock>.some_method()', test_result.failure_message_lines[0]
39
- end
40
-
41
- def test_unsatisfied_expectation_exception_is_not_caught_by_standard_rescue
42
- test_result = run_as_test do
43
- mock = mock('mock')
44
- mock.expects(:some_method)
45
- end
46
- assert_failed(test_result)
47
- assert_equal [
48
- 'not all expectations were satisfied',
49
- 'unsatisfied expectations:',
50
- '- expected exactly once, invoked never: #<Mock:mock>.some_method(any_parameters)'
51
- ], test_result.failure_message_lines
52
- end
53
- end
@@ -1,55 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
-
3
- class ExpectationsOnMultipleMethodsTest < 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_expect_calls_to_multiple_methods
15
- instance = Class.new do
16
- def my_instance_method_1
17
- :original_return_value_1
18
- end
19
-
20
- def my_instance_method_2
21
- :original_return_value_2
22
- end
23
- end.new
24
- test_result = run_as_test do
25
- instance.expects(
26
- :my_instance_method_1 => :new_return_value_1,
27
- :my_instance_method_2 => :new_return_value_2
28
- )
29
- assert_equal :new_return_value_1, instance.my_instance_method_1
30
- assert_equal :new_return_value_2, instance.my_instance_method_2
31
- end
32
- assert_passed(test_result)
33
- end
34
-
35
- def test_should_stub_calls_to_multiple_methods
36
- instance = Class.new do
37
- def my_instance_method_1
38
- :original_return_value_1
39
- end
40
-
41
- def my_instance_method_2
42
- :original_return_value_2
43
- end
44
- end.new
45
- test_result = run_as_test do
46
- instance.stubs(
47
- :my_instance_method_1 => :new_return_value_1,
48
- :my_instance_method_2 => :new_return_value_2
49
- )
50
- assert_equal :new_return_value_1, instance.my_instance_method_1
51
- assert_equal :new_return_value_2, instance.my_instance_method_2
52
- end
53
- assert_passed(test_result)
54
- end
55
- end
@@ -1,229 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
-
3
- class ExpectedInvocationCountTest < 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_pass_if_method_is_never_expected_and_is_never_called
15
- test_result = run_as_test do
16
- mock = mock('mock')
17
- mock.expects(:method).never
18
- 0.times { mock.method }
19
- end
20
- assert_passed(test_result)
21
- end
22
-
23
- def test_should_fail_fast_if_method_is_never_expected_but_is_called_once
24
- test_result = run_as_test do
25
- mock = mock('mock')
26
- mock.expects(:method).never
27
- 1.times { mock.method }
28
- end
29
- assert_failed(test_result)
30
- assert_equal [
31
- 'unexpected invocation: #<Mock:mock>.method()',
32
- 'unsatisfied expectations:',
33
- '- expected never, invoked once: #<Mock:mock>.method(any_parameters)'
34
- ], test_result.failure_message_lines
35
- end
36
-
37
- def test_should_pass_if_method_is_expected_twice_and_is_called_twice
38
- test_result = run_as_test do
39
- mock = mock('mock')
40
- mock.expects(:method).twice
41
- 2.times { mock.method }
42
- end
43
- assert_passed(test_result)
44
- end
45
-
46
- def test_should_fail_if_method_is_expected_twice_but_is_called_once
47
- test_result = run_as_test do
48
- mock = mock('mock')
49
- mock.expects(:method).twice
50
- 1.times { mock.method }
51
- end
52
- assert_failed(test_result)
53
- assert_equal [
54
- 'not all expectations were satisfied',
55
- 'unsatisfied expectations:',
56
- '- expected exactly twice, invoked once: #<Mock:mock>.method(any_parameters)'
57
- ], test_result.failure_message_lines
58
- end
59
-
60
- def test_should_fail_fast_if_method_is_expected_twice_but_is_called_three_times
61
- test_result = run_as_test do
62
- mock = mock('mock')
63
- mock.expects(:method).twice
64
- 3.times { mock.method }
65
- end
66
- assert_failed(test_result)
67
- assert_equal [
68
- 'unexpected invocation: #<Mock:mock>.method()',
69
- 'unsatisfied expectations:',
70
- '- expected exactly twice, invoked 3 times: #<Mock:mock>.method(any_parameters)'
71
- ], test_result.failure_message_lines
72
- end
73
-
74
- def test_should_pass_if_method_is_expected_between_two_and_four_times_and_is_called_twice
75
- test_result = run_as_test do
76
- mock = mock('mock')
77
- mock.expects(:method).times(2..4)
78
- 2.times { mock.method }
79
- end
80
- assert_passed(test_result)
81
- end
82
-
83
- def test_should_pass_if_method_is_expected_between_two_and_four_times_and_is_called_three_times
84
- test_result = run_as_test do
85
- mock = mock('mock')
86
- mock.expects(:method).times(2..4)
87
- 3.times { mock.method }
88
- end
89
- assert_passed(test_result)
90
- end
91
-
92
- def test_should_pass_if_method_is_expected_between_two_and_four_times_and_is_called_four_times
93
- test_result = run_as_test do
94
- mock = mock('mock')
95
- mock.expects(:method).times(2..4)
96
- 4.times { mock.method }
97
- end
98
- assert_passed(test_result)
99
- end
100
-
101
- def test_should_fail_if_method_is_expected_between_two_and_four_times_and_is_called_once
102
- test_result = run_as_test do
103
- mock = mock('mock')
104
- mock.expects(:method).times(2..4)
105
- 1.times { mock.method }
106
- end
107
- assert_failed(test_result)
108
- assert_equal [
109
- 'not all expectations were satisfied',
110
- 'unsatisfied expectations:',
111
- '- expected between 2 and 4 times, invoked once: #<Mock:mock>.method(any_parameters)'
112
- ], test_result.failure_message_lines
113
- end
114
-
115
- def test_should_fail_fast_if_method_is_expected_between_two_and_four_times_and_is_called_five_times
116
- test_result = run_as_test do
117
- mock = mock('mock')
118
- mock.expects(:method).times(2..4)
119
- 5.times { mock.method }
120
- end
121
- assert_failed(test_result)
122
- assert_equal [
123
- 'unexpected invocation: #<Mock:mock>.method()',
124
- 'unsatisfied expectations:',
125
- '- expected between 2 and 4 times, invoked 5 times: #<Mock:mock>.method(any_parameters)'
126
- ], test_result.failure_message_lines
127
- end
128
-
129
- def test_should_pass_if_method_is_expected_at_least_once_and_is_called_once
130
- test_result = run_as_test do
131
- mock = mock('mock')
132
- mock.expects(:method).at_least_once
133
- 1.times { mock.method }
134
- end
135
- assert_passed(test_result)
136
- end
137
-
138
- def test_should_pass_if_method_is_expected_at_least_once_and_is_called_twice
139
- test_result = run_as_test do
140
- mock = mock('mock')
141
- mock.expects(:method).at_least_once
142
- 2.times { mock.method }
143
- end
144
- assert_passed(test_result)
145
- end
146
-
147
- def test_should_fail_if_method_is_expected_at_least_once_but_is_never_called
148
- test_result = run_as_test do
149
- mock = mock('mock')
150
- mock.expects(:method).at_least_once
151
- 0.times { mock.method }
152
- end
153
- assert_failed(test_result)
154
- assert_equal [
155
- 'not all expectations were satisfied',
156
- 'unsatisfied expectations:',
157
- '- expected at least once, invoked never: #<Mock:mock>.method(any_parameters)'
158
- ], test_result.failure_message_lines
159
- end
160
-
161
- def test_should_pass_if_method_is_expected_at_most_once_and_is_never_called
162
- test_result = run_as_test do
163
- mock = mock('mock')
164
- mock.expects(:method).at_most_once
165
- 0.times { mock.method }
166
- end
167
- assert_passed(test_result)
168
- end
169
-
170
- def test_should_pass_if_method_is_expected_at_most_once_and_called_once
171
- test_result = run_as_test do
172
- mock = mock('mock')
173
- mock.expects(:method).at_most_once
174
- 1.times { mock.method }
175
- end
176
- assert_passed(test_result)
177
- end
178
-
179
- def test_should_fail_fast_if_method_is_expected_at_most_once_but_is_called_twice
180
- test_result = run_as_test do
181
- mock = mock('mock')
182
- mock.expects(:method).at_most_once
183
- 2.times { mock.method }
184
- end
185
- assert_failed(test_result)
186
- assert_equal [
187
- 'unexpected invocation: #<Mock:mock>.method()',
188
- 'unsatisfied expectations:',
189
- '- expected at most once, invoked twice: #<Mock:mock>.method(any_parameters)'
190
- ], test_result.failure_message_lines
191
- end
192
-
193
- def test_should_pass_if_method_is_never_expected_and_is_never_called_even_if_everything_is_stubbed
194
- test_result = run_as_test do
195
- stub = stub_everything('stub')
196
- stub.expects(:method).never
197
- 0.times { stub.method }
198
- end
199
- assert_passed(test_result)
200
- end
201
-
202
- def test_should_fail_fast_if_method_is_never_expected_but_is_called_once_even_if_everything_is_stubbed
203
- test_result = run_as_test do
204
- stub = stub_everything('stub')
205
- stub.expects(:method).never
206
- 1.times { stub.method }
207
- end
208
- assert_failed(test_result)
209
- assert_equal [
210
- 'unexpected invocation: #<Mock:stub>.method()',
211
- 'unsatisfied expectations:',
212
- '- expected never, invoked once: #<Mock:stub>.method(any_parameters)'
213
- ], test_result.failure_message_lines
214
- end
215
-
216
- def test_should_fail_fast_if_there_is_no_matching_expectation
217
- test_result = run_as_test do
218
- mock = mock('mock')
219
- mock.expects(:method).with(1)
220
- 1.times { mock.method }
221
- end
222
- assert_failed(test_result)
223
- assert_equal [
224
- 'unexpected invocation: #<Mock:mock>.method()',
225
- 'unsatisfied expectations:',
226
- '- expected exactly once, invoked never: #<Mock:mock>.method(1)'
227
- ], test_result.failure_message_lines
228
- end
229
- end