rr 0.3.11 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (150) hide show
  1. data/CHANGES +8 -3
  2. data/README +130 -39
  3. data/Rakefile +6 -5
  4. data/lib/rr.rb +8 -8
  5. data/lib/rr/adapters/rr_methods.rb +228 -0
  6. data/lib/rr/adapters/rspec.rb +1 -1
  7. data/lib/rr/adapters/test_unit.rb +1 -1
  8. data/lib/rr/double.rb +294 -89
  9. data/lib/rr/{scenario_creator.rb → double_creator.rb} +65 -66
  10. data/lib/rr/{scenario_definition.rb → double_definition.rb} +36 -36
  11. data/lib/rr/{scenario_definition_builder.rb → double_definition_builder.rb} +3 -3
  12. data/lib/rr/double_insertion.rb +132 -0
  13. data/lib/rr/{scenario_matches.rb → double_matches.rb} +2 -2
  14. data/lib/rr/{scenario_method_proxy.rb → double_method_proxy.rb} +2 -2
  15. data/lib/rr/errors/argument_equality_error.rb +3 -3
  16. data/lib/rr/errors/rr_error.rb +13 -13
  17. data/lib/rr/errors/scenario_definition_error.rb +3 -3
  18. data/lib/rr/errors/scenario_not_found_error.rb +3 -3
  19. data/lib/rr/errors/scenario_order_error.rb +3 -3
  20. data/lib/rr/errors/times_called_error.rb +3 -3
  21. data/lib/rr/expectations/any_argument_expectation.rb +1 -1
  22. data/lib/rr/expectations/argument_equality_expectation.rb +1 -1
  23. data/lib/rr/expectations/times_called_expectation.rb +1 -1
  24. data/lib/rr/hash_with_object_id_key.rb +1 -1
  25. data/lib/rr/space.rb +40 -40
  26. data/lib/rr/times_called_matchers/any_times_matcher.rb +13 -13
  27. data/lib/rr/times_called_matchers/at_least_matcher.rb +11 -11
  28. data/lib/rr/times_called_matchers/at_most_matcher.rb +16 -16
  29. data/lib/rr/times_called_matchers/integer_matcher.rb +13 -13
  30. data/lib/rr/times_called_matchers/non_terminal.rb +21 -21
  31. data/lib/rr/times_called_matchers/proc_matcher.rb +7 -7
  32. data/lib/rr/times_called_matchers/range_matcher.rb +14 -14
  33. data/lib/rr/times_called_matchers/terminal.rb +16 -16
  34. data/lib/rr/times_called_matchers/times_called_matcher.rb +32 -32
  35. data/spec/core_spec_suite.rb +18 -0
  36. data/{examples → spec}/environment_fixture_setup.rb +0 -1
  37. data/{examples/high_level_example.rb → spec/high_level_spec.rb} +11 -11
  38. data/spec/rr/adapters/rr_methods_argument_matcher_spec.rb +67 -0
  39. data/spec/rr/adapters/rr_methods_creator_spec.rb +365 -0
  40. data/spec/rr/adapters/rr_methods_space_spec.rb +134 -0
  41. data/spec/rr/adapters/rr_methods_spec_helper.rb +11 -0
  42. data/{examples/rr/extensions/instance_methods_times_matcher_example.rb → spec/rr/adapters/rr_methods_times_matcher_spec.rb} +4 -4
  43. data/spec/rr/double/double_insertion_bind_spec.rb +78 -0
  44. data/spec/rr/double/double_insertion_dispatching_spec.rb +221 -0
  45. data/spec/rr/double/double_insertion_has_original_method_spec.rb +56 -0
  46. data/spec/rr/double/double_insertion_register_scenario_spec.rb +24 -0
  47. data/spec/rr/double/double_insertion_reset_spec.rb +89 -0
  48. data/spec/rr/double/double_insertion_spec.rb +66 -0
  49. data/spec/rr/double/double_insertion_verify_spec.rb +23 -0
  50. data/spec/rr/double_creator_spec.rb +454 -0
  51. data/{examples/rr/scenario_definition_example.rb → spec/rr/double_definition_spec.rb} +143 -143
  52. data/spec/rr/double_method_proxy_spec.rb +71 -0
  53. data/spec/rr/double_spec.rb +654 -0
  54. data/spec/rr/errors/rr_error_spec.rb +65 -0
  55. data/spec/rr/expectations/any_argument_expectation_spec.rb +47 -0
  56. data/spec/rr/expectations/anything_argument_equality_expectation_spec.rb +38 -0
  57. data/spec/rr/expectations/argument_equality_expectation_spec.rb +58 -0
  58. data/spec/rr/expectations/boolean_argument_equality_expectation_spec.rb +53 -0
  59. data/spec/rr/expectations/duck_type_argument_equality_expectation_spec.rb +71 -0
  60. data/spec/rr/expectations/is_a_argument_equality_expectation_spec.rb +51 -0
  61. data/spec/rr/expectations/numeric_argument_equality_expectation_spec.rb +47 -0
  62. data/spec/rr/expectations/range_argument_equality_expectation_spec.rb +59 -0
  63. data/spec/rr/expectations/regexp_argument_equality_expectation_spec.rb +72 -0
  64. data/spec/rr/expectations/times_called_expectation/times_called_expectation_any_times_spec.rb +43 -0
  65. data/spec/rr/expectations/times_called_expectation/times_called_expectation_at_least_spec.rb +67 -0
  66. data/spec/rr/expectations/times_called_expectation/times_called_expectation_at_most_spec.rb +71 -0
  67. data/spec/rr/expectations/times_called_expectation/times_called_expectation_helper.rb +21 -0
  68. data/spec/rr/expectations/times_called_expectation/times_called_expectation_integer_spec.rb +103 -0
  69. data/spec/rr/expectations/times_called_expectation/times_called_expectation_proc_spec.rb +79 -0
  70. data/spec/rr/expectations/times_called_expectation/times_called_expectation_range_spec.rb +81 -0
  71. data/spec/rr/expectations/times_called_expectation/times_called_expectation_spec.rb +40 -0
  72. data/spec/rr/rspec/rspec_adapter_spec.rb +65 -0
  73. data/spec/rr/rspec/rspec_backtrace_tweaking_spec.rb +52 -0
  74. data/spec/rr/rspec/rspec_usage_spec.rb +67 -0
  75. data/spec/rr/space/hash_with_object_id_key_spec.rb +88 -0
  76. data/spec/rr/space/space_create_spec.rb +278 -0
  77. data/spec/rr/space/space_helper.rb +7 -0
  78. data/spec/rr/space/space_register_spec.rb +32 -0
  79. data/spec/rr/space/space_reset_spec.rb +131 -0
  80. data/spec/rr/space/space_spec.rb +32 -0
  81. data/spec/rr/space/space_verify_spec.rb +181 -0
  82. data/{examples → spec}/rr/test_unit/test_helper.rb +1 -1
  83. data/{examples → spec}/rr/test_unit/test_unit_backtrace_test.rb +0 -0
  84. data/{examples → spec}/rr/test_unit/test_unit_integration_test.rb +4 -4
  85. data/spec/rr/times_called_matchers/any_times_matcher_spec.rb +47 -0
  86. data/spec/rr/times_called_matchers/at_least_matcher_spec.rb +55 -0
  87. data/spec/rr/times_called_matchers/at_most_matcher_spec.rb +70 -0
  88. data/spec/rr/times_called_matchers/integer_matcher_spec.rb +70 -0
  89. data/spec/rr/times_called_matchers/proc_matcher_spec.rb +55 -0
  90. data/spec/rr/times_called_matchers/range_matcher_spec.rb +76 -0
  91. data/spec/rr/times_called_matchers/times_called_matcher_spec.rb +118 -0
  92. data/spec/rspec_spec_suite.rb +16 -0
  93. data/spec/spec_helper.rb +9 -0
  94. data/{examples/example_suite.rb → spec/spec_suite.rb} +3 -3
  95. data/{examples/test_unit_example_suite.rb → spec/test_unit_spec_suite.rb} +0 -0
  96. metadata +93 -93
  97. data/examples/core_example_suite.rb +0 -31
  98. data/examples/example_helper.rb +0 -9
  99. data/examples/rr/double/double_bind_example.rb +0 -70
  100. data/examples/rr/double/double_dispatching_example.rb +0 -236
  101. data/examples/rr/double/double_example.rb +0 -66
  102. data/examples/rr/double/double_has_original_method_example.rb +0 -56
  103. data/examples/rr/double/double_register_scenario_example.rb +0 -24
  104. data/examples/rr/double/double_reset_example.rb +0 -89
  105. data/examples/rr/double/double_verify_example.rb +0 -23
  106. data/examples/rr/errors/rr_error_example.rb +0 -65
  107. data/examples/rr/expectations/any_argument_expectation_example.rb +0 -52
  108. data/examples/rr/expectations/anything_argument_equality_expectation_example.rb +0 -38
  109. data/examples/rr/expectations/argument_equality_expectation_example.rb +0 -62
  110. data/examples/rr/expectations/boolean_argument_equality_expectation_example.rb +0 -48
  111. data/examples/rr/expectations/duck_type_argument_equality_expectation_example.rb +0 -67
  112. data/examples/rr/expectations/is_a_argument_equality_expectation_example.rb +0 -50
  113. data/examples/rr/expectations/numeric_argument_equality_expectation_example.rb +0 -46
  114. data/examples/rr/expectations/range_argument_equality_expectation_example.rb +0 -59
  115. data/examples/rr/expectations/regexp_argument_equality_expectation_example.rb +0 -67
  116. data/examples/rr/expectations/times_called_expectation/times_called_expectation_any_times_example.rb +0 -50
  117. data/examples/rr/expectations/times_called_expectation/times_called_expectation_at_least_example.rb +0 -73
  118. data/examples/rr/expectations/times_called_expectation/times_called_expectation_at_most_example.rb +0 -77
  119. data/examples/rr/expectations/times_called_expectation/times_called_expectation_example.rb +0 -42
  120. data/examples/rr/expectations/times_called_expectation/times_called_expectation_helper.rb +0 -20
  121. data/examples/rr/expectations/times_called_expectation/times_called_expectation_integer_example.rb +0 -111
  122. data/examples/rr/expectations/times_called_expectation/times_called_expectation_proc_example.rb +0 -88
  123. data/examples/rr/expectations/times_called_expectation/times_called_expectation_range_example.rb +0 -90
  124. data/examples/rr/extensions/instance_methods_argument_matcher_example.rb +0 -65
  125. data/examples/rr/extensions/instance_methods_creator_example.rb +0 -363
  126. data/examples/rr/extensions/instance_methods_example_helper.rb +0 -11
  127. data/examples/rr/extensions/instance_methods_space_example.rb +0 -122
  128. data/examples/rr/rspec/rspec_adapter_example.rb +0 -63
  129. data/examples/rr/rspec/rspec_backtrace_tweaking_example.rb +0 -36
  130. data/examples/rr/rspec/rspec_usage_example.rb +0 -65
  131. data/examples/rr/scenario_creator_example.rb +0 -459
  132. data/examples/rr/scenario_example.rb +0 -701
  133. data/examples/rr/scenario_method_proxy_example.rb +0 -71
  134. data/examples/rr/space/hash_with_object_id_key_example.rb +0 -86
  135. data/examples/rr/space/space_create_example.rb +0 -278
  136. data/examples/rr/space/space_example.rb +0 -29
  137. data/examples/rr/space/space_helper.rb +0 -7
  138. data/examples/rr/space/space_register_example.rb +0 -32
  139. data/examples/rr/space/space_reset_example.rb +0 -120
  140. data/examples/rr/space/space_verify_example.rb +0 -169
  141. data/examples/rr/times_called_matchers/any_times_matcher_example.rb +0 -63
  142. data/examples/rr/times_called_matchers/at_least_matcher_example.rb +0 -70
  143. data/examples/rr/times_called_matchers/at_most_matcher_example.rb +0 -85
  144. data/examples/rr/times_called_matchers/integer_matcher_example.rb +0 -91
  145. data/examples/rr/times_called_matchers/proc_matcher_example.rb +0 -77
  146. data/examples/rr/times_called_matchers/range_matcher_example.rb +0 -97
  147. data/examples/rr/times_called_matchers/times_called_matcher_example.rb +0 -53
  148. data/examples/rspec_example_suite.rb +0 -25
  149. data/lib/rr/extensions/instance_methods.rb +0 -228
  150. data/lib/rr/scenario.rb +0 -337
@@ -1,66 +0,0 @@
1
- require "examples/example_helper"
2
-
3
- module RR
4
- describe Double, :shared => true do
5
- it "sets up object and method_name" do
6
- @double.object.should === @object
7
- @double.method_name.should == @method_name.to_sym
8
- end
9
- end
10
-
11
- describe Double, "#initialize where method_name is a symbol" do
12
- it_should_behave_like "RR::Double"
13
-
14
- before do
15
- @space = Space.new
16
- @object = Object.new
17
- @method_name = :foobar
18
- @object.methods.should_not include(@method_name.to_s)
19
- @double = Double.new(@space, @object, @method_name)
20
- end
21
- end
22
-
23
- describe Double, "#initialize where method_name is a string" do
24
- it_should_behave_like "RR::Double"
25
-
26
- before do
27
- @space = Space.new
28
- @object = Object.new
29
- @method_name = 'foobar'
30
- @object.methods.should_not include(@method_name)
31
- @double = Double.new(@space, @object, @method_name)
32
- end
33
- end
34
-
35
- describe Double, "#initialize where method does not exist on object" do
36
- it_should_behave_like "RR::Double"
37
-
38
- before do
39
- @space = Space.new
40
- @object = Object.new
41
- @method_name = :foobar
42
- @object.methods.should_not include(@method_name.to_s)
43
- @double = Double.new(@space, @object, @method_name)
44
- end
45
-
46
- it "object does not have original method" do
47
- @double.object_has_original_method?.should be_false
48
- end
49
- end
50
-
51
- describe Double, "#initialize where method exists on object" do
52
- it_should_behave_like "RR::Double"
53
-
54
- before do
55
- @space = Space.new
56
- @object = Object.new
57
- @method_name = :to_s
58
- @object.methods.should include(@method_name.to_s)
59
- @double = Double.new(@space, @object, @method_name)
60
- end
61
-
62
- it "has a original_method" do
63
- @double.object_has_original_method?.should be_true
64
- end
65
- end
66
- end
@@ -1,56 +0,0 @@
1
- require "examples/example_helper"
2
-
3
- module RR
4
- describe Double, "#object_has_original_method?" do
5
- before do
6
- @space = Space.new
7
- @object = Object.new
8
- @method_name = :to_s
9
- @double = Double.new(@space, @object, @method_name)
10
- class << @double
11
- public :original_method_name
12
- end
13
- end
14
-
15
- it "returns true when method is still in object" do
16
- @double.bind
17
- @double.object_has_original_method?.should be_true
18
- end
19
-
20
- it "returns true when respond_to is true and methods include method" do
21
- @double.bind
22
- def @object.methods
23
- [:__rr_original_to_s]
24
- end
25
- def @object.respond_to?(value)
26
- true
27
- end
28
-
29
- @double.object_has_original_method?.should be_true
30
- end
31
-
32
- it "returns true when respond_to is true and methods do not include method" do
33
- @double.bind
34
- def @object.methods
35
- []
36
- end
37
- def @object.respond_to?(value)
38
- true
39
- end
40
-
41
- @double.object_has_original_method?.should be_true
42
- end
43
-
44
- it "returns false when respond_to is false and methods do not include method" do
45
- @double.bind
46
- def @object.methods
47
- []
48
- end
49
- def @object.respond_to?(value)
50
- false
51
- end
52
-
53
- @double.object_has_original_method?.should be_false
54
- end
55
- end
56
- end
@@ -1,24 +0,0 @@
1
- require "examples/example_helper"
2
-
3
- module RR
4
- describe Double, "#register_scenario" do
5
- before do
6
- @space = Space.new
7
- @object = Object.new
8
- @method_name = :foobar
9
- @object.methods.should_not include(@method_name.to_s)
10
- @double = Double.new(@space, @object, @method_name)
11
- def @double.scenarios
12
- @scenarios
13
- end
14
- end
15
-
16
- it "adds the scenario to the scenarios list" do
17
- scenario = Scenario.new(@space, @double, @space.scenario_definition)
18
-
19
- @double.scenarios.should_not include(scenario)
20
- @double.register_scenario scenario
21
- @double.scenarios.should include(scenario)
22
- end
23
- end
24
- end
@@ -1,89 +0,0 @@
1
- require "examples/example_helper"
2
-
3
- module RR
4
- describe Double, "#reset", :shared => true do
5
- it "cleans up by removing the __rr__method" do
6
- @double.bind
7
- @object.methods.should include("__rr__foobar")
8
-
9
- @double.reset
10
- @object.methods.should_not include("__rr__foobar")
11
- end
12
- end
13
-
14
- describe Double, "#reset when method does not exist" do
15
- it_should_behave_like "RR::Double#reset"
16
-
17
- before do
18
- @space = Space.new
19
- @object = Object.new
20
- @method_name = :foobar
21
- @object.methods.should_not include(@method_name.to_s)
22
- @double = Double.new(@space, @object, @method_name)
23
- end
24
-
25
- it "removes the method" do
26
- @double.bind
27
- @object.methods.should include(@method_name.to_s)
28
-
29
- @double.reset
30
- @object.methods.should_not include(@method_name.to_s)
31
- proc {@object.foobar}.should raise_error(NoMethodError)
32
- end
33
- end
34
-
35
- describe Double, "#reset when method exists" do
36
- it_should_behave_like "RR::Double#reset"
37
-
38
- before do
39
- @space = Space.new
40
- @object = Object.new
41
- @method_name = :foobar
42
- def @object.foobar
43
- :original_foobar
44
- end
45
- @object.methods.should include(@method_name.to_s)
46
- @original_method = @object.method(@method_name)
47
- @double = Double.new(@space, @object, @method_name)
48
-
49
- @double.bind
50
- @object.methods.should include(@method_name.to_s)
51
- end
52
-
53
- it "rebind original method" do
54
- @double.reset
55
- @object.methods.should include(@method_name.to_s)
56
- @object.foobar.should == :original_foobar
57
- end
58
- end
59
-
60
- describe Double, "#reset when method with block exists" do
61
- it_should_behave_like "RR::Double#reset"
62
-
63
- before do
64
- @space = Space.new
65
- @object = Object.new
66
- @method_name = :foobar
67
- def @object.foobar
68
- yield(:original_argument)
69
- end
70
- @object.methods.should include(@method_name.to_s)
71
- @original_method = @object.method(@method_name)
72
- @double = Double.new(@space, @object, @method_name)
73
-
74
- @double.bind
75
- @object.methods.should include(@method_name.to_s)
76
- end
77
-
78
- it "rebinds original method with block" do
79
- @double.reset
80
- @object.methods.should include(@method_name.to_s)
81
-
82
- original_argument = nil
83
- @object.foobar do |arg|
84
- original_argument = arg
85
- end
86
- original_argument.should == :original_argument
87
- end
88
- end
89
- end
@@ -1,23 +0,0 @@
1
- require "examples/example_helper"
2
-
3
- module RR
4
- describe Double, "#verify" do
5
- before do
6
- @space = Space.new
7
- @object = Object.new
8
- @method_name = :foobar
9
- @object.methods.should_not include(@method_name.to_s)
10
- @double = @space.double(@object, @method_name)
11
- end
12
-
13
- it "verifies each scenario was met" do
14
- scenario = Scenario.new(@space, @double, @space.scenario_definition)
15
- @double.register_scenario scenario
16
-
17
- scenario.with(1).once.returns {nil}
18
- proc {@double.verify}.should raise_error(Errors::TimesCalledError)
19
- @object.foobar(1)
20
- proc {@double.verify}.should_not raise_error
21
- end
22
- end
23
- end
@@ -1,65 +0,0 @@
1
- require "examples/example_helper"
2
-
3
- module RR
4
- module Errors
5
- describe RRError, "#backtrace" do
6
- before do
7
- @original_trim_backtrace = RR::Space.trim_backtrace
8
- end
9
- after do
10
- RR::Space.trim_backtrace = @original_trim_backtrace
11
- end
12
-
13
- it "does not include the rr library files when trim_backtrace is true" do
14
- RR::Space.trim_backtrace = true
15
-
16
- error = nil
17
- begin
18
- obj = Object.new
19
- mock(obj).foobar
20
- RR::Space.verify_double(obj, :foobar)
21
- rescue RRError=> e
22
- error = e
23
- end
24
- backtrace = error.backtrace.join("\n")
25
-
26
- backtrace.should_not include("lib/rr")
27
- end
28
-
29
- it "includes the rr library files when trim_backtrace is false" do
30
- RR::Space.trim_backtrace = false
31
-
32
- error = nil
33
- begin
34
- obj = Object.new
35
- mock(obj).foobar
36
- RR::Space.verify_double(obj, :foobar)
37
- rescue RRError=> e
38
- error = e
39
- end
40
- backtrace = error.backtrace.join("\n")
41
-
42
- backtrace.should include("lib/rr")
43
- end
44
-
45
- it "returns custom backtrace when backtrace is set" do
46
- error = RRError.new
47
- custom_backtrace = caller
48
- error.backtrace = custom_backtrace
49
- error.backtrace.should == custom_backtrace
50
- end
51
-
52
- it "returns normal backtrace when backtrace is not set" do
53
- error = nil
54
- expected_line = __LINE__ + 2
55
- begin
56
- raise RRError
57
- rescue RRError => e
58
- error = e
59
- end
60
- error.backtrace.first.should include(__FILE__)
61
- error.backtrace.first.should include(expected_line.to_s)
62
- end
63
- end
64
- end
65
- end
@@ -1,52 +0,0 @@
1
- require "examples/example_helper"
2
-
3
- module RR
4
- module Expectations
5
- describe ArgumentEqualityExpectation, "expected_arguments" do
6
- before do
7
- @expectation = AnyArgumentExpectation.new
8
- end
9
-
10
- it "returns an empty array" do
11
- @expectation.expected_arguments.should == []
12
- end
13
- end
14
-
15
- describe AnyArgumentExpectation, "==" do
16
- before do
17
- @expectation = AnyArgumentExpectation.new
18
- end
19
-
20
- it "returns true when comparing with another AnyArgumentExpectation" do
21
- @expectation.should == AnyArgumentExpectation.new
22
- end
23
-
24
- it "returns false when comparing with ArgumentEqualityExpectation" do
25
- @expectation.should_not == ArgumentEqualityExpectation.new(1)
26
- end
27
- end
28
-
29
- describe AnyArgumentExpectation, "#exact_match?" do
30
- before do
31
- @expectation = AnyArgumentExpectation.new
32
- end
33
-
34
- it "returns false" do
35
- @expectation.should_not be_exact_match(1, 2, 3)
36
- @expectation.should_not be_exact_match(1, 2)
37
- @expectation.should_not be_exact_match(1)
38
- @expectation.should_not be_exact_match()
39
- @expectation.should_not be_exact_match("does not match")
40
- end
41
- end
42
-
43
- describe AnyArgumentExpectation, "#wildcard_match?" do
44
- it "returns true" do
45
- @expectation = AnyArgumentExpectation.new
46
- @expectation.should be_wildcard_match(1, 2, 3)
47
- @expectation.should be_wildcard_match("whatever")
48
- @expectation.should be_wildcard_match("whatever", "else")
49
- end
50
- end
51
- end
52
- end
@@ -1,38 +0,0 @@
1
- require "examples/example_helper"
2
-
3
- module RR
4
- module Expectations
5
- describe ArgumentEqualityExpectation, "#exact_match? with anything argument" do
6
- before do
7
- @expectation = ArgumentEqualityExpectation.new(anything)
8
- end
9
-
10
- it "returns true when passed in an Anything module" do
11
- @expectation.should be_exact_match(WildcardMatchers::Anything.new)
12
- end
13
-
14
- it "returns false otherwise" do
15
- @expectation.should_not be_exact_match("hello")
16
- @expectation.should_not be_exact_match(:hello)
17
- @expectation.should_not be_exact_match(1)
18
- @expectation.should_not be_exact_match(nil)
19
- @expectation.should_not be_exact_match()
20
- end
21
- end
22
-
23
- describe ArgumentEqualityExpectation, "#wildcard_match? with is_a String argument" do
24
- before do
25
- @expectation = ArgumentEqualityExpectation.new(anything)
26
- end
27
-
28
- it "returns true when passed correct number of arguments" do
29
- @expectation.should be_wildcard_match(Object.new)
30
- end
31
-
32
- it "returns false when not passed correct number of arguments" do
33
- @expectation.should_not be_wildcard_match()
34
- @expectation.should_not be_wildcard_match(Object.new, Object.new)
35
- end
36
- end
37
- end
38
- end
@@ -1,62 +0,0 @@
1
- require "examples/example_helper"
2
-
3
- module RR
4
- module Expectations
5
- describe ArgumentEqualityExpectation, "expected_arguments" do
6
- before do
7
- @expectation = ArgumentEqualityExpectation.new(1, 2, 3)
8
- end
9
-
10
- it "returns the passed in expected_arguments" do
11
- @expectation.expected_arguments.should == [1, 2, 3]
12
- end
13
- end
14
-
15
- describe ArgumentEqualityExpectation, "==" do
16
- before do
17
- @expectation = ArgumentEqualityExpectation.new(1, 2, 3)
18
- end
19
-
20
- it "returns true when passed in expected_arguments are equal" do
21
- @expectation.should == ArgumentEqualityExpectation.new(1, 2, 3)
22
- end
23
-
24
- it "returns false when passed in expected_arguments are not equal" do
25
- @expectation.should_not == ArgumentEqualityExpectation.new(1, 2)
26
- @expectation.should_not == ArgumentEqualityExpectation.new(1)
27
- @expectation.should_not == ArgumentEqualityExpectation.new(:something)
28
- @expectation.should_not == ArgumentEqualityExpectation.new()
29
- end
30
- end
31
-
32
- describe ArgumentEqualityExpectation, "#exact_match?" do
33
- before do
34
- @expectation = ArgumentEqualityExpectation.new(1, 2, 3)
35
- end
36
-
37
- it "returns true when all arguments exactly match" do
38
- @expectation.should be_exact_match(1, 2, 3)
39
- @expectation.should_not be_exact_match(1, 2)
40
- @expectation.should_not be_exact_match(1)
41
- @expectation.should_not be_exact_match()
42
- @expectation.should_not be_exact_match("does not match")
43
- end
44
- end
45
-
46
- describe ArgumentEqualityExpectation, "#wildcard_match?" do
47
- it "returns false when not exact match" do
48
- @expectation = ArgumentEqualityExpectation.new(1)
49
- @expectation.should_not be_wildcard_match(1, 2, 3)
50
- @expectation.should_not be_wildcard_match("whatever")
51
- @expectation.should_not be_wildcard_match("whatever", "else")
52
- end
53
-
54
- it "returns true when exact match" do
55
- @expectation = ArgumentEqualityExpectation.new(1, 2)
56
- @expectation.should be_wildcard_match(1, 2)
57
- @expectation.should_not be_wildcard_match(1)
58
- @expectation.should_not be_wildcard_match("whatever", "else")
59
- end
60
- end
61
- end
62
- end