mocha 0.5.6 → 3.1.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 (191) hide show
  1. checksums.yaml +7 -0
  2. data/.gemtest +0 -0
  3. data/.github/FUNDING.yml +1 -0
  4. data/.rubocop.yml +92 -0
  5. data/.rubocop_todo.yml +39 -0
  6. data/.yardopts +25 -0
  7. data/CONTRIBUTING.md +7 -0
  8. data/COPYING.md +3 -0
  9. data/Gemfile +17 -0
  10. data/{MIT-LICENSE → MIT-LICENSE.md} +2 -2
  11. data/README.md +361 -0
  12. data/RELEASE.md +1247 -0
  13. data/Rakefile +165 -123
  14. data/gemfiles/Gemfile.minitest.latest +8 -0
  15. data/gemfiles/Gemfile.rubocop +9 -0
  16. data/gemfiles/Gemfile.test-unit.latest +8 -0
  17. data/lib/mocha/any_instance_method.rb +12 -26
  18. data/lib/mocha/any_instance_receiver.rb +20 -0
  19. data/lib/mocha/api.rb +213 -0
  20. data/lib/mocha/argument_iterator.rb +17 -0
  21. data/lib/mocha/backtrace_filter.rb +25 -0
  22. data/lib/mocha/block_matchers.rb +33 -0
  23. data/lib/mocha/cardinality.rb +110 -0
  24. data/lib/mocha/central.rb +33 -22
  25. data/lib/mocha/change_state_side_effect.rb +17 -0
  26. data/lib/mocha/class_methods.rb +67 -0
  27. data/lib/mocha/configuration.rb +338 -0
  28. data/lib/mocha/default_name.rb +15 -0
  29. data/lib/mocha/default_receiver.rb +13 -0
  30. data/lib/mocha/deprecation.rb +6 -15
  31. data/lib/mocha/detection/minitest.rb +25 -0
  32. data/lib/mocha/detection/test_unit.rb +30 -0
  33. data/lib/mocha/error_with_filtered_backtrace.rb +15 -0
  34. data/lib/mocha/exception_raiser.rb +11 -10
  35. data/lib/mocha/expectation.rb +562 -171
  36. data/lib/mocha/expectation_error.rb +9 -14
  37. data/lib/mocha/expectation_error_factory.rb +37 -0
  38. data/lib/mocha/expectation_list.rb +30 -14
  39. data/lib/mocha/hooks.rb +55 -0
  40. data/lib/mocha/ignoring_warning.rb +20 -0
  41. data/lib/mocha/impersonating_any_instance_name.rb +13 -0
  42. data/lib/mocha/impersonating_name.rb +13 -0
  43. data/lib/mocha/in_state_ordering_constraint.rb +17 -0
  44. data/lib/mocha/inspect.rb +54 -30
  45. data/lib/mocha/instance_method.rb +17 -4
  46. data/lib/mocha/integration/assertion_counter.rb +15 -0
  47. data/lib/mocha/integration/minitest/adapter.rb +71 -0
  48. data/lib/mocha/integration/minitest.rb +29 -0
  49. data/lib/mocha/integration/monkey_patcher.rb +26 -0
  50. data/lib/mocha/integration/test_unit/adapter.rb +61 -0
  51. data/lib/mocha/integration/test_unit.rb +29 -0
  52. data/lib/mocha/integration.rb +5 -0
  53. data/lib/mocha/invocation.rb +76 -0
  54. data/lib/mocha/logger.rb +26 -0
  55. data/lib/mocha/macos_version.rb +7 -0
  56. data/lib/mocha/method_matcher.rb +8 -10
  57. data/lib/mocha/minitest.rb +7 -0
  58. data/lib/mocha/mock.rb +333 -108
  59. data/lib/mocha/mockery.rb +192 -0
  60. data/lib/mocha/name.rb +13 -0
  61. data/lib/mocha/not_initialized_error.rb +9 -0
  62. data/lib/mocha/object_methods.rb +183 -0
  63. data/lib/mocha/object_receiver.rb +20 -0
  64. data/lib/mocha/parameter_matchers/all_of.rb +38 -28
  65. data/lib/mocha/parameter_matchers/any_of.rb +44 -33
  66. data/lib/mocha/parameter_matchers/any_parameters.rb +33 -26
  67. data/lib/mocha/parameter_matchers/anything.rb +31 -22
  68. data/lib/mocha/parameter_matchers/base_methods.rb +64 -0
  69. data/lib/mocha/parameter_matchers/equals.rb +36 -25
  70. data/lib/mocha/parameter_matchers/equivalent_uri.rb +65 -0
  71. data/lib/mocha/parameter_matchers/has_entries.rb +48 -29
  72. data/lib/mocha/parameter_matchers/has_entry.rb +90 -42
  73. data/lib/mocha/parameter_matchers/has_key.rb +39 -26
  74. data/lib/mocha/parameter_matchers/has_keys.rb +59 -0
  75. data/lib/mocha/parameter_matchers/has_value.rb +39 -26
  76. data/lib/mocha/parameter_matchers/includes.rb +88 -23
  77. data/lib/mocha/parameter_matchers/instance_methods.rb +28 -0
  78. data/lib/mocha/parameter_matchers/instance_of.rb +37 -26
  79. data/lib/mocha/parameter_matchers/is_a.rb +38 -26
  80. data/lib/mocha/parameter_matchers/kind_of.rb +39 -26
  81. data/lib/mocha/parameter_matchers/not.rb +37 -26
  82. data/lib/mocha/parameter_matchers/optionally.rb +52 -17
  83. data/lib/mocha/parameter_matchers/positional_or_keyword_hash.rb +91 -0
  84. data/lib/mocha/parameter_matchers/regexp_matches.rb +37 -25
  85. data/lib/mocha/parameter_matchers/responds_with.rb +82 -0
  86. data/lib/mocha/parameter_matchers/yaml_equivalent.rb +55 -0
  87. data/lib/mocha/parameter_matchers.rb +12 -5
  88. data/lib/mocha/parameters_matcher.rb +28 -19
  89. data/lib/mocha/raised_exception.rb +13 -0
  90. data/lib/mocha/return_values.rb +13 -18
  91. data/lib/mocha/ruby_version.rb +7 -0
  92. data/lib/mocha/sequence.rb +23 -17
  93. data/lib/mocha/single_return_value.rb +8 -18
  94. data/lib/mocha/state_machine.rb +95 -0
  95. data/lib/mocha/stubbed_method.rb +96 -0
  96. data/lib/mocha/stubbing_error.rb +10 -0
  97. data/lib/mocha/test_unit.rb +7 -0
  98. data/lib/mocha/thrower.rb +15 -0
  99. data/lib/mocha/thrown_object.rb +14 -0
  100. data/lib/mocha/version.rb +5 -0
  101. data/lib/mocha/yield_parameters.rb +12 -20
  102. data/lib/mocha.rb +19 -17
  103. data/mocha.gemspec +40 -0
  104. metadata +129 -145
  105. data/COPYING +0 -3
  106. data/README +0 -35
  107. data/RELEASE +0 -188
  108. data/examples/misc.rb +0 -44
  109. data/examples/mocha.rb +0 -26
  110. data/examples/stubba.rb +0 -65
  111. data/lib/mocha/auto_verify.rb +0 -118
  112. data/lib/mocha/class_method.rb +0 -66
  113. data/lib/mocha/infinite_range.rb +0 -25
  114. data/lib/mocha/is_a.rb +0 -9
  115. data/lib/mocha/metaclass.rb +0 -7
  116. data/lib/mocha/missing_expectation.rb +0 -17
  117. data/lib/mocha/multiple_yields.rb +0 -20
  118. data/lib/mocha/no_yields.rb +0 -11
  119. data/lib/mocha/object.rb +0 -110
  120. data/lib/mocha/parameter_matchers/base.rb +0 -15
  121. data/lib/mocha/parameter_matchers/object.rb +0 -9
  122. data/lib/mocha/pretty_parameters.rb +0 -28
  123. data/lib/mocha/setup_and_teardown.rb +0 -23
  124. data/lib/mocha/single_yield.rb +0 -18
  125. data/lib/mocha/standalone.rb +0 -32
  126. data/lib/mocha/stub.rb +0 -18
  127. data/lib/mocha/test_case_adapter.rb +0 -49
  128. data/lib/mocha_standalone.rb +0 -2
  129. data/lib/stubba.rb +0 -2
  130. data/test/acceptance/expected_invocation_count_acceptance_test.rb +0 -187
  131. data/test/acceptance/mocha_acceptance_test.rb +0 -98
  132. data/test/acceptance/mock_with_initializer_block_acceptance_test.rb +0 -44
  133. data/test/acceptance/mocked_methods_dispatch_acceptance_test.rb +0 -71
  134. data/test/acceptance/optional_parameters_acceptance_test.rb +0 -63
  135. data/test/acceptance/parameter_matcher_acceptance_test.rb +0 -117
  136. data/test/acceptance/partial_mocks_acceptance_test.rb +0 -40
  137. data/test/acceptance/sequence_acceptance_test.rb +0 -179
  138. data/test/acceptance/standalone_acceptance_test.rb +0 -131
  139. data/test/acceptance/stubba_acceptance_test.rb +0 -102
  140. data/test/active_record_test_case.rb +0 -36
  141. data/test/deprecation_disabler.rb +0 -15
  142. data/test/execution_point.rb +0 -34
  143. data/test/integration/mocha_test_result_integration_test.rb +0 -105
  144. data/test/integration/stubba_integration_test.rb +0 -89
  145. data/test/integration/stubba_test_result_integration_test.rb +0 -85
  146. data/test/method_definer.rb +0 -18
  147. data/test/test_helper.rb +0 -12
  148. data/test/test_runner.rb +0 -31
  149. data/test/unit/any_instance_method_test.rb +0 -126
  150. data/test/unit/array_inspect_test.rb +0 -16
  151. data/test/unit/auto_verify_test.rb +0 -129
  152. data/test/unit/central_test.rb +0 -124
  153. data/test/unit/class_method_test.rb +0 -200
  154. data/test/unit/date_time_inspect_test.rb +0 -21
  155. data/test/unit/expectation_error_test.rb +0 -24
  156. data/test/unit/expectation_list_test.rb +0 -75
  157. data/test/unit/expectation_raiser_test.rb +0 -28
  158. data/test/unit/expectation_test.rb +0 -483
  159. data/test/unit/hash_inspect_test.rb +0 -16
  160. data/test/unit/infinite_range_test.rb +0 -53
  161. data/test/unit/metaclass_test.rb +0 -22
  162. data/test/unit/method_matcher_test.rb +0 -23
  163. data/test/unit/missing_expectation_test.rb +0 -42
  164. data/test/unit/mock_test.rb +0 -323
  165. data/test/unit/multiple_yields_test.rb +0 -18
  166. data/test/unit/no_yield_test.rb +0 -18
  167. data/test/unit/object_inspect_test.rb +0 -37
  168. data/test/unit/object_test.rb +0 -165
  169. data/test/unit/parameter_matchers/all_of_test.rb +0 -26
  170. data/test/unit/parameter_matchers/any_of_test.rb +0 -26
  171. data/test/unit/parameter_matchers/anything_test.rb +0 -21
  172. data/test/unit/parameter_matchers/has_entries_test.rb +0 -30
  173. data/test/unit/parameter_matchers/has_entry_test.rb +0 -40
  174. data/test/unit/parameter_matchers/has_key_test.rb +0 -25
  175. data/test/unit/parameter_matchers/has_value_test.rb +0 -25
  176. data/test/unit/parameter_matchers/includes_test.rb +0 -25
  177. data/test/unit/parameter_matchers/instance_of_test.rb +0 -25
  178. data/test/unit/parameter_matchers/is_a_test.rb +0 -25
  179. data/test/unit/parameter_matchers/kind_of_test.rb +0 -25
  180. data/test/unit/parameter_matchers/not_test.rb +0 -26
  181. data/test/unit/parameter_matchers/regexp_matches_test.rb +0 -25
  182. data/test/unit/parameter_matchers/stub_matcher.rb +0 -23
  183. data/test/unit/parameters_matcher_test.rb +0 -121
  184. data/test/unit/return_values_test.rb +0 -63
  185. data/test/unit/sequence_test.rb +0 -104
  186. data/test/unit/setup_and_teardown_test.rb +0 -76
  187. data/test/unit/single_return_value_test.rb +0 -33
  188. data/test/unit/single_yield_test.rb +0 -18
  189. data/test/unit/string_inspect_test.rb +0 -11
  190. data/test/unit/stub_test.rb +0 -24
  191. data/test/unit/yield_parameters_test.rb +0 -93
@@ -0,0 +1,96 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'ruby2_keywords'
4
+ require 'mocha/ruby_version'
5
+
6
+ module Mocha
7
+ class StubbedMethod
8
+ class PrependedModule < Module
9
+ end
10
+
11
+ attr_reader :stubba_object, :method_name
12
+
13
+ def initialize(stubba_object, method_name)
14
+ @stubba_object = stubba_object
15
+ @original_method = nil
16
+ @original_visibility = nil
17
+ @method_name = method_name.to_sym
18
+ end
19
+
20
+ def stub
21
+ hide_original_method
22
+ define_new_method
23
+ end
24
+
25
+ def unstub
26
+ remove_new_method
27
+ mock.unstub(method_name.to_sym)
28
+ return if mock.any_expectations?
29
+
30
+ reset_mocha
31
+ end
32
+
33
+ def mock
34
+ stubbee.mocha
35
+ end
36
+
37
+ def reset_mocha
38
+ stubbee.reset_mocha
39
+ end
40
+
41
+ def hide_original_method
42
+ return unless original_method_owner.__method_exists__?(method_name)
43
+
44
+ store_original_method_visibility
45
+ use_prepended_module_for_stub_method
46
+ end
47
+
48
+ def define_new_method
49
+ self_in_scope = self
50
+ method_name_in_scope = method_name
51
+ stub_method_owner.send(:define_method, method_name) do |*args, &block|
52
+ self_in_scope.mock.handle_method_call(method_name_in_scope, args, block)
53
+ end
54
+ stub_method_owner.send(:ruby2_keywords, method_name)
55
+ retain_original_visibility(stub_method_owner)
56
+ end
57
+
58
+ def remove_new_method
59
+ stub_method_owner.send(:remove_method, method_name)
60
+ end
61
+
62
+ def matches?(other)
63
+ return false unless other.instance_of?(self.class)
64
+
65
+ (stubba_object.object_id == other.stubba_object.object_id) && # rubocop:disable Lint/IdentityComparison
66
+ (method_name == other.method_name)
67
+ end
68
+
69
+ alias_method :==, :eql?
70
+
71
+ def to_s
72
+ "#{stubba_object}.#{method_name}"
73
+ end
74
+
75
+ private
76
+
77
+ def retain_original_visibility(method_owner)
78
+ return unless @original_visibility
79
+
80
+ Module.instance_method(@original_visibility).bind(method_owner).call(method_name)
81
+ end
82
+
83
+ def store_original_method_visibility
84
+ @original_visibility = original_method_owner.__method_visibility__(method_name)
85
+ end
86
+
87
+ def use_prepended_module_for_stub_method
88
+ @stub_method_owner = PrependedModule.new
89
+ original_method_owner.__send__ :prepend, @stub_method_owner
90
+ end
91
+
92
+ def stub_method_owner
93
+ @stub_method_owner ||= original_method_owner
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'mocha/error_with_filtered_backtrace'
4
+
5
+ module Mocha
6
+ # Exception raised when stubbing a particular method is not allowed.
7
+ #
8
+ # @see Configuration.prevent
9
+ class StubbingError < ErrorWithFilteredBacktrace; end
10
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'mocha/integration/test_unit'
4
+
5
+ unless Mocha::Integration::TestUnit.activate
6
+ raise "Test::Unit must be loaded *before* `require 'mocha/test_unit'`."
7
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mocha
4
+ class Thrower
5
+ def initialize(tag, object = nil)
6
+ @tag = tag
7
+ @object = object
8
+ end
9
+
10
+ def evaluate(invocation)
11
+ invocation.threw(@tag, @object)
12
+ throw @tag, @object
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mocha
4
+ class ThrownObject
5
+ def initialize(tag, value = nil)
6
+ @tag = tag
7
+ @value = value
8
+ end
9
+
10
+ def mocha_inspect
11
+ "threw (#{@tag.mocha_inspect}, #{@value.mocha_inspect})"
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mocha
4
+ VERSION = '3.1.0'
5
+ end
@@ -1,31 +1,23 @@
1
- require 'mocha/no_yields'
2
- require 'mocha/single_yield'
3
- require 'mocha/multiple_yields'
1
+ # frozen_string_literal: true
4
2
 
5
- module Mocha # :nodoc:
6
-
7
- class YieldParameters # :nodoc:
8
-
3
+ module Mocha
4
+ class YieldParameters
9
5
  def initialize
10
6
  @parameter_groups = []
11
7
  end
12
-
8
+
13
9
  def next_invocation
14
10
  case @parameter_groups.length
15
- when 0; NoYields.new
16
- when 1; @parameter_groups.first
11
+ when 0 then []
12
+ when 1 then @parameter_groups.first
17
13
  else @parameter_groups.shift
18
14
  end
19
15
  end
20
-
21
- def add(*parameters)
22
- @parameter_groups << SingleYield.new(*parameters)
23
- end
24
-
25
- def multiple_add(*parameter_groups)
26
- @parameter_groups << MultipleYields.new(*parameter_groups)
16
+
17
+ def add(*parameter_groups)
18
+ @parameter_groups << parameter_groups.map do |pg|
19
+ pg.is_a?(Array) ? pg : [pg]
20
+ end
27
21
  end
28
-
29
22
  end
30
-
31
- end
23
+ end
data/lib/mocha.rb CHANGED
@@ -1,19 +1,21 @@
1
- require 'mocha_standalone'
2
- require 'mocha/test_case_adapter'
1
+ # frozen_string_literal: true
3
2
 
4
- require 'test/unit/testcase'
3
+ require 'mocha/version'
5
4
 
6
- module Test
7
-
8
- module Unit
9
-
10
- class TestCase
11
-
12
- include Mocha::Standalone
13
- include Mocha::TestCaseAdapter
14
-
15
- end
16
-
17
- end
18
-
19
- end
5
+ # Mocha's top level namespace, which also provides the ability to {.configure configure} Mocha's behavior.
6
+ #
7
+ # Methods in the {API} are directly available in +Test::Unit::TestCase+, +Minitest::Unit::TestCase+.
8
+ #
9
+ # The mock creation methods are {API#mock mock}, {API#stub stub} and {API#stub_everything stub_everything}, all of which return a {Mock}
10
+ #
11
+ # A {Mock} {Mock#expects expects} or {Mock#stubs stubs} a method, which sets up (returns) an {Expectation}.
12
+ #
13
+ # An {Expectation} can be further qualified through its {Expectation fluent interface}.
14
+ #
15
+ # {ParameterMatchers} for {Expectation#with} restrict the parameter values which will match the {Expectation}.
16
+ #
17
+ # Adapters in {Integration} provide built-in support for +Minitest+ and +Test::Unit+.
18
+ #
19
+ # Integration {Hooks} enable support for other test frameworks.
20
+ module Mocha
21
+ end
data/mocha.gemspec ADDED
@@ -0,0 +1,40 @@
1
+ lib = File.expand_path('../lib/', __FILE__)
2
+ $LOAD_PATH.unshift lib unless $LOAD_PATH.include?(lib)
3
+ require 'mocha/version'
4
+
5
+ DESCRIPTION =
6
+ 'A library for mocking and stubbing with a unified, simple and readable syntax ' \
7
+ 'for both full & partial mocking. Built-in support for Minitest and Test::Unit. ' \
8
+ 'Supported by many other test frameworks, e.g. RSpec.'.freeze
9
+
10
+ Gem::Specification.new do |s|
11
+ s.name = 'mocha'
12
+ s.version = Mocha::VERSION
13
+ s.licenses = ['MIT', 'BSD-2-Clause']
14
+ s.required_ruby_version = '>= 2.2'
15
+
16
+ s.authors = ['James Mead']
17
+ s.description = DESCRIPTION
18
+ s.email = 'mocha-developer@googlegroups.com'
19
+
20
+ s.files = Dir.chdir(File.expand_path('..', __FILE__)) do
21
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(docs|test)/}) }
22
+ end
23
+ s.files.delete('.circleci/config.yml')
24
+ s.files.delete('.gitignore')
25
+
26
+ s.homepage = 'https://mocha.jamesmead.org'
27
+ s.require_paths = ['lib']
28
+ s.summary = 'Mocking and stubbing library'
29
+ s.metadata = {
30
+ 'bug_tracker_uri' => 'https://github.com/freerange/mocha/issues',
31
+ 'changelog_uri' => 'https://github.com/freerange/mocha/blob/main/RELEASE.md',
32
+ 'documentation_uri' => 'https://mocha.jamesmead.org/',
33
+ 'funding_uri' => 'https://github.com/sponsors/floehopper',
34
+ 'homepage_uri' => s.homepage,
35
+ 'source_code_uri' => 'https://github.com/freerange/mocha',
36
+ 'rubygems_mfa_required' => 'true'
37
+ }
38
+
39
+ s.add_dependency 'ruby2_keywords', '>= 0.0.5'
40
+ end
metadata CHANGED
@@ -1,181 +1,165 @@
1
- --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.4
3
- specification_version: 1
1
+ --- !ruby/object:Gem::Specification
4
2
  name: mocha
5
- version: !ruby/object:Gem::Version
6
- version: 0.5.6
7
- date: 2007-12-23 00:00:00 +00:00
8
- summary: Mocking and stubbing library
9
- require_paths:
10
- - lib
11
- email: mocha-developer@rubyforge.org
12
- homepage: http://mocha.rubyforge.org
13
- rubyforge_project: mocha
14
- description: Mocking and stubbing library with JMock/SchMock syntax, which allows mocking and stubbing of methods on real (non-mock) classes.
15
- autorequire: mocha
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: true
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
24
- version:
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.1.0
25
5
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
- authors:
6
+ authors:
30
7
  - James Mead
31
- files:
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: ruby2_keywords
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: 0.0.5
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: 0.0.5
26
+ description: A library for mocking and stubbing with a unified, simple and readable
27
+ syntax for both full & partial mocking. Built-in support for Minitest and Test::Unit.
28
+ Supported by many other test frameworks, e.g. RSpec.
29
+ email: mocha-developer@googlegroups.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".gemtest"
35
+ - ".github/FUNDING.yml"
36
+ - ".rubocop.yml"
37
+ - ".rubocop_todo.yml"
38
+ - ".yardopts"
39
+ - CONTRIBUTING.md
40
+ - COPYING.md
41
+ - Gemfile
42
+ - MIT-LICENSE.md
43
+ - README.md
44
+ - RELEASE.md
45
+ - Rakefile
46
+ - gemfiles/Gemfile.minitest.latest
47
+ - gemfiles/Gemfile.rubocop
48
+ - gemfiles/Gemfile.test-unit.latest
49
+ - lib/mocha.rb
32
50
  - lib/mocha/any_instance_method.rb
33
- - lib/mocha/auto_verify.rb
51
+ - lib/mocha/any_instance_receiver.rb
52
+ - lib/mocha/api.rb
53
+ - lib/mocha/argument_iterator.rb
54
+ - lib/mocha/backtrace_filter.rb
55
+ - lib/mocha/block_matchers.rb
56
+ - lib/mocha/cardinality.rb
34
57
  - lib/mocha/central.rb
35
- - lib/mocha/class_method.rb
58
+ - lib/mocha/change_state_side_effect.rb
59
+ - lib/mocha/class_methods.rb
60
+ - lib/mocha/configuration.rb
61
+ - lib/mocha/default_name.rb
62
+ - lib/mocha/default_receiver.rb
36
63
  - lib/mocha/deprecation.rb
64
+ - lib/mocha/detection/minitest.rb
65
+ - lib/mocha/detection/test_unit.rb
66
+ - lib/mocha/error_with_filtered_backtrace.rb
37
67
  - lib/mocha/exception_raiser.rb
38
68
  - lib/mocha/expectation.rb
39
69
  - lib/mocha/expectation_error.rb
70
+ - lib/mocha/expectation_error_factory.rb
40
71
  - lib/mocha/expectation_list.rb
41
- - lib/mocha/infinite_range.rb
72
+ - lib/mocha/hooks.rb
73
+ - lib/mocha/ignoring_warning.rb
74
+ - lib/mocha/impersonating_any_instance_name.rb
75
+ - lib/mocha/impersonating_name.rb
76
+ - lib/mocha/in_state_ordering_constraint.rb
42
77
  - lib/mocha/inspect.rb
43
78
  - lib/mocha/instance_method.rb
44
- - lib/mocha/is_a.rb
45
- - lib/mocha/metaclass.rb
79
+ - lib/mocha/integration.rb
80
+ - lib/mocha/integration/assertion_counter.rb
81
+ - lib/mocha/integration/minitest.rb
82
+ - lib/mocha/integration/minitest/adapter.rb
83
+ - lib/mocha/integration/monkey_patcher.rb
84
+ - lib/mocha/integration/test_unit.rb
85
+ - lib/mocha/integration/test_unit/adapter.rb
86
+ - lib/mocha/invocation.rb
87
+ - lib/mocha/logger.rb
88
+ - lib/mocha/macos_version.rb
46
89
  - lib/mocha/method_matcher.rb
47
- - lib/mocha/missing_expectation.rb
90
+ - lib/mocha/minitest.rb
48
91
  - lib/mocha/mock.rb
49
- - lib/mocha/multiple_yields.rb
50
- - lib/mocha/no_yields.rb
51
- - lib/mocha/object.rb
92
+ - lib/mocha/mockery.rb
93
+ - lib/mocha/name.rb
94
+ - lib/mocha/not_initialized_error.rb
95
+ - lib/mocha/object_methods.rb
96
+ - lib/mocha/object_receiver.rb
97
+ - lib/mocha/parameter_matchers.rb
52
98
  - lib/mocha/parameter_matchers/all_of.rb
53
99
  - lib/mocha/parameter_matchers/any_of.rb
54
100
  - lib/mocha/parameter_matchers/any_parameters.rb
55
101
  - lib/mocha/parameter_matchers/anything.rb
56
- - lib/mocha/parameter_matchers/base.rb
102
+ - lib/mocha/parameter_matchers/base_methods.rb
57
103
  - lib/mocha/parameter_matchers/equals.rb
104
+ - lib/mocha/parameter_matchers/equivalent_uri.rb
58
105
  - lib/mocha/parameter_matchers/has_entries.rb
59
106
  - lib/mocha/parameter_matchers/has_entry.rb
60
107
  - lib/mocha/parameter_matchers/has_key.rb
108
+ - lib/mocha/parameter_matchers/has_keys.rb
61
109
  - lib/mocha/parameter_matchers/has_value.rb
62
110
  - lib/mocha/parameter_matchers/includes.rb
111
+ - lib/mocha/parameter_matchers/instance_methods.rb
63
112
  - lib/mocha/parameter_matchers/instance_of.rb
64
113
  - lib/mocha/parameter_matchers/is_a.rb
65
114
  - lib/mocha/parameter_matchers/kind_of.rb
66
115
  - lib/mocha/parameter_matchers/not.rb
67
- - lib/mocha/parameter_matchers/object.rb
68
116
  - lib/mocha/parameter_matchers/optionally.rb
117
+ - lib/mocha/parameter_matchers/positional_or_keyword_hash.rb
69
118
  - lib/mocha/parameter_matchers/regexp_matches.rb
70
- - lib/mocha/parameter_matchers.rb
119
+ - lib/mocha/parameter_matchers/responds_with.rb
120
+ - lib/mocha/parameter_matchers/yaml_equivalent.rb
71
121
  - lib/mocha/parameters_matcher.rb
72
- - lib/mocha/pretty_parameters.rb
122
+ - lib/mocha/raised_exception.rb
73
123
  - lib/mocha/return_values.rb
124
+ - lib/mocha/ruby_version.rb
74
125
  - lib/mocha/sequence.rb
75
- - lib/mocha/setup_and_teardown.rb
76
126
  - lib/mocha/single_return_value.rb
77
- - lib/mocha/single_yield.rb
78
- - lib/mocha/standalone.rb
79
- - lib/mocha/stub.rb
80
- - lib/mocha/test_case_adapter.rb
127
+ - lib/mocha/state_machine.rb
128
+ - lib/mocha/stubbed_method.rb
129
+ - lib/mocha/stubbing_error.rb
130
+ - lib/mocha/test_unit.rb
131
+ - lib/mocha/thrower.rb
132
+ - lib/mocha/thrown_object.rb
133
+ - lib/mocha/version.rb
81
134
  - lib/mocha/yield_parameters.rb
82
- - lib/mocha.rb
83
- - lib/mocha_standalone.rb
84
- - lib/stubba.rb
85
- - test/acceptance/expected_invocation_count_acceptance_test.rb
86
- - test/acceptance/mocha_acceptance_test.rb
87
- - test/acceptance/mock_with_initializer_block_acceptance_test.rb
88
- - test/acceptance/mocked_methods_dispatch_acceptance_test.rb
89
- - test/acceptance/optional_parameters_acceptance_test.rb
90
- - test/acceptance/parameter_matcher_acceptance_test.rb
91
- - test/acceptance/partial_mocks_acceptance_test.rb
92
- - test/acceptance/sequence_acceptance_test.rb
93
- - test/acceptance/standalone_acceptance_test.rb
94
- - test/acceptance/stubba_acceptance_test.rb
95
- - test/active_record_test_case.rb
96
- - test/deprecation_disabler.rb
97
- - test/execution_point.rb
98
- - test/integration/mocha_test_result_integration_test.rb
99
- - test/integration/stubba_integration_test.rb
100
- - test/integration/stubba_test_result_integration_test.rb
101
- - test/method_definer.rb
102
- - test/test_helper.rb
103
- - test/test_runner.rb
104
- - test/unit/any_instance_method_test.rb
105
- - test/unit/array_inspect_test.rb
106
- - test/unit/auto_verify_test.rb
107
- - test/unit/central_test.rb
108
- - test/unit/class_method_test.rb
109
- - test/unit/date_time_inspect_test.rb
110
- - test/unit/expectation_error_test.rb
111
- - test/unit/expectation_list_test.rb
112
- - test/unit/expectation_raiser_test.rb
113
- - test/unit/expectation_test.rb
114
- - test/unit/hash_inspect_test.rb
115
- - test/unit/infinite_range_test.rb
116
- - test/unit/metaclass_test.rb
117
- - test/unit/method_matcher_test.rb
118
- - test/unit/missing_expectation_test.rb
119
- - test/unit/mock_test.rb
120
- - test/unit/multiple_yields_test.rb
121
- - test/unit/no_yield_test.rb
122
- - test/unit/object_inspect_test.rb
123
- - test/unit/object_test.rb
124
- - test/unit/parameter_matchers/all_of_test.rb
125
- - test/unit/parameter_matchers/any_of_test.rb
126
- - test/unit/parameter_matchers/anything_test.rb
127
- - test/unit/parameter_matchers/has_entries_test.rb
128
- - test/unit/parameter_matchers/has_entry_test.rb
129
- - test/unit/parameter_matchers/has_key_test.rb
130
- - test/unit/parameter_matchers/has_value_test.rb
131
- - test/unit/parameter_matchers/includes_test.rb
132
- - test/unit/parameter_matchers/instance_of_test.rb
133
- - test/unit/parameter_matchers/is_a_test.rb
134
- - test/unit/parameter_matchers/kind_of_test.rb
135
- - test/unit/parameter_matchers/not_test.rb
136
- - test/unit/parameter_matchers/regexp_matches_test.rb
137
- - test/unit/parameter_matchers/stub_matcher.rb
138
- - test/unit/parameters_matcher_test.rb
139
- - test/unit/return_values_test.rb
140
- - test/unit/sequence_test.rb
141
- - test/unit/setup_and_teardown_test.rb
142
- - test/unit/single_return_value_test.rb
143
- - test/unit/single_yield_test.rb
144
- - test/unit/string_inspect_test.rb
145
- - test/unit/stub_test.rb
146
- - test/unit/yield_parameters_test.rb
147
- - examples/misc.rb
148
- - examples/mocha.rb
149
- - examples/stubba.rb
150
- - COPYING
151
- - MIT-LICENSE
152
- - Rakefile
153
- - README
154
- - RELEASE
155
- test_files: []
156
-
157
- rdoc_options:
158
- - --title
159
- - Mocha
160
- - --main
161
- - README
162
- - --line-numbers
163
- extra_rdoc_files:
164
- - README
165
- - COPYING
166
- executables: []
167
-
168
- extensions: []
169
-
135
+ - mocha.gemspec
136
+ homepage: https://mocha.jamesmead.org
137
+ licenses:
138
+ - MIT
139
+ - BSD-2-Clause
140
+ metadata:
141
+ bug_tracker_uri: https://github.com/freerange/mocha/issues
142
+ changelog_uri: https://github.com/freerange/mocha/blob/main/RELEASE.md
143
+ documentation_uri: https://mocha.jamesmead.org/
144
+ funding_uri: https://github.com/sponsors/floehopper
145
+ homepage_uri: https://mocha.jamesmead.org
146
+ source_code_uri: https://github.com/freerange/mocha
147
+ rubygems_mfa_required: 'true'
148
+ rdoc_options: []
149
+ require_paths:
150
+ - lib
151
+ required_ruby_version: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: '2.2'
156
+ required_rubygems_version: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ">="
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
170
161
  requirements: []
171
-
172
- dependencies:
173
- - !ruby/object:Gem::Dependency
174
- name: rake
175
- version_requirement:
176
- version_requirements: !ruby/object:Gem::Version::Requirement
177
- requirements:
178
- - - ">"
179
- - !ruby/object:Gem::Version
180
- version: 0.0.0
181
- version:
162
+ rubygems_version: 4.0.3
163
+ specification_version: 4
164
+ summary: Mocking and stubbing library
165
+ test_files: []
data/COPYING DELETED
@@ -1,3 +0,0 @@
1
- Copyright Revieworld Ltd. 2006
2
-
3
- You may use, copy and redistribute this library under the same terms as Ruby itself (see http://www.ruby-lang.org/en/LICENSE.txt) or under the MIT license (see MIT-LICENSE file).
data/README DELETED
@@ -1,35 +0,0 @@
1
- = Mocha
2
-
3
- Mocha is a library for mocking and stubbing using a syntax like that of JMock[http://www.jmock.org], and SchMock[http://rubyforge.org/projects/schmock]. Most commonly Mocha is used in conjunction with Test::Unit[http://www.ruby-doc.org/core/classes/Test/Unit.html], but it can be used in other contexts.
4
-
5
- One of its main advantages is that it allows you to mock and stub methods on _real_ (non-mock) classes and instances. You can for example stub ActiveRecord[http://api.rubyonrails.com/classes/ActiveRecord/Base.html] instance methods like +create+, +save+, +destroy+ and even class methods like +find+ to avoid hitting the database in unit tests.
6
-
7
- Mocha provides a unified, simple and readable syntax for both traditional mocking and for mocking with _real_ objects.
8
-
9
- Mocha has been harvested from projects at Reevoo[http://www.reevoo.com] by me (James[http://blog.floehopper.org]) and my colleagues Ben[http://www.reevoo.com/blogs/bengriffiths], Chris[http://blog.seagul.co.uk] and Paul[http://po-ru.com]. Mocha is in use on real-world Rails[http://www.rubyonrails.org] projects.
10
-
11
- == Download and Installation
12
-
13
- Install the gem with the following command...
14
-
15
- $ gem install mocha
16
-
17
- Or install the Rails[http://www.rubyonrails.org] plugin...
18
-
19
- $ script/plugin install svn://rubyforge.org/var/svn/mocha/trunk
20
-
21
- Or download Mocha from here - http://rubyforge.org/projects/mocha
22
-
23
- == Examples
24
-
25
- * Quick Start - {Usage Examples}[link:examples/misc.html]
26
- * Traditional mocking - {Star Trek Example}[link:examples/mocha.html]
27
- * Setting expectations on real classes - {Order Example}[link:examples/stubba.html]
28
- * More examples on {Floehopper's Blog}[http://blog.floehopper.org]
29
- * {Mailing List Archives}[http://rubyforge.org/pipermail/mocha-developer/]
30
-
31
- == License
32
-
33
- Copyright Revieworld Ltd. 2006
34
-
35
- You may use, copy and redistribute this library under the same terms as {Ruby itself}[http://www.ruby-lang.org/en/LICENSE.txt] or under the {MIT license}[http://mocha.rubyforge.org/files/MIT-LICENSE.html].