mocha 0.10.5 → 0.11.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 (229) hide show
  1. data/COPYING.rdoc +1 -1
  2. data/README.rdoc +6 -4
  3. data/RELEASE.rdoc +12 -0
  4. data/Rakefile +29 -60
  5. data/doc/Mocha.html +112 -0
  6. data/doc/Mocha/API.html +898 -0
  7. data/doc/Mocha/ClassMethods.html +246 -0
  8. data/doc/Mocha/Configuration.html +471 -0
  9. data/doc/Mocha/Expectation.html +2570 -0
  10. data/doc/Mocha/Mock.html +830 -0
  11. data/doc/Mocha/ObjectMethods.html +668 -0
  12. data/doc/Mocha/ParameterMatchers.html +2715 -0
  13. data/doc/Mocha/ParameterMatchers/AllOf.html +137 -0
  14. data/doc/Mocha/ParameterMatchers/AnyOf.html +137 -0
  15. data/doc/Mocha/ParameterMatchers/AnyParameters.html +136 -0
  16. data/doc/Mocha/ParameterMatchers/Anything.html +136 -0
  17. data/doc/Mocha/ParameterMatchers/Base.html +419 -0
  18. data/doc/Mocha/ParameterMatchers/Equals.html +137 -0
  19. data/doc/Mocha/ParameterMatchers/HasEntries.html +137 -0
  20. data/doc/Mocha/ParameterMatchers/HasEntry.html +137 -0
  21. data/doc/Mocha/ParameterMatchers/HasKey.html +137 -0
  22. data/doc/Mocha/ParameterMatchers/HasValue.html +137 -0
  23. data/doc/Mocha/ParameterMatchers/Includes.html +137 -0
  24. data/doc/Mocha/ParameterMatchers/InstanceOf.html +137 -0
  25. data/doc/Mocha/ParameterMatchers/IsA.html +136 -0
  26. data/doc/Mocha/ParameterMatchers/KindOf.html +137 -0
  27. data/doc/Mocha/ParameterMatchers/Not.html +137 -0
  28. data/doc/Mocha/ParameterMatchers/Optionally.html +136 -0
  29. data/doc/Mocha/ParameterMatchers/QueryStringMatches.html +136 -0
  30. data/doc/Mocha/ParameterMatchers/RegexpMatches.html +137 -0
  31. data/doc/Mocha/ParameterMatchers/RespondsWith.html +137 -0
  32. data/doc/Mocha/ParameterMatchers/YamlEquivalent.html +137 -0
  33. data/doc/Mocha/Sequence.html +133 -0
  34. data/doc/Mocha/StateMachine.html +510 -0
  35. data/doc/Mocha/StateMachine/State.html +125 -0
  36. data/doc/Mocha/StateMachine/StatePredicate.html +125 -0
  37. data/doc/Mocha/StubbingError.html +134 -0
  38. data/doc/Mocha/UnexpectedInvocation.html +124 -0
  39. data/doc/_index.html +481 -0
  40. data/doc/class_list.html +47 -0
  41. data/doc/css/common.css +1 -0
  42. data/doc/css/full_list.css +55 -0
  43. data/doc/css/style.css +322 -0
  44. data/doc/file.COPYING.html +72 -0
  45. data/doc/file.MIT-LICENSE.html +86 -0
  46. data/doc/file.README.html +153 -0
  47. data/doc/file.RELEASE.html +933 -0
  48. data/doc/file.misc.html +108 -0
  49. data/doc/file.mocha.html +90 -0
  50. data/doc/file.stubba.html +129 -0
  51. data/doc/file_list.html +67 -0
  52. data/doc/frames.html +13 -0
  53. data/doc/index.html +153 -0
  54. data/doc/js/app.js +205 -0
  55. data/doc/js/full_list.js +173 -0
  56. data/doc/js/jquery.js +16 -0
  57. data/doc/method_list.html +510 -0
  58. data/doc/top-level-namespace.html +105 -0
  59. data/lib/mocha/any_instance_method.rb +16 -11
  60. data/lib/mocha/api.rb +120 -106
  61. data/lib/mocha/argument_iterator.rb +6 -6
  62. data/lib/mocha/backtrace_filter.rb +1 -1
  63. data/lib/mocha/cardinality.rb +21 -21
  64. data/lib/mocha/central.rb +8 -8
  65. data/lib/mocha/change_state_side_effect.rb +5 -5
  66. data/lib/mocha/class_method.rb +14 -19
  67. data/lib/mocha/configuration.rb +47 -37
  68. data/lib/mocha/deprecation.rb +8 -8
  69. data/lib/mocha/exception_raiser.rb +7 -7
  70. data/lib/mocha/expectation.rb +173 -77
  71. data/lib/mocha/expectation_error.rb +2 -2
  72. data/lib/mocha/expectation_list.rb +11 -11
  73. data/lib/mocha/in_state_ordering_constraint.rb +5 -5
  74. data/lib/mocha/inspect.rb +8 -8
  75. data/lib/mocha/instance_method.rb +1 -17
  76. data/lib/mocha/integration.rb +9 -9
  77. data/lib/mocha/integration/mini_test/assertion_counter.rb +9 -9
  78. data/lib/mocha/integration/mini_test/exception_translation.rb +6 -6
  79. data/lib/mocha/integration/mini_test/version_13.rb +6 -6
  80. data/lib/mocha/integration/mini_test/version_140.rb +6 -6
  81. data/lib/mocha/integration/mini_test/version_141.rb +6 -6
  82. data/lib/mocha/integration/mini_test/version_142_to_172.rb +7 -7
  83. data/lib/mocha/integration/mini_test/version_200.rb +7 -7
  84. data/lib/mocha/integration/test_unit/assertion_counter.rb +10 -10
  85. data/lib/mocha/integration/test_unit/gem_version_200.rb +6 -6
  86. data/lib/mocha/integration/test_unit/gem_version_201_to_202.rb +6 -6
  87. data/lib/mocha/integration/test_unit/ruby_version_185_and_below.rb +6 -6
  88. data/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb +6 -6
  89. data/lib/mocha/is_a.rb +1 -1
  90. data/lib/mocha/logger.rb +6 -6
  91. data/lib/mocha/method_matcher.rb +7 -7
  92. data/lib/mocha/mock.rb +85 -48
  93. data/lib/mocha/mockery.rb +47 -33
  94. data/lib/mocha/module_method.rb +2 -2
  95. data/lib/mocha/multiple_yields.rb +9 -9
  96. data/lib/mocha/names.rb +18 -18
  97. data/lib/mocha/no_yields.rb +7 -7
  98. data/lib/mocha/object.rb +104 -75
  99. data/lib/mocha/parameter_matchers.rb +3 -3
  100. data/lib/mocha/parameter_matchers/all_of.rb +22 -12
  101. data/lib/mocha/parameter_matchers/any_of.rb +23 -12
  102. data/lib/mocha/parameter_matchers/any_parameters.rb +15 -8
  103. data/lib/mocha/parameter_matchers/anything.rb +20 -11
  104. data/lib/mocha/parameter_matchers/base.rb +35 -27
  105. data/lib/mocha/parameter_matchers/equals.rb +23 -12
  106. data/lib/mocha/parameter_matchers/has_entries.rb +22 -12
  107. data/lib/mocha/parameter_matchers/has_entry.rb +31 -13
  108. data/lib/mocha/parameter_matchers/has_key.rb +21 -11
  109. data/lib/mocha/parameter_matchers/has_value.rb +21 -11
  110. data/lib/mocha/parameter_matchers/includes.rb +15 -5
  111. data/lib/mocha/parameter_matchers/instance_of.rb +23 -12
  112. data/lib/mocha/parameter_matchers/is_a.rb +23 -12
  113. data/lib/mocha/parameter_matchers/kind_of.rb +23 -12
  114. data/lib/mocha/parameter_matchers/not.rb +22 -12
  115. data/lib/mocha/parameter_matchers/object.rb +5 -3
  116. data/lib/mocha/parameter_matchers/optionally.rb +24 -12
  117. data/lib/mocha/parameter_matchers/query_string.rb +14 -3
  118. data/lib/mocha/parameter_matchers/regexp_matches.rb +21 -11
  119. data/lib/mocha/parameter_matchers/responds_with.rb +17 -6
  120. data/lib/mocha/parameter_matchers/yaml_equivalent.rb +16 -6
  121. data/lib/mocha/parameters_matcher.rb +8 -8
  122. data/lib/mocha/pretty_parameters.rb +7 -7
  123. data/lib/mocha/return_values.rb +11 -11
  124. data/lib/mocha/sequence.rb +23 -14
  125. data/lib/mocha/single_return_value.rb +7 -7
  126. data/lib/mocha/single_yield.rb +9 -9
  127. data/lib/mocha/standalone.rb +1 -1
  128. data/lib/mocha/state_machine.rb +61 -46
  129. data/lib/mocha/stubbing_error.rb +8 -5
  130. data/lib/mocha/thrower.rb +2 -2
  131. data/lib/mocha/unexpected_invocation.rb +9 -6
  132. data/lib/mocha/version.rb +1 -1
  133. data/lib/mocha/yield_parameters.rb +10 -10
  134. data/lib/mocha_standalone.rb +1 -1
  135. data/mocha.gemspec +4 -7
  136. data/test/acceptance/acceptance_test_helper.rb +10 -10
  137. data/test/acceptance/api_test.rb +20 -20
  138. data/test/acceptance/bug_18914_test.rb +12 -12
  139. data/test/acceptance/bug_21465_test.rb +6 -6
  140. data/test/acceptance/bug_21563_test.rb +5 -5
  141. data/test/acceptance/exception_rescue_test.rb +1 -1
  142. data/test/acceptance/expected_invocation_count_test.rb +17 -17
  143. data/test/acceptance/failure_messages_test.rb +13 -13
  144. data/test/acceptance/minitest_test.rb +39 -39
  145. data/test/acceptance/mocha_example_test.rb +26 -26
  146. data/test/acceptance/mocha_test_result_test.rb +13 -13
  147. data/test/acceptance/mock_test.rb +5 -5
  148. data/test/acceptance/mock_with_initializer_block_test.rb +5 -5
  149. data/test/acceptance/mocked_methods_dispatch_test.rb +4 -4
  150. data/test/acceptance/multiple_expectations_failure_message_test.rb +2 -2
  151. data/test/acceptance/optional_parameters_test.rb +5 -5
  152. data/test/acceptance/parameter_matcher_test.rb +18 -18
  153. data/test/acceptance/partial_mocks_test.rb +9 -9
  154. data/test/acceptance/raise_exception_test.rb +1 -1
  155. data/test/acceptance/return_value_test.rb +5 -5
  156. data/test/acceptance/sequence_test.rb +29 -29
  157. data/test/acceptance/states_test.rb +17 -17
  158. data/test/acceptance/stub_any_instance_method_test.rb +13 -13
  159. data/test/acceptance/stub_class_method_defined_on_active_record_association_proxy_test.rb +7 -7
  160. data/test/acceptance/stub_everything_test.rb +5 -5
  161. data/test/acceptance/stub_instance_method_defined_on_singleton_class_test.rb +1 -1
  162. data/test/acceptance/stub_module_method_test.rb +17 -17
  163. data/test/acceptance/stub_test.rb +5 -5
  164. data/test/acceptance/stubba_example_test.rb +24 -24
  165. data/test/acceptance/stubba_test_result_test.rb +11 -11
  166. data/test/acceptance/stubbing_error_backtrace_test.rb +6 -6
  167. data/test/acceptance/stubbing_frozen_object_test.rb +88 -0
  168. data/test/acceptance/stubbing_method_unnecessarily_test.rb +9 -9
  169. data/test/acceptance/stubbing_nil_test.rb +59 -0
  170. data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +13 -13
  171. data/test/acceptance/stubbing_non_existent_class_method_test.rb +15 -15
  172. data/test/acceptance/stubbing_non_existent_instance_method_test.rb +14 -14
  173. data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +13 -13
  174. data/test/acceptance/stubbing_non_public_class_method_test.rb +12 -12
  175. data/test/acceptance/stubbing_non_public_instance_method_test.rb +12 -12
  176. data/test/acceptance/stubbing_on_non_mock_object_test.rb +9 -9
  177. data/test/acceptance/stubbing_same_class_method_on_parent_and_child_classes_test.rb +35 -0
  178. data/test/acceptance/throw_test.rb +1 -1
  179. data/test/deprecation_disabler.rb +1 -1
  180. data/test/execution_point.rb +7 -7
  181. data/test/method_definer.rb +1 -1
  182. data/test/mini_test_result.rb +21 -21
  183. data/test/simple_counter.rb +5 -5
  184. data/test/test_helper.rb +1 -1
  185. data/test/test_runner.rb +22 -24
  186. data/test/test_unit_result.rb +20 -0
  187. data/test/unit/any_instance_method_test.rb +28 -32
  188. data/test/unit/array_inspect_test.rb +3 -3
  189. data/test/unit/backtrace_filter_test.rb +3 -3
  190. data/test/unit/cardinality_test.rb +12 -12
  191. data/test/unit/central_test.rb +18 -18
  192. data/test/unit/change_state_side_effect_test.rb +12 -12
  193. data/test/unit/class_method_test.rb +33 -91
  194. data/test/unit/date_time_inspect_test.rb +4 -4
  195. data/test/unit/exception_raiser_test.rb +5 -5
  196. data/test/unit/expectation_list_test.rb +7 -7
  197. data/test/unit/expectation_test.rb +66 -66
  198. data/test/unit/hash_inspect_test.rb +4 -4
  199. data/test/unit/in_state_ordering_constraint_test.rb +13 -13
  200. data/test/unit/method_matcher_test.rb +3 -3
  201. data/test/unit/mock_test.rb +40 -40
  202. data/test/unit/mockery_test.rb +25 -25
  203. data/test/unit/multiple_yields_test.rb +2 -2
  204. data/test/unit/no_yields_test.rb +2 -2
  205. data/test/unit/object_inspect_test.rb +4 -4
  206. data/test/unit/object_test.rb +15 -15
  207. data/test/unit/parameter_matchers/all_of_test.rb +6 -6
  208. data/test/unit/parameter_matchers/any_of_test.rb +6 -6
  209. data/test/unit/parameter_matchers/anything_test.rb +5 -5
  210. data/test/unit/parameter_matchers/has_entries_test.rb +10 -10
  211. data/test/unit/parameter_matchers/has_entry_test.rb +13 -13
  212. data/test/unit/parameter_matchers/has_key_test.rb +11 -11
  213. data/test/unit/parameter_matchers/has_value_test.rb +12 -12
  214. data/test/unit/parameter_matchers/includes_test.rb +4 -4
  215. data/test/unit/parameter_matchers/not_test.rb +6 -6
  216. data/test/unit/parameter_matchers/regexp_matches_test.rb +9 -9
  217. data/test/unit/parameter_matchers/responds_with_test.rb +6 -6
  218. data/test/unit/parameter_matchers/stub_matcher.rb +4 -4
  219. data/test/unit/parameter_matchers/yaml_equivalent_test.rb +6 -6
  220. data/test/unit/parameters_matcher_test.rb +16 -16
  221. data/test/unit/return_values_test.rb +5 -5
  222. data/test/unit/sequence_test.rb +10 -10
  223. data/test/unit/single_return_value_test.rb +3 -3
  224. data/test/unit/single_yield_test.rb +2 -2
  225. data/test/unit/state_machine_test.rb +19 -19
  226. data/test/unit/string_inspect_test.rb +2 -2
  227. data/test/unit/thrower_test.rb +1 -1
  228. data/test/unit/yield_parameters_test.rb +11 -11
  229. metadata +113 -101
@@ -1,28 +1,42 @@
1
1
  require 'mocha/parameter_matchers/base'
2
2
 
3
3
  module Mocha
4
-
4
+
5
5
  module ParameterMatchers
6
6
 
7
- # :call-seq: has_entry(key, value) -> parameter_matcher
8
- # has_entry(key => value) -> parameter_matcher
9
- #
10
7
  # Matches +Hash+ containing entry with +key+ and +value+.
8
+ #
9
+ # @overload def has_entry(key, value)
10
+ # @param [Object] key key for entry.
11
+ # @param [Object] value value for entry.
12
+ # @overload def has_entry(single_entry_hash)
13
+ # @param [Hash] single_entry_hash +Hash+ with single entry.
14
+ # @raise [ArgumentError] if +single_entry_hash+ does not contain exactly one entry.
15
+ #
16
+ # @return [HasEntry] parameter matcher.
17
+ #
18
+ # @see Expectation#with
19
+ #
20
+ # @example Actual parameter contains expected entry supplied as key and value.
11
21
  # object = mock()
12
22
  # object.expects(:method_1).with(has_entry('key_1', 1))
13
23
  # object.method_1('key_1' => 1, 'key_2' => 2)
14
24
  # # no error raised
15
25
  #
26
+ # @example Actual parameter contains expected entry supplied as +Hash+ entry.
16
27
  # object = mock()
17
28
  # object.expects(:method_1).with(has_entry('key_1' => 1))
18
29
  # object.method_1('key_1' => 1, 'key_2' => 2)
19
30
  # # no error raised
20
31
  #
32
+ # @example Actual parameter does not contain expected entry supplied as key and value.
21
33
  # object = mock()
22
34
  # object.expects(:method_1).with(has_entry('key_1', 1))
23
35
  # object.method_1('key_1' => 2, 'key_2' => 1)
24
36
  # # error raised, because method_1 was not called with Hash containing entry: 'key_1' => 1
25
37
  #
38
+ # @example Actual parameter does not contain expected entry supplied as +Hash+ entry.
39
+ #
26
40
  # object = mock()
27
41
  # object.expects(:method_1).with(has_entry('key_1' => 1))
28
42
  # object.method_1('key_1' => 2, 'key_2' => 1)
@@ -41,26 +55,30 @@ module Mocha
41
55
  end
42
56
  HasEntry.new(key, value)
43
57
  end
44
-
45
- class HasEntry < Base # :nodoc:
46
-
58
+
59
+ # Parameter matcher which matches when actual parameter contains expected +Hash+ entry.
60
+ class HasEntry < Base
61
+
62
+ # @private
47
63
  def initialize(key, value)
48
64
  @key, @value = key, value
49
65
  end
50
-
66
+
67
+ # @private
51
68
  def matches?(available_parameters)
52
69
  parameter = available_parameters.shift
53
70
  return false unless parameter.respond_to?(:keys) && parameter.respond_to?(:[])
54
71
  matching_keys = parameter.keys.select { |key| @key.to_matcher.matches?([key]) }
55
72
  matching_keys.any? { |key| @value.to_matcher.matches?([parameter[key]]) }
56
73
  end
57
-
74
+
75
+ # @private
58
76
  def mocha_inspect
59
77
  "has_entry(#{@key.mocha_inspect} => #{@value.mocha_inspect})"
60
78
  end
61
-
79
+
62
80
  end
63
-
81
+
64
82
  end
65
-
66
- end
83
+
84
+ end
@@ -1,17 +1,23 @@
1
1
  require 'mocha/parameter_matchers/base'
2
2
 
3
3
  module Mocha
4
-
4
+
5
5
  module ParameterMatchers
6
6
 
7
- # :call-seq: has_key(key) -> parameter_matcher
8
- #
9
7
  # Matches +Hash+ containing +key+.
8
+ #
9
+ # @param [Object] key expected key.
10
+ # @return [HasKey] parameter matcher.
11
+ #
12
+ # @see Expectation#with
13
+ #
14
+ # @example Actual parameter contains entry with expected key.
10
15
  # object = mock()
11
16
  # object.expects(:method_1).with(has_key('key_1'))
12
17
  # object.method_1('key_1' => 1, 'key_2' => 2)
13
18
  # # no error raised
14
19
  #
20
+ # @example Actual parameter does not contain entry with expected key.
15
21
  # object = mock()
16
22
  # object.expects(:method_1).with(has_key('key_1'))
17
23
  # object.method_1('key_2' => 2)
@@ -20,24 +26,28 @@ module Mocha
20
26
  HasKey.new(key)
21
27
  end
22
28
 
23
- class HasKey < Base # :nodoc:
24
-
29
+ # Parameter matcher which matches when actual parameter contains +Hash+ entry with expected key.
30
+ class HasKey < Base
31
+
32
+ # @private
25
33
  def initialize(key)
26
34
  @key = key
27
35
  end
28
-
36
+
37
+ # @private
29
38
  def matches?(available_parameters)
30
39
  parameter = available_parameters.shift
31
40
  return false unless parameter.respond_to?(:keys)
32
41
  parameter.keys.any? { |key| @key.to_matcher.matches?([key]) }
33
42
  end
34
-
43
+
44
+ # @private
35
45
  def mocha_inspect
36
46
  "has_key(#{@key.mocha_inspect})"
37
47
  end
38
-
48
+
39
49
  end
40
-
50
+
41
51
  end
42
-
43
- end
52
+
53
+ end
@@ -1,17 +1,23 @@
1
1
  require 'mocha/parameter_matchers/base'
2
2
 
3
3
  module Mocha
4
-
4
+
5
5
  module ParameterMatchers
6
6
 
7
- # :call-seq: has_value(value) -> parameter_matcher
8
- #
9
7
  # Matches +Hash+ containing +value+.
8
+ #
9
+ # @param [Object] value expected value.
10
+ # @return [HasValue] parameter matcher.
11
+ #
12
+ # @see Expectation#with
13
+ #
14
+ # @example Actual parameter contains entry with expected value.
10
15
  # object = mock()
11
16
  # object.expects(:method_1).with(has_value(1))
12
17
  # object.method_1('key_1' => 1, 'key_2' => 2)
13
18
  # # no error raised
14
19
  #
20
+ # @example Actual parameter does not contain entry with expected value.
15
21
  # object = mock()
16
22
  # object.expects(:method_1).with(has_value(1))
17
23
  # object.method_1('key_2' => 2)
@@ -20,24 +26,28 @@ module Mocha
20
26
  HasValue.new(value)
21
27
  end
22
28
 
23
- class HasValue < Base # :nodoc:
24
-
29
+ # Parameter matcher which matches when actual parameter contains +Hash+ entry with expected value.
30
+ class HasValue < Base
31
+
32
+ # @private
25
33
  def initialize(value)
26
34
  @value = value
27
35
  end
28
-
36
+
37
+ # @private
29
38
  def matches?(available_parameters)
30
39
  parameter = available_parameters.shift
31
40
  return false unless parameter.respond_to?(:values)
32
41
  parameter.values.any? { |value| @value.to_matcher.matches?([value]) }
33
42
  end
34
-
43
+
44
+ # @private
35
45
  def mocha_inspect
36
46
  "has_value(#{@value.mocha_inspect})"
37
47
  end
38
-
48
+
39
49
  end
40
-
50
+
41
51
  end
42
-
43
- end
52
+
53
+ end
@@ -1,35 +1,45 @@
1
1
  require 'mocha/parameter_matchers/base'
2
2
 
3
3
  module Mocha
4
-
4
+
5
5
  module ParameterMatchers
6
6
 
7
- # :call-seq: includes(item) -> parameter_matcher
7
+ # Matches any object that responds with +true+ to +include?(item)+.
8
+ #
9
+ # @param [Object] item expected item.
10
+ # @return [Includes] parameter matcher.
8
11
  #
9
- # Matches any object that responds true to include?(item)
12
+ # @see Expectation#with
13
+ #
14
+ # @example Actual parameter includes item.
10
15
  # object = mock()
11
16
  # object.expects(:method_1).with(includes('foo'))
12
17
  # object.method_1(['foo', 'bar'])
13
18
  # # no error raised
14
19
  #
20
+ # @example Actual parameter does not include item.
15
21
  # object.method_1(['baz'])
16
22
  # # error raised, because ['baz'] does not include 'foo'.
17
23
  def includes(item)
18
24
  Includes.new(item)
19
25
  end
20
26
 
21
- class Includes < Base # :nodoc:
27
+ # Parameter matcher which matches when actual parameter includes expected value.
28
+ class Includes < Base
22
29
 
30
+ # @private
23
31
  def initialize(item)
24
32
  @item = item
25
33
  end
26
34
 
35
+ # @private
27
36
  def matches?(available_parameters)
28
37
  parameter = available_parameters.shift
29
38
  return false unless parameter.respond_to?(:include?)
30
39
  return parameter.include?(@item)
31
40
  end
32
41
 
42
+ # @private
33
43
  def mocha_inspect
34
44
  "includes(#{@item.mocha_inspect})"
35
45
  end
@@ -37,5 +47,5 @@ module Mocha
37
47
  end
38
48
 
39
49
  end
40
-
50
+
41
51
  end
@@ -1,17 +1,24 @@
1
1
  require 'mocha/parameter_matchers/base'
2
2
 
3
3
  module Mocha
4
-
4
+
5
5
  module ParameterMatchers
6
6
 
7
- # :call-seq: instance_of(klass) -> parameter_matcher
8
- #
9
7
  # Matches any object that is an instance of +klass+
8
+ #
9
+ # @param [Class] klass expected class.
10
+ # @return [InstanceOf] parameter matcher.
11
+ #
12
+ # @see Expectation#with
13
+ # @see Kernel#instance_of?
14
+ #
15
+ # @example Actual parameter is an instance of +String+.
10
16
  # object = mock()
11
17
  # object.expects(:method_1).with(instance_of(String))
12
18
  # object.method_1('string')
13
19
  # # no error raised
14
20
  #
21
+ # @example Actual parameter is not an instance of +String+.
15
22
  # object = mock()
16
23
  # object.expects(:method_1).with(instance_of(String))
17
24
  # object.method_1(99)
@@ -19,24 +26,28 @@ module Mocha
19
26
  def instance_of(klass)
20
27
  InstanceOf.new(klass)
21
28
  end
22
-
23
- class InstanceOf < Base # :nodoc:
24
-
29
+
30
+ # Parameter matcher which matches when actual parameter is an instance of the specified class.
31
+ class InstanceOf < Base
32
+
33
+ # @private
25
34
  def initialize(klass)
26
35
  @klass = klass
27
36
  end
28
-
37
+
38
+ # @private
29
39
  def matches?(available_parameters)
30
40
  parameter = available_parameters.shift
31
41
  parameter.instance_of?(@klass)
32
42
  end
33
-
43
+
44
+ # @private
34
45
  def mocha_inspect
35
46
  "instance_of(#{@klass.mocha_inspect})"
36
47
  end
37
-
48
+
38
49
  end
39
-
50
+
40
51
  end
41
-
42
- end
52
+
53
+ end
@@ -1,17 +1,24 @@
1
1
  require 'mocha/parameter_matchers/base'
2
2
 
3
3
  module Mocha
4
-
4
+
5
5
  module ParameterMatchers
6
6
 
7
- # :call-seq: is_a(klass) -> parameter_matcher
7
+ # Matches any object that is a +klass+.
8
+ #
9
+ # @param [Class] klass expected class.
10
+ # @return [IsA] parameter matcher.
11
+ #
12
+ # @see Expectation#with
13
+ # @see Kernel#is_a?
8
14
  #
9
- # Matches any object that is a +klass+
15
+ # @example Actual parameter is a +Integer+.
10
16
  # object = mock()
11
17
  # object.expects(:method_1).with(is_a(Integer))
12
18
  # object.method_1(99)
13
19
  # # no error raised
14
20
  #
21
+ # @example Actual parameter is not a +Integer+.
15
22
  # object = mock()
16
23
  # object.expects(:method_1).with(is_a(Integer))
17
24
  # object.method_1('string')
@@ -19,24 +26,28 @@ module Mocha
19
26
  def is_a(klass)
20
27
  IsA.new(klass)
21
28
  end
22
-
23
- class IsA < Base # :nodoc:
24
-
29
+
30
+ # Parameter matcher which matches when actual parameter is a specific class.
31
+ class IsA < Base
32
+
33
+ # @private
25
34
  def initialize(klass)
26
35
  @klass = klass
27
36
  end
28
-
37
+
38
+ # @private
29
39
  def matches?(available_parameters)
30
40
  parameter = available_parameters.shift
31
41
  parameter.is_a?(@klass)
32
42
  end
33
-
43
+
44
+ # @private
34
45
  def mocha_inspect
35
46
  "is_a(#{@klass.mocha_inspect})"
36
47
  end
37
-
48
+
38
49
  end
39
-
50
+
40
51
  end
41
-
42
- end
52
+
53
+ end
@@ -1,17 +1,24 @@
1
1
  require 'mocha/parameter_matchers/base'
2
2
 
3
3
  module Mocha
4
-
4
+
5
5
  module ParameterMatchers
6
6
 
7
- # :call-seq: kind_of(klass) -> parameter_matcher
7
+ # Matches any +Object+ that is a kind of +klass+.
8
+ #
9
+ # @param [Class] klass expected class.
10
+ # @return [KindOf] parameter matcher.
11
+ #
12
+ # @see Expectation#with
13
+ # @see Kernel#kind_of?
8
14
  #
9
- # Matches any object that is a kind of +klass+
15
+ # @example Actual parameter is a kind of +Integer+.
10
16
  # object = mock()
11
17
  # object.expects(:method_1).with(kind_of(Integer))
12
18
  # object.method_1(99)
13
19
  # # no error raised
14
20
  #
21
+ # @example Actual parameter is not a kind of +Integer+.
15
22
  # object = mock()
16
23
  # object.expects(:method_1).with(kind_of(Integer))
17
24
  # object.method_1('string')
@@ -19,24 +26,28 @@ module Mocha
19
26
  def kind_of(klass)
20
27
  KindOf.new(klass)
21
28
  end
22
-
23
- class KindOf < Base # :nodoc:
24
-
29
+
30
+ # Parameter matcher which matches when actual parameter is a kind of specified class.
31
+ class KindOf < Base
32
+
33
+ # @private
25
34
  def initialize(klass)
26
35
  @klass = klass
27
36
  end
28
-
37
+
38
+ # @private
29
39
  def matches?(available_parameters)
30
40
  parameter = available_parameters.shift
31
41
  parameter.kind_of?(@klass)
32
42
  end
33
-
43
+
44
+ # @private
34
45
  def mocha_inspect
35
46
  "kind_of(#{@klass.mocha_inspect})"
36
47
  end
37
-
48
+
38
49
  end
39
-
50
+
40
51
  end
41
-
42
- end
52
+
53
+ end