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,100 +0,0 @@
1
- require File.expand_path('../../test_helper', __FILE__)
2
- require 'mocha/sequence'
3
- require 'mocha/expectation'
4
-
5
- class SequenceTest < Mocha::TestCase
6
- include Mocha
7
-
8
- class FakeExpectation
9
- attr_reader :ordering_constraints
10
-
11
- def initialize(satisfied = false)
12
- @satisfied = satisfied
13
- @ordering_constraints = []
14
- end
15
-
16
- def add_ordering_constraint(ordering_constraint)
17
- @ordering_constraints << ordering_constraint
18
- end
19
-
20
- def satisfied?
21
- @satisfied
22
- end
23
- end
24
-
25
- def test_should_be_satisfied_if_no_expectations_added
26
- sequence = Sequence.new('name')
27
- assert sequence.satisfied_to_index?(0)
28
- end
29
-
30
- def test_should_be_satisfied_if_one_unsatisfied_expectations_added_but_it_is_not_included_by_index
31
- sequence = Sequence.new('name')
32
- expectation = FakeExpectation.new(false)
33
- sequence.constrain_as_next_in_sequence(expectation)
34
- assert sequence.satisfied_to_index?(0)
35
- end
36
-
37
- def test_should_not_be_satisfied_if_one_unsatisfied_expectations_added_and_it_is_included_by_index
38
- sequence = Sequence.new('name')
39
- expectation = FakeExpectation.new(false)
40
- sequence.constrain_as_next_in_sequence(expectation)
41
- assert !sequence.satisfied_to_index?(1)
42
- end
43
-
44
- def test_should_be_satisfied_if_one_satisfied_expectations_added_and_it_is_included_by_index
45
- sequence = Sequence.new('name')
46
- expectation = FakeExpectation.new(true)
47
- sequence.constrain_as_next_in_sequence(expectation)
48
- assert sequence.satisfied_to_index?(1)
49
- end
50
-
51
- def test_should_not_be_satisfied_if_one_satisfied_and_one_unsatisfied_expectation_added_and_both_are_included_by_index
52
- sequence = Sequence.new('name')
53
- expectation_one = FakeExpectation.new(true)
54
- expectation_two = FakeExpectation.new(false)
55
- sequence.constrain_as_next_in_sequence(expectation_one)
56
- sequence.constrain_as_next_in_sequence(expectation_two)
57
- assert !sequence.satisfied_to_index?(2)
58
- end
59
-
60
- def test_should_be_satisfied_if_two_satisfied_expectations_added_and_both_are_included_by_index
61
- sequence = Sequence.new('name')
62
- expectation_one = FakeExpectation.new(true)
63
- expectation_two = FakeExpectation.new(true)
64
- sequence.constrain_as_next_in_sequence(expectation_one)
65
- sequence.constrain_as_next_in_sequence(expectation_two)
66
- assert sequence.satisfied_to_index?(2)
67
- end
68
-
69
- def test_should_add_ordering_constraint_to_expectation
70
- sequence = Sequence.new('name')
71
- expectation = FakeExpectation.new
72
- sequence.constrain_as_next_in_sequence(expectation)
73
- assert_equal 1, expectation.ordering_constraints.length
74
- end
75
-
76
- def test_should_not_allow_invocation_of_second_method_when_first_n_sequence_has_not_been_invoked
77
- sequence = Sequence.new('name')
78
- expectation_one = FakeExpectation.new(false)
79
- expectation_two = FakeExpectation.new(false)
80
- sequence.constrain_as_next_in_sequence(expectation_one)
81
- sequence.constrain_as_next_in_sequence(expectation_two)
82
- assert !expectation_two.ordering_constraints[0].allows_invocation_now?
83
- end
84
-
85
- def test_should_allow_invocation_of_second_method_when_first_in_sequence_has_been_invoked
86
- sequence = Sequence.new('name')
87
- expectation_one = FakeExpectation.new(true)
88
- expectation_two = FakeExpectation.new(false)
89
- sequence.constrain_as_next_in_sequence(expectation_one)
90
- sequence.constrain_as_next_in_sequence(expectation_two)
91
- assert expectation_two.ordering_constraints[0].allows_invocation_now?
92
- end
93
-
94
- def test_should_describe_ordering_constraint_as_being_part_of_named_sequence
95
- sequence = Sequence.new('wibble')
96
- expectation = FakeExpectation.new
97
- sequence.constrain_as_next_in_sequence(expectation)
98
- assert_equal %(in sequence "wibble"), expectation.ordering_constraints[0].mocha_inspect
99
- end
100
- end
@@ -1,17 +0,0 @@
1
- require File.expand_path('../../test_helper', __FILE__)
2
-
3
- require 'mocha/invocation'
4
- require 'mocha/single_return_value'
5
-
6
- class SingleReturnValueTest < Mocha::TestCase
7
- include Mocha
8
-
9
- def new_invocation
10
- Invocation.new(:irrelevant, :irrelevant)
11
- end
12
-
13
- def test_should_return_value
14
- value = SingleReturnValue.new('value')
15
- assert_equal 'value', value.evaluate(new_invocation)
16
- end
17
- end
@@ -1,96 +0,0 @@
1
- require File.expand_path('../../test_helper', __FILE__)
2
-
3
- require 'mocha/state_machine'
4
-
5
- class StateMachineTest < Mocha::TestCase
6
- include Mocha
7
-
8
- def test_should_initially_be_in_no_state
9
- state_machine = StateMachine.new('name')
10
- any_state.each do |state|
11
- assert !state_machine.is(state).active?
12
- assert state_machine.is_not(state).active?
13
- end
14
- end
15
-
16
- def test_should_be_able_to_enter_a_state
17
- state_machine = StateMachine.new('name')
18
- state = 'A'
19
- other_states = any_state.reject { |s| s == state }
20
-
21
- state_machine.is(state).activate
22
-
23
- assert state_machine.is(state).active?
24
- assert !state_machine.is_not(state).active?
25
- other_states.each do |s|
26
- assert !state_machine.is(s).active?
27
- assert state_machine.is_not(s).active?
28
- end
29
- end
30
-
31
- def test_should_be_able_to_change_state
32
- state_machine = StateMachine.new('name')
33
- state = 'B'
34
- other_states = any_state.reject { |s| s == state }
35
-
36
- state_machine.is('A').activate
37
- state_machine.is(state).activate
38
-
39
- assert state_machine.is(state).active?
40
- assert !state_machine.is_not(state).active?
41
- other_states.each do |s|
42
- assert !state_machine.is(s).active?
43
- assert state_machine.is_not(s).active?
44
- end
45
- end
46
-
47
- def test_should_be_put_into_an_initial_state
48
- state_machine = StateMachine.new('name')
49
- initial_state = 'A'
50
- other_states = any_state.reject { |s| s == initial_state }
51
-
52
- state_machine.starts_as(initial_state)
53
-
54
- assert state_machine.is(initial_state).active?
55
- assert !state_machine.is_not(initial_state).active?
56
- other_states.each do |state|
57
- assert !state_machine.is(state).active?
58
- assert state_machine.is_not(state).active?
59
- end
60
- end
61
-
62
- def test_should_be_put_into_a_new_state
63
- next_state = 'B'
64
-
65
- other_states = any_state.reject { |s| s == next_state }
66
- state_machine = StateMachine.new('name').starts_as('A')
67
-
68
- state_machine.become(next_state)
69
-
70
- assert state_machine.is(next_state).active?
71
- assert !state_machine.is_not(next_state).active?
72
- other_states.each do |state|
73
- assert !state_machine.is(state).active?
74
- assert state_machine.is_not(state).active?
75
- end
76
- end
77
-
78
- def test_should_describe_itself_as_name_and_current_state
79
- state_machine = StateMachine.new('state_machine_name')
80
- assert_equal 'state_machine_name has no current state', state_machine.mocha_inspect
81
- inspectable_state = Class.new { define_method(:mocha_inspect) { "'inspectable_state'" } }.new
82
- state_machine.is(inspectable_state).activate
83
- assert_equal "state_machine_name is 'inspectable_state'", state_machine.mocha_inspect
84
- end
85
-
86
- def test_should_have_self_describing_states
87
- state_machine = StateMachine.new('state_machine_name')
88
- inspectable_state = Class.new { define_method(:mocha_inspect) { "'inspectable_state'" } }.new
89
- assert_equal "state_machine_name is 'inspectable_state'", state_machine.is(inspectable_state).mocha_inspect
90
- assert_equal "state_machine_name is not 'inspectable_state'", state_machine.is_not(inspectable_state).mocha_inspect
91
- end
92
-
93
- def any_state
94
- %w[A B C D]
95
- end
96
- end
@@ -1,9 +0,0 @@
1
- require File.expand_path('../../test_helper', __FILE__)
2
- require 'mocha/inspect'
3
-
4
- class StringInspectTest < Mocha::TestCase
5
- def test_should_use_default_inspect_method
6
- string = 'my_string'
7
- assert_equal %("my_string"), string.mocha_inspect
8
- end
9
- end
@@ -1,23 +0,0 @@
1
- require File.expand_path('../../test_helper', __FILE__)
2
-
3
- require 'mocha/invocation'
4
- require 'mocha/thrower'
5
-
6
- class ThrowerTest < Mocha::TestCase
7
- include Mocha
8
-
9
- def new_invocation
10
- Invocation.new(:irrelevant, :irrelevant)
11
- end
12
-
13
- def test_should_throw_tag
14
- thrower = Thrower.new(:tag)
15
- assert_throws(:tag) { thrower.evaluate(new_invocation) }
16
- end
17
-
18
- def test_should_throw_tag_with_return_value
19
- thrower = Thrower.new(:tag, 'return-value')
20
- return_value = catch(:tag) { thrower.evaluate(new_invocation) }
21
- assert_equal 'return-value', return_value
22
- end
23
- end
@@ -1,73 +0,0 @@
1
- require File.expand_path('../../test_helper', __FILE__)
2
-
3
- require 'mocha/yield_parameters'
4
-
5
- class YieldParametersTest < Mocha::TestCase
6
- include Mocha
7
-
8
- def test_should_return_null_yield_parameter_group_by_default
9
- assert_next_invocation_yields(YieldParameters.new, [])
10
- end
11
-
12
- def test_should_return_single_yield_parameter_group
13
- yield_parameters = YieldParameters.new
14
- yield_parameters.add([1, 2, 3])
15
- assert_next_invocation_yields(yield_parameters, [[1, 2, 3]])
16
- end
17
-
18
- def test_should_keep_returning_single_yield_parameter_group
19
- yield_parameters = YieldParameters.new
20
- yield_parameters.add([1, 2, 3])
21
- assert_next_invocation_yields(yield_parameters, [[1, 2, 3]])
22
- assert_next_invocation_yields(yield_parameters, [[1, 2, 3]])
23
- end
24
-
25
- def test_should_return_consecutive_single_yield_parameter_groups
26
- yield_parameters = YieldParameters.new
27
- yield_parameters.add([1, 2, 3])
28
- yield_parameters.add([4, 5])
29
- assert_next_invocation_yields(yield_parameters, [[1, 2, 3]])
30
- assert_next_invocation_yields(yield_parameters, [[4, 5]])
31
- end
32
-
33
- def test_should_return_multiple_yield_parameter_group
34
- yield_parameters = YieldParameters.new
35
- yield_parameters.add([1, 2, 3], [4, 5])
36
- assert_next_invocation_yields(yield_parameters, [[1, 2, 3], [4, 5]])
37
- end
38
-
39
- def test_should_return_multiple_yield_parameter_group_when_arguments_are_not_arrays
40
- yield_parameters = YieldParameters.new
41
- yield_parameters.add(1, { :b => 2 }, 3)
42
- assert_next_invocation_yields(yield_parameters, [[1], [{ :b => 2 }], [3]])
43
- end
44
-
45
- def test_should_keep_returning_multiple_yield_parameter_group
46
- yield_parameters = YieldParameters.new
47
- yield_parameters.add([1, 2, 3], [4, 5])
48
- assert_next_invocation_yields(yield_parameters, [[1, 2, 3], [4, 5]])
49
- assert_next_invocation_yields(yield_parameters, [[1, 2, 3], [4, 5]])
50
- end
51
-
52
- def test_should_return_consecutive_multiple_yield_parameter_groups
53
- yield_parameters = YieldParameters.new
54
- yield_parameters.add([1, 2, 3], [4, 5])
55
- yield_parameters.add([6, 7], [8, 9, 0])
56
- assert_next_invocation_yields(yield_parameters, [[1, 2, 3], [4, 5]])
57
- assert_next_invocation_yields(yield_parameters, [[6, 7], [8, 9, 0]])
58
- end
59
-
60
- def test_should_return_consecutive_single_and_multiple_yield_parameter_groups
61
- yield_parameters = YieldParameters.new
62
- yield_parameters.add([1, 2, 3])
63
- yield_parameters.add([4, 5, 6], [7, 8])
64
- assert_next_invocation_yields(yield_parameters, [[1, 2, 3]])
65
- assert_next_invocation_yields(yield_parameters, [[4, 5, 6], [7, 8]])
66
- end
67
-
68
- private
69
-
70
- def assert_next_invocation_yields(yield_parameters, expected)
71
- assert_equal expected, yield_parameters.next_invocation
72
- end
73
- end