floehopper-mocha 0.9.3.20081220175348

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 (162) hide show
  1. data/COPYING +3 -0
  2. data/MIT-LICENSE +7 -0
  3. data/README +35 -0
  4. data/RELEASE +257 -0
  5. data/Rakefile +199 -0
  6. data/examples/misc.rb +44 -0
  7. data/examples/mocha.rb +26 -0
  8. data/examples/stubba.rb +65 -0
  9. data/lib/mocha/any_instance_method.rb +54 -0
  10. data/lib/mocha/argument_iterator.rb +21 -0
  11. data/lib/mocha/backtrace_filter.rb +17 -0
  12. data/lib/mocha/cardinality.rb +95 -0
  13. data/lib/mocha/central.rb +27 -0
  14. data/lib/mocha/change_state_side_effect.rb +19 -0
  15. data/lib/mocha/class_method.rb +86 -0
  16. data/lib/mocha/configuration.rb +60 -0
  17. data/lib/mocha/deprecation.rb +22 -0
  18. data/lib/mocha/exception_raiser.rb +17 -0
  19. data/lib/mocha/expectation.rb +451 -0
  20. data/lib/mocha/expectation_error.rb +15 -0
  21. data/lib/mocha/expectation_list.rb +50 -0
  22. data/lib/mocha/in_state_ordering_constraint.rb +19 -0
  23. data/lib/mocha/inspect.rb +67 -0
  24. data/lib/mocha/instance_method.rb +16 -0
  25. data/lib/mocha/is_a.rb +9 -0
  26. data/lib/mocha/logger.rb +15 -0
  27. data/lib/mocha/metaclass.rb +13 -0
  28. data/lib/mocha/method_matcher.rb +21 -0
  29. data/lib/mocha/mini_test_adapter.rb +50 -0
  30. data/lib/mocha/mock.rb +200 -0
  31. data/lib/mocha/mockery.rb +181 -0
  32. data/lib/mocha/module_method.rb +16 -0
  33. data/lib/mocha/multiple_yields.rb +20 -0
  34. data/lib/mocha/names.rb +53 -0
  35. data/lib/mocha/no_yields.rb +11 -0
  36. data/lib/mocha/object.rb +187 -0
  37. data/lib/mocha/parameter_matchers/all_of.rb +42 -0
  38. data/lib/mocha/parameter_matchers/any_of.rb +47 -0
  39. data/lib/mocha/parameter_matchers/any_parameters.rb +40 -0
  40. data/lib/mocha/parameter_matchers/anything.rb +33 -0
  41. data/lib/mocha/parameter_matchers/base.rb +15 -0
  42. data/lib/mocha/parameter_matchers/equals.rb +42 -0
  43. data/lib/mocha/parameter_matchers/has_entries.rb +45 -0
  44. data/lib/mocha/parameter_matchers/has_entry.rb +56 -0
  45. data/lib/mocha/parameter_matchers/has_key.rb +42 -0
  46. data/lib/mocha/parameter_matchers/has_value.rb +42 -0
  47. data/lib/mocha/parameter_matchers/includes.rb +40 -0
  48. data/lib/mocha/parameter_matchers/instance_of.rb +42 -0
  49. data/lib/mocha/parameter_matchers/is_a.rb +42 -0
  50. data/lib/mocha/parameter_matchers/kind_of.rb +42 -0
  51. data/lib/mocha/parameter_matchers/not.rb +42 -0
  52. data/lib/mocha/parameter_matchers/object.rb +15 -0
  53. data/lib/mocha/parameter_matchers/optionally.rb +55 -0
  54. data/lib/mocha/parameter_matchers/regexp_matches.rb +43 -0
  55. data/lib/mocha/parameter_matchers/responds_with.rb +43 -0
  56. data/lib/mocha/parameter_matchers/yaml_equivalent.rb +43 -0
  57. data/lib/mocha/parameter_matchers.rb +27 -0
  58. data/lib/mocha/parameters_matcher.rb +37 -0
  59. data/lib/mocha/pretty_parameters.rb +28 -0
  60. data/lib/mocha/return_values.rb +31 -0
  61. data/lib/mocha/sequence.rb +42 -0
  62. data/lib/mocha/single_return_value.rb +17 -0
  63. data/lib/mocha/single_yield.rb +18 -0
  64. data/lib/mocha/standalone.rb +166 -0
  65. data/lib/mocha/state_machine.rb +91 -0
  66. data/lib/mocha/stubbing_error.rb +16 -0
  67. data/lib/mocha/test_case_adapter.rb +103 -0
  68. data/lib/mocha/unexpected_invocation.rb +18 -0
  69. data/lib/mocha/yield_parameters.rb +31 -0
  70. data/lib/mocha.rb +47 -0
  71. data/lib/mocha_standalone.rb +2 -0
  72. data/lib/stubba.rb +4 -0
  73. data/test/acceptance/acceptance_test_helper.rb +38 -0
  74. data/test/acceptance/bug_18914_test.rb +43 -0
  75. data/test/acceptance/bug_21465_test.rb +34 -0
  76. data/test/acceptance/bug_21563_test.rb +25 -0
  77. data/test/acceptance/expected_invocation_count_test.rb +196 -0
  78. data/test/acceptance/failure_messages_test.rb +64 -0
  79. data/test/acceptance/minitest_test.rb +130 -0
  80. data/test/acceptance/mocha_example_test.rb +98 -0
  81. data/test/acceptance/mocha_test_result_test.rb +84 -0
  82. data/test/acceptance/mock_test.rb +100 -0
  83. data/test/acceptance/mock_with_initializer_block_test.rb +51 -0
  84. data/test/acceptance/mocked_methods_dispatch_test.rb +78 -0
  85. data/test/acceptance/optional_parameters_test.rb +70 -0
  86. data/test/acceptance/parameter_matcher_test.rb +209 -0
  87. data/test/acceptance/partial_mocks_test.rb +47 -0
  88. data/test/acceptance/return_value_test.rb +52 -0
  89. data/test/acceptance/sequence_test.rb +186 -0
  90. data/test/acceptance/standalone_test.rb +139 -0
  91. data/test/acceptance/states_test.rb +70 -0
  92. data/test/acceptance/stub_any_instance_method_test.rb +195 -0
  93. data/test/acceptance/stub_class_method_test.rb +203 -0
  94. data/test/acceptance/stub_everything_test.rb +56 -0
  95. data/test/acceptance/stub_instance_method_test.rb +203 -0
  96. data/test/acceptance/stub_module_method_test.rb +163 -0
  97. data/test/acceptance/stub_test.rb +52 -0
  98. data/test/acceptance/stubba_example_test.rb +102 -0
  99. data/test/acceptance/stubba_test.rb +15 -0
  100. data/test/acceptance/stubba_test_result_test.rb +66 -0
  101. data/test/acceptance/stubbing_error_backtrace_test.rb +64 -0
  102. data/test/acceptance/stubbing_method_unnecessarily_test.rb +65 -0
  103. data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +130 -0
  104. data/test/acceptance/stubbing_non_existent_class_method_test.rb +157 -0
  105. data/test/acceptance/stubbing_non_existent_instance_method_test.rb +147 -0
  106. data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +130 -0
  107. data/test/acceptance/stubbing_non_public_class_method_test.rb +163 -0
  108. data/test/acceptance/stubbing_non_public_instance_method_test.rb +143 -0
  109. data/test/acceptance/stubbing_on_non_mock_object_test.rb +64 -0
  110. data/test/deprecation_disabler.rb +15 -0
  111. data/test/execution_point.rb +36 -0
  112. data/test/method_definer.rb +24 -0
  113. data/test/simple_counter.rb +13 -0
  114. data/test/test_helper.rb +11 -0
  115. data/test/test_runner.rb +33 -0
  116. data/test/unit/any_instance_method_test.rb +126 -0
  117. data/test/unit/array_inspect_test.rb +16 -0
  118. data/test/unit/backtrace_filter_test.rb +19 -0
  119. data/test/unit/cardinality_test.rb +56 -0
  120. data/test/unit/central_test.rb +65 -0
  121. data/test/unit/change_state_side_effect_test.rb +41 -0
  122. data/test/unit/class_method_test.rb +237 -0
  123. data/test/unit/date_time_inspect_test.rb +21 -0
  124. data/test/unit/exception_raiser_test.rb +42 -0
  125. data/test/unit/expectation_list_test.rb +57 -0
  126. data/test/unit/expectation_test.rb +459 -0
  127. data/test/unit/hash_inspect_test.rb +16 -0
  128. data/test/unit/in_state_ordering_constraint_test.rb +43 -0
  129. data/test/unit/metaclass_test.rb +22 -0
  130. data/test/unit/method_matcher_test.rb +23 -0
  131. data/test/unit/mock_test.rb +295 -0
  132. data/test/unit/mockery_test.rb +149 -0
  133. data/test/unit/multiple_yields_test.rb +18 -0
  134. data/test/unit/no_yields_test.rb +18 -0
  135. data/test/unit/object_inspect_test.rb +37 -0
  136. data/test/unit/object_test.rb +82 -0
  137. data/test/unit/parameter_matchers/all_of_test.rb +26 -0
  138. data/test/unit/parameter_matchers/any_of_test.rb +26 -0
  139. data/test/unit/parameter_matchers/anything_test.rb +21 -0
  140. data/test/unit/parameter_matchers/equals_test.rb +25 -0
  141. data/test/unit/parameter_matchers/has_entries_test.rb +51 -0
  142. data/test/unit/parameter_matchers/has_entry_test.rb +62 -0
  143. data/test/unit/parameter_matchers/has_key_test.rb +36 -0
  144. data/test/unit/parameter_matchers/has_value_test.rb +37 -0
  145. data/test/unit/parameter_matchers/includes_test.rb +25 -0
  146. data/test/unit/parameter_matchers/instance_of_test.rb +25 -0
  147. data/test/unit/parameter_matchers/is_a_test.rb +25 -0
  148. data/test/unit/parameter_matchers/kind_of_test.rb +25 -0
  149. data/test/unit/parameter_matchers/not_test.rb +26 -0
  150. data/test/unit/parameter_matchers/regexp_matches_test.rb +25 -0
  151. data/test/unit/parameter_matchers/responds_with_test.rb +25 -0
  152. data/test/unit/parameter_matchers/stub_matcher.rb +27 -0
  153. data/test/unit/parameter_matchers/yaml_equivalent_test.rb +25 -0
  154. data/test/unit/parameters_matcher_test.rb +121 -0
  155. data/test/unit/return_values_test.rb +63 -0
  156. data/test/unit/sequence_test.rb +104 -0
  157. data/test/unit/single_return_value_test.rb +14 -0
  158. data/test/unit/single_yield_test.rb +18 -0
  159. data/test/unit/state_machine_test.rb +98 -0
  160. data/test/unit/string_inspect_test.rb +11 -0
  161. data/test/unit/yield_parameters_test.rb +93 -0
  162. metadata +226 -0
@@ -0,0 +1,104 @@
1
+ require File.join(File.dirname(__FILE__), "..", "test_helper")
2
+ require 'mocha/sequence'
3
+ require 'mocha/expectation'
4
+
5
+ class SequenceTest < Test::Unit::TestCase
6
+
7
+ include Mocha
8
+
9
+ class FakeExpectation
10
+
11
+ attr_reader :ordering_constraints
12
+
13
+ def initialize(satisfied = false)
14
+ @satisfied = satisfied
15
+ @ordering_constraints = []
16
+ end
17
+
18
+ def add_ordering_constraint(ordering_constraint)
19
+ @ordering_constraints << ordering_constraint
20
+ end
21
+
22
+ def satisfied?
23
+ @satisfied
24
+ end
25
+
26
+ end
27
+
28
+ def test_should_be_satisfied_if_no_expectations_added
29
+ sequence = Sequence.new('name')
30
+ assert sequence.satisfied_to_index?(0)
31
+ end
32
+
33
+ def test_should_be_satisfied_if_one_unsatisfied_expectations_added_but_it_is_not_included_by_index
34
+ sequence = Sequence.new('name')
35
+ expectation = FakeExpectation.new(satisfied = false)
36
+ sequence.constrain_as_next_in_sequence(expectation)
37
+ assert sequence.satisfied_to_index?(0)
38
+ end
39
+
40
+ def test_should_not_be_satisfied_if_one_unsatisfied_expectations_added_and_it_is_included_by_index
41
+ sequence = Sequence.new('name')
42
+ expectation = FakeExpectation.new(satisfied = false)
43
+ sequence.constrain_as_next_in_sequence(expectation)
44
+ assert !sequence.satisfied_to_index?(1)
45
+ end
46
+
47
+ def test_should_be_satisfied_if_one_satisfied_expectations_added_and_it_is_included_by_index
48
+ sequence = Sequence.new('name')
49
+ expectation = FakeExpectation.new(satisfied = true)
50
+ sequence.constrain_as_next_in_sequence(expectation)
51
+ assert sequence.satisfied_to_index?(1)
52
+ end
53
+
54
+ def test_should_not_be_satisfied_if_one_satisfied_and_one_unsatisfied_expectation_added_and_both_are_included_by_index
55
+ sequence = Sequence.new('name')
56
+ expectation_one = FakeExpectation.new(satisfied = true)
57
+ expectation_two = FakeExpectation.new(satisfied = false)
58
+ sequence.constrain_as_next_in_sequence(expectation_one)
59
+ sequence.constrain_as_next_in_sequence(expectation_two)
60
+ assert !sequence.satisfied_to_index?(2)
61
+ end
62
+
63
+ def test_should_be_satisfied_if_two_satisfied_expectations_added_and_both_are_included_by_index
64
+ sequence = Sequence.new('name')
65
+ expectation_one = FakeExpectation.new(satisfied = true)
66
+ expectation_two = FakeExpectation.new(satisfied = true)
67
+ sequence.constrain_as_next_in_sequence(expectation_one)
68
+ sequence.constrain_as_next_in_sequence(expectation_two)
69
+ assert sequence.satisfied_to_index?(2)
70
+ end
71
+
72
+ def test_should_add_ordering_constraint_to_expectation
73
+ sequence = Sequence.new('name')
74
+ expectation = FakeExpectation.new
75
+ sequence.constrain_as_next_in_sequence(expectation)
76
+ assert_equal 1, expectation.ordering_constraints.length
77
+ end
78
+
79
+ def test_should_not_allow_invocation_of_second_method_when_first_n_sequence_has_not_been_invoked
80
+ sequence = Sequence.new('name')
81
+ expectation_one = FakeExpectation.new(satisfied = false)
82
+ expectation_two = FakeExpectation.new(satisfied = false)
83
+ sequence.constrain_as_next_in_sequence(expectation_one)
84
+ sequence.constrain_as_next_in_sequence(expectation_two)
85
+ assert !expectation_two.ordering_constraints[0].allows_invocation_now?
86
+ end
87
+
88
+ def test_should_allow_invocation_of_second_method_when_first_in_sequence_has_been_invoked
89
+ sequence = Sequence.new('name')
90
+ expectation_one = FakeExpectation.new(satisfied = true)
91
+ expectation_two = FakeExpectation.new(satisfied = false)
92
+ sequence.constrain_as_next_in_sequence(expectation_one)
93
+ sequence.constrain_as_next_in_sequence(expectation_two)
94
+ assert expectation_two.ordering_constraints[0].allows_invocation_now?
95
+ end
96
+
97
+ def test_should_describe_ordering_constraint_as_being_part_of_named_sequence
98
+ sequence = Sequence.new('wibble')
99
+ expectation = FakeExpectation.new
100
+ sequence.constrain_as_next_in_sequence(expectation)
101
+ assert_equal "in sequence 'wibble'", expectation.ordering_constraints[0].mocha_inspect
102
+ end
103
+
104
+ end
@@ -0,0 +1,14 @@
1
+ require File.join(File.dirname(__FILE__), "..", "test_helper")
2
+
3
+ require 'mocha/single_return_value'
4
+
5
+ class SingleReturnValueTest < Test::Unit::TestCase
6
+
7
+ include Mocha
8
+
9
+ def test_should_return_value
10
+ value = SingleReturnValue.new('value')
11
+ assert_equal 'value', value.evaluate
12
+ end
13
+
14
+ end
@@ -0,0 +1,18 @@
1
+ require File.join(File.dirname(__FILE__), "..", "test_helper")
2
+
3
+ require 'mocha/single_yield'
4
+
5
+ class SingleYieldTest < Test::Unit::TestCase
6
+
7
+ include Mocha
8
+
9
+ def test_should_provide_parameters_for_single_yield_in_single_invocation
10
+ parameter_group = SingleYield.new(1, 2, 3)
11
+ parameter_groups = []
12
+ parameter_group.each do |parameters|
13
+ parameter_groups << parameters
14
+ end
15
+ assert_equal [[1, 2, 3]], parameter_groups
16
+ end
17
+
18
+ end
@@ -0,0 +1,98 @@
1
+ require File.join(File.dirname(__FILE__), "..", "test_helper")
2
+
3
+ require 'mocha/state_machine'
4
+
5
+ class StateMachineTest < Test::Unit::TestCase
6
+
7
+ include Mocha
8
+
9
+ def test_should_initially_be_in_no_state
10
+ state_machine = StateMachine.new('name')
11
+ any_state.each do |state|
12
+ assert !state_machine.is(state).active?
13
+ assert state_machine.is_not(state).active?
14
+ end
15
+ end
16
+
17
+ def test_should_be_able_to_enter_a_state
18
+ state_machine = StateMachine.new('name')
19
+ state = 'A'
20
+ other_states = any_state.reject { |s| s == state }
21
+
22
+ state_machine.is(state).activate
23
+
24
+ assert state_machine.is(state).active?
25
+ assert !state_machine.is_not(state).active?
26
+ other_states.each do |s|
27
+ assert !state_machine.is(s).active?
28
+ assert state_machine.is_not(s).active?
29
+ end
30
+ end
31
+
32
+ def test_should_be_able_to_change_state
33
+ state_machine = StateMachine.new('name')
34
+ state = 'B'
35
+ other_states = any_state.reject { |s| s == state }
36
+
37
+ state_machine.is('A').activate
38
+ state_machine.is(state).activate
39
+
40
+ assert state_machine.is(state).active?
41
+ assert !state_machine.is_not(state).active?
42
+ other_states.each do |s|
43
+ assert !state_machine.is(s).active?
44
+ assert state_machine.is_not(s).active?
45
+ end
46
+ end
47
+
48
+ def test_should_be_put_into_an_initial_state
49
+ state_machine = StateMachine.new('name')
50
+ initial_state = 'A'
51
+ other_states = any_state.reject { |s| s == initial_state }
52
+
53
+ state_machine.starts_as(initial_state)
54
+
55
+ assert state_machine.is(initial_state).active?
56
+ assert !state_machine.is_not(initial_state).active?
57
+ other_states.each do |state|
58
+ assert !state_machine.is(state).active?
59
+ assert state_machine.is_not(state).active?
60
+ end
61
+ end
62
+
63
+ def test_should_be_put_into_a_new_state
64
+ next_state = 'B'
65
+
66
+ other_states = any_state.reject { |s| s == next_state }
67
+ state_machine = StateMachine.new('name').starts_as('A')
68
+
69
+ state_machine.become(next_state)
70
+
71
+ assert state_machine.is(next_state).active?
72
+ assert !state_machine.is_not(next_state).active?
73
+ other_states.each do |state|
74
+ assert !state_machine.is(state).active?
75
+ assert state_machine.is_not(state).active?
76
+ end
77
+ end
78
+
79
+ def test_should_describe_itself_as_name_and_current_state
80
+ state_machine = StateMachine.new('state_machine_name')
81
+ assert_equal 'state_machine_name has no current state', state_machine.mocha_inspect
82
+ inspectable_state = Class.new { define_method(:mocha_inspect) { "'inspectable_state'" } }.new
83
+ state_machine.is(inspectable_state).activate
84
+ assert_equal "state_machine_name is 'inspectable_state'", state_machine.mocha_inspect
85
+ end
86
+
87
+ def test_should_have_self_describing_states
88
+ state_machine = StateMachine.new('state_machine_name')
89
+ inspectable_state = Class.new { define_method(:mocha_inspect) { "'inspectable_state'" } }.new
90
+ assert_equal "state_machine_name is 'inspectable_state'", state_machine.is(inspectable_state).mocha_inspect
91
+ assert_equal "state_machine_name is not 'inspectable_state'", state_machine.is_not(inspectable_state).mocha_inspect
92
+ end
93
+
94
+ def any_state
95
+ %w(A B C D)
96
+ end
97
+
98
+ end
@@ -0,0 +1,11 @@
1
+ require File.join(File.dirname(__FILE__), "..", "test_helper")
2
+ require 'mocha/inspect'
3
+
4
+ class StringInspectTest < Test::Unit::TestCase
5
+
6
+ def test_should_replace_escaped_quotes_with_single_quote
7
+ string = "my_string"
8
+ assert_equal "'my_string'", string.mocha_inspect
9
+ end
10
+
11
+ end
@@ -0,0 +1,93 @@
1
+ require File.join(File.dirname(__FILE__), "..", "test_helper")
2
+
3
+ require 'mocha/yield_parameters'
4
+ require 'mocha/no_yields'
5
+ require 'mocha/single_yield'
6
+ require 'mocha/multiple_yields'
7
+
8
+ class YieldParametersTest < Test::Unit::TestCase
9
+
10
+ include Mocha
11
+
12
+ def test_should_return_null_yield_parameter_group_by_default
13
+ yield_parameters = YieldParameters.new
14
+ assert yield_parameters.next_invocation.is_a?(NoYields)
15
+ end
16
+
17
+ def test_should_return_single_yield_parameter_group
18
+ yield_parameters = YieldParameters.new
19
+ yield_parameters.add(1, 2, 3)
20
+ parameter_group = yield_parameters.next_invocation
21
+ assert parameter_group.is_a?(SingleYield)
22
+ assert_equal [1, 2, 3], parameter_group.parameters
23
+ end
24
+
25
+ def test_should_keep_returning_single_yield_parameter_group
26
+ yield_parameters = YieldParameters.new
27
+ yield_parameters.add(1, 2, 3)
28
+ yield_parameters.next_invocation
29
+ parameter_group = yield_parameters.next_invocation
30
+ assert parameter_group.is_a?(SingleYield)
31
+ assert_equal [1, 2, 3], parameter_group.parameters
32
+ parameter_group = yield_parameters.next_invocation
33
+ assert parameter_group.is_a?(SingleYield)
34
+ assert_equal [1, 2, 3], parameter_group.parameters
35
+ end
36
+
37
+ def test_should_return_consecutive_single_yield_parameter_groups
38
+ yield_parameters = YieldParameters.new
39
+ yield_parameters.add(1, 2, 3)
40
+ yield_parameters.add(4, 5)
41
+ parameter_group = yield_parameters.next_invocation
42
+ assert parameter_group.is_a?(SingleYield)
43
+ assert_equal [1, 2, 3], parameter_group.parameters
44
+ parameter_group = yield_parameters.next_invocation
45
+ assert parameter_group.is_a?(SingleYield)
46
+ assert_equal [4, 5], parameter_group.parameters
47
+ end
48
+
49
+ def test_should_return_multiple_yield_parameter_group
50
+ yield_parameters = YieldParameters.new
51
+ yield_parameters.multiple_add([1, 2, 3], [4, 5])
52
+ parameter_group = yield_parameters.next_invocation
53
+ assert parameter_group.is_a?(MultipleYields)
54
+ assert_equal [[1, 2, 3], [4, 5]], parameter_group.parameter_groups
55
+ end
56
+
57
+ def test_should_keep_returning_multiple_yield_parameter_group
58
+ yield_parameters = YieldParameters.new
59
+ yield_parameters.multiple_add([1, 2, 3], [4, 5])
60
+ yield_parameters.next_invocation
61
+ parameter_group = yield_parameters.next_invocation
62
+ assert parameter_group.is_a?(MultipleYields)
63
+ assert_equal [[1, 2, 3], [4, 5]], parameter_group.parameter_groups
64
+ parameter_group = yield_parameters.next_invocation
65
+ assert parameter_group.is_a?(MultipleYields)
66
+ assert_equal [[1, 2, 3], [4, 5]], parameter_group.parameter_groups
67
+ end
68
+
69
+ def test_should_return_consecutive_multiple_yield_parameter_groups
70
+ yield_parameters = YieldParameters.new
71
+ yield_parameters.multiple_add([1, 2, 3], [4, 5])
72
+ yield_parameters.multiple_add([6, 7], [8, 9, 0])
73
+ parameter_group = yield_parameters.next_invocation
74
+ assert parameter_group.is_a?(MultipleYields)
75
+ assert_equal [[1, 2, 3], [4, 5]], parameter_group.parameter_groups
76
+ parameter_group = yield_parameters.next_invocation
77
+ assert parameter_group.is_a?(MultipleYields)
78
+ assert_equal [[6, 7], [8, 9, 0]], parameter_group.parameter_groups
79
+ end
80
+
81
+ def test_should_return_consecutive_single_and_multiple_yield_parameter_groups
82
+ yield_parameters = YieldParameters.new
83
+ yield_parameters.add(1, 2, 3)
84
+ yield_parameters.multiple_add([4, 5, 6], [7, 8])
85
+ parameter_group = yield_parameters.next_invocation
86
+ assert parameter_group.is_a?(SingleYield)
87
+ assert_equal [1, 2, 3], parameter_group.parameters
88
+ parameter_group = yield_parameters.next_invocation
89
+ assert parameter_group.is_a?(MultipleYields)
90
+ assert_equal [[4, 5, 6], [7, 8]], parameter_group.parameter_groups
91
+ end
92
+
93
+ end
metadata ADDED
@@ -0,0 +1,226 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: floehopper-mocha
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.3.20081220175348
5
+ platform: ruby
6
+ authors:
7
+ - James Mead
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-12-20 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rake
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: "0"
23
+ version:
24
+ description: Mocking and stubbing library with JMock/SchMock syntax, which allows mocking and stubbing of methods on real (non-mock) classes.
25
+ email: mocha-developer@googlegroups.com
26
+ executables: []
27
+
28
+ extensions: []
29
+
30
+ extra_rdoc_files:
31
+ - README
32
+ - COPYING
33
+ files:
34
+ - lib/mocha/any_instance_method.rb
35
+ - lib/mocha/argument_iterator.rb
36
+ - lib/mocha/backtrace_filter.rb
37
+ - lib/mocha/cardinality.rb
38
+ - lib/mocha/central.rb
39
+ - lib/mocha/change_state_side_effect.rb
40
+ - lib/mocha/class_method.rb
41
+ - lib/mocha/configuration.rb
42
+ - lib/mocha/deprecation.rb
43
+ - lib/mocha/exception_raiser.rb
44
+ - lib/mocha/expectation.rb
45
+ - lib/mocha/expectation_error.rb
46
+ - lib/mocha/expectation_list.rb
47
+ - lib/mocha/in_state_ordering_constraint.rb
48
+ - lib/mocha/inspect.rb
49
+ - lib/mocha/instance_method.rb
50
+ - lib/mocha/is_a.rb
51
+ - lib/mocha/logger.rb
52
+ - lib/mocha/metaclass.rb
53
+ - lib/mocha/method_matcher.rb
54
+ - lib/mocha/mini_test_adapter.rb
55
+ - lib/mocha/mock.rb
56
+ - lib/mocha/mockery.rb
57
+ - lib/mocha/module_method.rb
58
+ - lib/mocha/multiple_yields.rb
59
+ - lib/mocha/names.rb
60
+ - lib/mocha/no_yields.rb
61
+ - lib/mocha/object.rb
62
+ - lib/mocha/parameter_matchers/all_of.rb
63
+ - lib/mocha/parameter_matchers/any_of.rb
64
+ - lib/mocha/parameter_matchers/any_parameters.rb
65
+ - lib/mocha/parameter_matchers/anything.rb
66
+ - lib/mocha/parameter_matchers/base.rb
67
+ - lib/mocha/parameter_matchers/equals.rb
68
+ - lib/mocha/parameter_matchers/has_entries.rb
69
+ - lib/mocha/parameter_matchers/has_entry.rb
70
+ - lib/mocha/parameter_matchers/has_key.rb
71
+ - lib/mocha/parameter_matchers/has_value.rb
72
+ - lib/mocha/parameter_matchers/includes.rb
73
+ - lib/mocha/parameter_matchers/instance_of.rb
74
+ - lib/mocha/parameter_matchers/is_a.rb
75
+ - lib/mocha/parameter_matchers/kind_of.rb
76
+ - lib/mocha/parameter_matchers/not.rb
77
+ - lib/mocha/parameter_matchers/object.rb
78
+ - lib/mocha/parameter_matchers/optionally.rb
79
+ - lib/mocha/parameter_matchers/regexp_matches.rb
80
+ - lib/mocha/parameter_matchers/responds_with.rb
81
+ - lib/mocha/parameter_matchers/yaml_equivalent.rb
82
+ - lib/mocha/parameter_matchers.rb
83
+ - lib/mocha/parameters_matcher.rb
84
+ - lib/mocha/pretty_parameters.rb
85
+ - lib/mocha/return_values.rb
86
+ - lib/mocha/sequence.rb
87
+ - lib/mocha/single_return_value.rb
88
+ - lib/mocha/single_yield.rb
89
+ - lib/mocha/standalone.rb
90
+ - lib/mocha/state_machine.rb
91
+ - lib/mocha/stubbing_error.rb
92
+ - lib/mocha/test_case_adapter.rb
93
+ - lib/mocha/unexpected_invocation.rb
94
+ - lib/mocha/yield_parameters.rb
95
+ - lib/mocha.rb
96
+ - lib/mocha_standalone.rb
97
+ - lib/stubba.rb
98
+ - test/acceptance/acceptance_test_helper.rb
99
+ - test/acceptance/bug_18914_test.rb
100
+ - test/acceptance/bug_21465_test.rb
101
+ - test/acceptance/bug_21563_test.rb
102
+ - test/acceptance/expected_invocation_count_test.rb
103
+ - test/acceptance/failure_messages_test.rb
104
+ - test/acceptance/minitest_test.rb
105
+ - test/acceptance/mocha_example_test.rb
106
+ - test/acceptance/mocha_test_result_test.rb
107
+ - test/acceptance/mock_test.rb
108
+ - test/acceptance/mock_with_initializer_block_test.rb
109
+ - test/acceptance/mocked_methods_dispatch_test.rb
110
+ - test/acceptance/optional_parameters_test.rb
111
+ - test/acceptance/parameter_matcher_test.rb
112
+ - test/acceptance/partial_mocks_test.rb
113
+ - test/acceptance/return_value_test.rb
114
+ - test/acceptance/sequence_test.rb
115
+ - test/acceptance/standalone_test.rb
116
+ - test/acceptance/states_test.rb
117
+ - test/acceptance/stub_any_instance_method_test.rb
118
+ - test/acceptance/stub_class_method_test.rb
119
+ - test/acceptance/stub_everything_test.rb
120
+ - test/acceptance/stub_instance_method_test.rb
121
+ - test/acceptance/stub_module_method_test.rb
122
+ - test/acceptance/stub_test.rb
123
+ - test/acceptance/stubba_example_test.rb
124
+ - test/acceptance/stubba_test.rb
125
+ - test/acceptance/stubba_test_result_test.rb
126
+ - test/acceptance/stubbing_error_backtrace_test.rb
127
+ - test/acceptance/stubbing_method_unnecessarily_test.rb
128
+ - test/acceptance/stubbing_non_existent_any_instance_method_test.rb
129
+ - test/acceptance/stubbing_non_existent_class_method_test.rb
130
+ - test/acceptance/stubbing_non_existent_instance_method_test.rb
131
+ - test/acceptance/stubbing_non_public_any_instance_method_test.rb
132
+ - test/acceptance/stubbing_non_public_class_method_test.rb
133
+ - test/acceptance/stubbing_non_public_instance_method_test.rb
134
+ - test/acceptance/stubbing_on_non_mock_object_test.rb
135
+ - test/deprecation_disabler.rb
136
+ - test/execution_point.rb
137
+ - test/method_definer.rb
138
+ - test/simple_counter.rb
139
+ - test/test_helper.rb
140
+ - test/test_runner.rb
141
+ - test/unit/any_instance_method_test.rb
142
+ - test/unit/array_inspect_test.rb
143
+ - test/unit/backtrace_filter_test.rb
144
+ - test/unit/cardinality_test.rb
145
+ - test/unit/central_test.rb
146
+ - test/unit/change_state_side_effect_test.rb
147
+ - test/unit/class_method_test.rb
148
+ - test/unit/date_time_inspect_test.rb
149
+ - test/unit/exception_raiser_test.rb
150
+ - test/unit/expectation_list_test.rb
151
+ - test/unit/expectation_test.rb
152
+ - test/unit/hash_inspect_test.rb
153
+ - test/unit/in_state_ordering_constraint_test.rb
154
+ - test/unit/metaclass_test.rb
155
+ - test/unit/method_matcher_test.rb
156
+ - test/unit/mock_test.rb
157
+ - test/unit/mockery_test.rb
158
+ - test/unit/multiple_yields_test.rb
159
+ - test/unit/no_yields_test.rb
160
+ - test/unit/object_inspect_test.rb
161
+ - test/unit/object_test.rb
162
+ - test/unit/parameter_matchers/all_of_test.rb
163
+ - test/unit/parameter_matchers/any_of_test.rb
164
+ - test/unit/parameter_matchers/anything_test.rb
165
+ - test/unit/parameter_matchers/equals_test.rb
166
+ - test/unit/parameter_matchers/has_entries_test.rb
167
+ - test/unit/parameter_matchers/has_entry_test.rb
168
+ - test/unit/parameter_matchers/has_key_test.rb
169
+ - test/unit/parameter_matchers/has_value_test.rb
170
+ - test/unit/parameter_matchers/includes_test.rb
171
+ - test/unit/parameter_matchers/instance_of_test.rb
172
+ - test/unit/parameter_matchers/is_a_test.rb
173
+ - test/unit/parameter_matchers/kind_of_test.rb
174
+ - test/unit/parameter_matchers/not_test.rb
175
+ - test/unit/parameter_matchers/regexp_matches_test.rb
176
+ - test/unit/parameter_matchers/responds_with_test.rb
177
+ - test/unit/parameter_matchers/stub_matcher.rb
178
+ - test/unit/parameter_matchers/yaml_equivalent_test.rb
179
+ - test/unit/parameters_matcher_test.rb
180
+ - test/unit/return_values_test.rb
181
+ - test/unit/sequence_test.rb
182
+ - test/unit/single_return_value_test.rb
183
+ - test/unit/single_yield_test.rb
184
+ - test/unit/state_machine_test.rb
185
+ - test/unit/string_inspect_test.rb
186
+ - test/unit/yield_parameters_test.rb
187
+ - examples/misc.rb
188
+ - examples/mocha.rb
189
+ - examples/stubba.rb
190
+ - COPYING
191
+ - MIT-LICENSE
192
+ - Rakefile
193
+ - README
194
+ - RELEASE
195
+ has_rdoc: true
196
+ homepage: http://mocha.rubyforge.org
197
+ post_install_message:
198
+ rdoc_options:
199
+ - --title
200
+ - Mocha
201
+ - --main
202
+ - README
203
+ - --line-numbers
204
+ require_paths:
205
+ - lib
206
+ required_ruby_version: !ruby/object:Gem::Requirement
207
+ requirements:
208
+ - - ">="
209
+ - !ruby/object:Gem::Version
210
+ version: "0"
211
+ version:
212
+ required_rubygems_version: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - ">="
215
+ - !ruby/object:Gem::Version
216
+ version: "0"
217
+ version:
218
+ requirements: []
219
+
220
+ rubyforge_project: mocha
221
+ rubygems_version: 1.2.0
222
+ signing_key:
223
+ specification_version: 2
224
+ summary: Mocking and stubbing library
225
+ test_files: []
226
+