redinger-rr 0.10.3

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 (133) hide show
  1. data/CHANGES +221 -0
  2. data/README.rdoc +343 -0
  3. data/Rakefile +88 -0
  4. data/VERSION.yml +4 -0
  5. data/lib/rr.rb +88 -0
  6. data/lib/rr/adapters/rr_methods.rb +122 -0
  7. data/lib/rr/adapters/rspec.rb +59 -0
  8. data/lib/rr/adapters/test_unit.rb +29 -0
  9. data/lib/rr/double.rb +152 -0
  10. data/lib/rr/double_definitions/child_double_definition_creator.rb +27 -0
  11. data/lib/rr/double_definitions/double_definition.rb +348 -0
  12. data/lib/rr/double_definitions/double_definition_creator.rb +167 -0
  13. data/lib/rr/double_definitions/double_definition_creator_proxy.rb +37 -0
  14. data/lib/rr/double_definitions/strategies/implementation/implementation_strategy.rb +15 -0
  15. data/lib/rr/double_definitions/strategies/implementation/proxy.rb +62 -0
  16. data/lib/rr/double_definitions/strategies/implementation/reimplementation.rb +14 -0
  17. data/lib/rr/double_definitions/strategies/implementation/strongly_typed_reimplementation.rb +17 -0
  18. data/lib/rr/double_definitions/strategies/scope/instance.rb +15 -0
  19. data/lib/rr/double_definitions/strategies/scope/instance_of_class.rb +50 -0
  20. data/lib/rr/double_definitions/strategies/scope/scope_strategy.rb +15 -0
  21. data/lib/rr/double_definitions/strategies/strategy.rb +70 -0
  22. data/lib/rr/double_definitions/strategies/verification/dont_allow.rb +34 -0
  23. data/lib/rr/double_definitions/strategies/verification/mock.rb +44 -0
  24. data/lib/rr/double_definitions/strategies/verification/stub.rb +45 -0
  25. data/lib/rr/double_definitions/strategies/verification/verification_strategy.rb +15 -0
  26. data/lib/rr/double_injection.rb +180 -0
  27. data/lib/rr/double_matches.rb +51 -0
  28. data/lib/rr/errors/argument_equality_error.rb +6 -0
  29. data/lib/rr/errors/double_definition_error.rb +6 -0
  30. data/lib/rr/errors/double_not_found_error.rb +6 -0
  31. data/lib/rr/errors/double_order_error.rb +6 -0
  32. data/lib/rr/errors/rr_error.rb +20 -0
  33. data/lib/rr/errors/spy_verification_errors/double_injection_not_found_error.rb +8 -0
  34. data/lib/rr/errors/spy_verification_errors/invocation_count_error.rb +8 -0
  35. data/lib/rr/errors/spy_verification_errors/spy_verification_error.rb +8 -0
  36. data/lib/rr/errors/subject_does_not_implement_method_error.rb +6 -0
  37. data/lib/rr/errors/subject_has_different_arity_error.rb +6 -0
  38. data/lib/rr/errors/times_called_error.rb +6 -0
  39. data/lib/rr/expectations/any_argument_expectation.rb +21 -0
  40. data/lib/rr/expectations/argument_equality_expectation.rb +41 -0
  41. data/lib/rr/expectations/times_called_expectation.rb +57 -0
  42. data/lib/rr/hash_with_object_id_key.rb +44 -0
  43. data/lib/rr/method_dispatches/base_method_dispatch.rb +108 -0
  44. data/lib/rr/method_dispatches/method_dispatch.rb +61 -0
  45. data/lib/rr/method_dispatches/method_missing_dispatch.rb +49 -0
  46. data/lib/rr/proc_from_block.rb +7 -0
  47. data/lib/rr/recorded_calls.rb +103 -0
  48. data/lib/rr/space.rb +123 -0
  49. data/lib/rr/spy_verification.rb +48 -0
  50. data/lib/rr/spy_verification_proxy.rb +18 -0
  51. data/lib/rr/times_called_matchers/any_times_matcher.rb +18 -0
  52. data/lib/rr/times_called_matchers/at_least_matcher.rb +15 -0
  53. data/lib/rr/times_called_matchers/at_most_matcher.rb +23 -0
  54. data/lib/rr/times_called_matchers/integer_matcher.rb +19 -0
  55. data/lib/rr/times_called_matchers/non_terminal.rb +27 -0
  56. data/lib/rr/times_called_matchers/proc_matcher.rb +11 -0
  57. data/lib/rr/times_called_matchers/range_matcher.rb +21 -0
  58. data/lib/rr/times_called_matchers/terminal.rb +20 -0
  59. data/lib/rr/times_called_matchers/times_called_matcher.rb +44 -0
  60. data/lib/rr/wildcard_matchers.rb +158 -0
  61. data/lib/rr/wildcard_matchers/anything.rb +18 -0
  62. data/lib/rr/wildcard_matchers/boolean.rb +23 -0
  63. data/lib/rr/wildcard_matchers/duck_type.rb +32 -0
  64. data/lib/rr/wildcard_matchers/hash_including.rb +29 -0
  65. data/lib/rr/wildcard_matchers/is_a.rb +25 -0
  66. data/lib/rr/wildcard_matchers/numeric.rb +13 -0
  67. data/lib/rr/wildcard_matchers/range.rb +7 -0
  68. data/lib/rr/wildcard_matchers/regexp.rb +7 -0
  69. data/lib/rr/wildcard_matchers/satisfy.rb +26 -0
  70. data/spec/core_spec_suite.rb +19 -0
  71. data/spec/environment_fixture_setup.rb +7 -0
  72. data/spec/high_level_spec.rb +398 -0
  73. data/spec/proc_from_block_spec.rb +14 -0
  74. data/spec/rr/adapters/rr_methods_argument_matcher_spec.rb +67 -0
  75. data/spec/rr/adapters/rr_methods_creator_spec.rb +149 -0
  76. data/spec/rr/adapters/rr_methods_space_spec.rb +115 -0
  77. data/spec/rr/adapters/rr_methods_spec_helper.rb +11 -0
  78. data/spec/rr/adapters/rr_methods_times_matcher_spec.rb +17 -0
  79. data/spec/rr/double_definitions/child_double_definition_creator_spec.rb +112 -0
  80. data/spec/rr/double_definitions/double_definition_creator_proxy_spec.rb +155 -0
  81. data/spec/rr/double_definitions/double_definition_creator_spec.rb +502 -0
  82. data/spec/rr/double_definitions/double_definition_spec.rb +1165 -0
  83. data/spec/rr/double_injection/double_injection_spec.rb +339 -0
  84. data/spec/rr/double_injection/double_injection_verify_spec.rb +29 -0
  85. data/spec/rr/double_spec.rb +352 -0
  86. data/spec/rr/errors/rr_error_spec.rb +67 -0
  87. data/spec/rr/expectations/any_argument_expectation_spec.rb +47 -0
  88. data/spec/rr/expectations/anything_argument_equality_expectation_spec.rb +14 -0
  89. data/spec/rr/expectations/argument_equality_expectation_spec.rb +135 -0
  90. data/spec/rr/expectations/boolean_argument_equality_expectation_spec.rb +34 -0
  91. data/spec/rr/expectations/hash_including_argument_equality_expectation_spec.rb +82 -0
  92. data/spec/rr/expectations/hash_including_spec.rb +17 -0
  93. data/spec/rr/expectations/satisfy_argument_equality_expectation_spec.rb +59 -0
  94. data/spec/rr/expectations/satisfy_spec.rb +14 -0
  95. data/spec/rr/expectations/times_called_expectation/times_called_expectation_any_times_spec.rb +46 -0
  96. data/spec/rr/expectations/times_called_expectation/times_called_expectation_at_least_spec.rb +69 -0
  97. data/spec/rr/expectations/times_called_expectation/times_called_expectation_at_most_spec.rb +71 -0
  98. data/spec/rr/expectations/times_called_expectation/times_called_expectation_helper.rb +23 -0
  99. data/spec/rr/expectations/times_called_expectation/times_called_expectation_integer_spec.rb +104 -0
  100. data/spec/rr/expectations/times_called_expectation/times_called_expectation_proc_spec.rb +81 -0
  101. data/spec/rr/expectations/times_called_expectation/times_called_expectation_range_spec.rb +83 -0
  102. data/spec/rr/expectations/times_called_expectation/times_called_expectation_spec.rb +38 -0
  103. data/spec/rr/rspec/invocation_matcher_spec.rb +279 -0
  104. data/spec/rr/rspec/rspec_adapter_spec.rb +66 -0
  105. data/spec/rr/rspec/rspec_backtrace_tweaking_spec.rb +31 -0
  106. data/spec/rr/rspec/rspec_backtrace_tweaking_spec_fixture.rb +11 -0
  107. data/spec/rr/rspec/rspec_usage_spec.rb +86 -0
  108. data/spec/rr/space/hash_with_object_id_key_spec.rb +88 -0
  109. data/spec/rr/space/space_spec.rb +550 -0
  110. data/spec/rr/test_unit/test_helper.rb +7 -0
  111. data/spec/rr/test_unit/test_unit_backtrace_test.rb +36 -0
  112. data/spec/rr/test_unit/test_unit_integration_test.rb +57 -0
  113. data/spec/rr/times_called_matchers/any_times_matcher_spec.rb +47 -0
  114. data/spec/rr/times_called_matchers/at_least_matcher_spec.rb +55 -0
  115. data/spec/rr/times_called_matchers/at_most_matcher_spec.rb +70 -0
  116. data/spec/rr/times_called_matchers/integer_matcher_spec.rb +70 -0
  117. data/spec/rr/times_called_matchers/proc_matcher_spec.rb +55 -0
  118. data/spec/rr/times_called_matchers/range_matcher_spec.rb +76 -0
  119. data/spec/rr/times_called_matchers/times_called_matcher_spec.rb +118 -0
  120. data/spec/rr/wildcard_matchers/anything_spec.rb +24 -0
  121. data/spec/rr/wildcard_matchers/boolean_spec.rb +36 -0
  122. data/spec/rr/wildcard_matchers/duck_type_spec.rb +52 -0
  123. data/spec/rr/wildcard_matchers/is_a_spec.rb +32 -0
  124. data/spec/rr/wildcard_matchers/numeric_spec.rb +32 -0
  125. data/spec/rr/wildcard_matchers/range_spec.rb +35 -0
  126. data/spec/rr/wildcard_matchers/regexp_spec.rb +43 -0
  127. data/spec/rr_spec.rb +28 -0
  128. data/spec/rspec_spec_suite.rb +17 -0
  129. data/spec/spec_helper.rb +109 -0
  130. data/spec/spec_suite.rb +31 -0
  131. data/spec/spy_verification_spec.rb +129 -0
  132. data/spec/test_unit_spec_suite.rb +21 -0
  133. metadata +193 -0
@@ -0,0 +1,31 @@
1
+ class ExampleSuite
2
+ def run
3
+ run_core_examples
4
+ run_rspec_examples
5
+ run_test_unit_examples
6
+ end
7
+
8
+ def run_core_examples
9
+ system("ruby #{dir}/core_spec_suite.rb #{spec_opts}") || raise("Core suite Failed")
10
+ end
11
+
12
+ def run_rspec_examples
13
+ system("ruby #{dir}/rspec_spec_suite.rb #{spec_opts}") || raise("Rspec suite Failed")
14
+ end
15
+
16
+ def run_test_unit_examples
17
+ system("ruby #{dir}/test_unit_spec_suite.rb") || raise("Test::Unit suite Failed")
18
+ end
19
+
20
+ def spec_opts
21
+ File.read("#{dir}/spec.opts").split("\n").join(" ")
22
+ end
23
+
24
+ def dir
25
+ File.dirname(__FILE__)
26
+ end
27
+ end
28
+
29
+ if $0 == __FILE__
30
+ ExampleSuite.new.run
31
+ end
@@ -0,0 +1,129 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
2
+
3
+ class Alpha
4
+ def bob
5
+ end
6
+ end
7
+
8
+ describe RR::SpyVerification do
9
+ attr_reader :subject, :recorded_calls
10
+ it_should_behave_like "Swapped Space"
11
+ before(:each) do
12
+ @subject = Object.new
13
+ extend RR::Adapters::RRMethods
14
+ stub(subject).foobar
15
+ @recorded_calls = RR::RecordedCalls.new([[subject, :foobar, [1, 2], nil]])
16
+ end
17
+
18
+ describe "#call" do
19
+ context "when a subject is expected to receive a method with exact arguments" do
20
+ context "when the number of times the subject received a method is not specified" do
21
+ context "when there is an exact match one time" do
22
+ it "verifies that the method with arguments was called once" do
23
+ subject.foobar(1, 2)
24
+ received(subject).foobar(1, 2).call
25
+ subject.foobar(1, 2)
26
+ lambda do
27
+ received(subject).foobar(1, 2).call
28
+ end.should raise_error(RR::Errors::SpyVerificationErrors::InvocationCountError)
29
+ end
30
+ end
31
+ end
32
+
33
+ context "when the number of times the subject received a method is specified" do
34
+ context "as one time" do
35
+ it "verifies that the method with arugments was called once" do
36
+ subject.foobar(1, 2)
37
+ received(subject).foobar(1, 2).once.call
38
+ subject.foobar(1, 2)
39
+ lambda do
40
+ received(subject).foobar(1, 2).once.call
41
+ end.should raise_error(RR::Errors::SpyVerificationErrors::InvocationCountError)
42
+ end
43
+ end
44
+
45
+ context "as an at least matcher" do
46
+ it "verifies that the method with arugments was called at least the specified number of times" do
47
+ subject.foobar(1, 2)
48
+ lambda do
49
+ received(subject).foobar(1, 2).at_least(2).call
50
+ end.should raise_error(RR::Errors::SpyVerificationErrors::InvocationCountError)
51
+ subject.foobar(1, 2)
52
+ received(subject).foobar(1, 2).at_least(2).call
53
+ subject.foobar(1, 2)
54
+ received(subject).foobar(1, 2).at_least(2).call
55
+ end
56
+ end
57
+ end
58
+ end
59
+
60
+ context "when a subject is expected to receive a method with wildcard arguments" do
61
+ context "when the number of times the subject received a method is not specified" do
62
+ context "when there is a wildcard match one time" do
63
+ it "verifies that the method with arguments was called once" do
64
+ subject.foobar(1, 2)
65
+ received(subject).foobar(1, is_a(Fixnum)).call
66
+ subject.foobar(1, 2)
67
+ lambda do
68
+ received(subject).foobar(1, is_a(Fixnum)).call
69
+ end.should raise_error(RR::Errors::SpyVerificationErrors::InvocationCountError)
70
+ end
71
+ end
72
+ end
73
+
74
+ context "when the number of times the subject received a method is specified" do
75
+ context "as one time" do
76
+ it "verifies that the method with arugments was called once" do
77
+ subject.foobar(1, 2)
78
+ received(subject).foobar(1, is_a(Fixnum)).once.call
79
+ subject.foobar(1, 2)
80
+ lambda do
81
+ received(subject).foobar(1, is_a(Fixnum)).once.call
82
+ end.should raise_error(RR::Errors::SpyVerificationErrors::InvocationCountError)
83
+ end
84
+ end
85
+
86
+ context "as an at least matcher" do
87
+ it "verifies that the method with arugments was called at least the specified number of times" do
88
+ subject.foobar(1, is_a(Fixnum))
89
+ lambda do
90
+ received(subject).foobar(1, is_a(Fixnum)).at_least(2).call
91
+ end.should raise_error(RR::Errors::SpyVerificationErrors::InvocationCountError)
92
+ subject.foobar(1, 2)
93
+ received(subject).foobar(1, is_a(Fixnum)).at_least(2).call
94
+ subject.foobar(1, 2)
95
+ received(subject).foobar(1, is_a(Fixnum)).at_least(2).call
96
+ end
97
+ end
98
+ end
99
+ end
100
+
101
+ context "when checking for ordering" do
102
+ it "when the order is incorrect; raises an error" do
103
+ subject.foobar(3, 4)
104
+ subject.foobar(1, 2)
105
+ lambda do
106
+ received(subject).foobar(1, 2).ordered.call
107
+ received(subject).foobar(3, 4).ordered.call
108
+ end.should raise_error(RR::Errors::SpyVerificationErrors::InvocationCountError)
109
+ end
110
+
111
+ it "when the order is correct; does not raise an error" do
112
+ subject.foobar(1, 2)
113
+ subject.foobar(1, 2)
114
+ subject.foobar(3, 4)
115
+ received(subject).foobar(1, 2).ordered.call
116
+ received(subject).foobar(3, 4).ordered.call
117
+ end
118
+ end
119
+
120
+ context "when the subject is expected where there is not DoubleInjection" do
121
+ it "raises a DoubleInjectionNotFoundError" do
122
+ space.double_injection_exists?(subject, :method_that_does_not_exist).should be_false
123
+ lambda do
124
+ received(subject).method_that_does_not_exist.call
125
+ end.should raise_error(RR::Errors::SpyVerificationErrors::DoubleInjectionNotFoundError)
126
+ end
127
+ end
128
+ end
129
+ end
@@ -0,0 +1,21 @@
1
+ require "rubygems"
2
+ require "spec"
3
+
4
+ class TestUnitTestSuite
5
+ def run
6
+ require_tests
7
+
8
+ puts "Running Test::Unit Test Suite"
9
+ end
10
+
11
+ def require_tests
12
+ dir = File.dirname(__FILE__)
13
+ Dir["#{dir}/rr/test_unit/**/*_test.rb"].each do |file|
14
+ require file
15
+ end
16
+ end
17
+ end
18
+
19
+ if $0 == __FILE__
20
+ TestUnitTestSuite.new.run
21
+ end
metadata ADDED
@@ -0,0 +1,193 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: redinger-rr
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.10.3
5
+ platform: ruby
6
+ authors:
7
+ - Brian Takita
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-08-30 00:00:00 -04:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: RR (Double Ruby) is a double framework that features a rich selection of double techniques and a terse syntax. http://xunitpatterns.com/Test%20Double.html
17
+ email: brian@pivotallabs.com
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - CHANGES
24
+ - README.rdoc
25
+ files:
26
+ - CHANGES
27
+ - README.rdoc
28
+ - Rakefile
29
+ - VERSION.yml
30
+ - lib/rr.rb
31
+ - lib/rr/adapters/rr_methods.rb
32
+ - lib/rr/adapters/rspec.rb
33
+ - lib/rr/adapters/test_unit.rb
34
+ - lib/rr/double.rb
35
+ - lib/rr/double_definitions/child_double_definition_creator.rb
36
+ - lib/rr/double_definitions/double_definition.rb
37
+ - lib/rr/double_definitions/double_definition_creator.rb
38
+ - lib/rr/double_definitions/double_definition_creator_proxy.rb
39
+ - lib/rr/double_definitions/strategies/implementation/implementation_strategy.rb
40
+ - lib/rr/double_definitions/strategies/implementation/proxy.rb
41
+ - lib/rr/double_definitions/strategies/implementation/reimplementation.rb
42
+ - lib/rr/double_definitions/strategies/implementation/strongly_typed_reimplementation.rb
43
+ - lib/rr/double_definitions/strategies/scope/instance.rb
44
+ - lib/rr/double_definitions/strategies/scope/instance_of_class.rb
45
+ - lib/rr/double_definitions/strategies/scope/scope_strategy.rb
46
+ - lib/rr/double_definitions/strategies/strategy.rb
47
+ - lib/rr/double_definitions/strategies/verification/dont_allow.rb
48
+ - lib/rr/double_definitions/strategies/verification/mock.rb
49
+ - lib/rr/double_definitions/strategies/verification/stub.rb
50
+ - lib/rr/double_definitions/strategies/verification/verification_strategy.rb
51
+ - lib/rr/double_injection.rb
52
+ - lib/rr/double_matches.rb
53
+ - lib/rr/errors/argument_equality_error.rb
54
+ - lib/rr/errors/double_definition_error.rb
55
+ - lib/rr/errors/double_not_found_error.rb
56
+ - lib/rr/errors/double_order_error.rb
57
+ - lib/rr/errors/rr_error.rb
58
+ - lib/rr/errors/spy_verification_errors/double_injection_not_found_error.rb
59
+ - lib/rr/errors/spy_verification_errors/invocation_count_error.rb
60
+ - lib/rr/errors/spy_verification_errors/spy_verification_error.rb
61
+ - lib/rr/errors/subject_does_not_implement_method_error.rb
62
+ - lib/rr/errors/subject_has_different_arity_error.rb
63
+ - lib/rr/errors/times_called_error.rb
64
+ - lib/rr/expectations/any_argument_expectation.rb
65
+ - lib/rr/expectations/argument_equality_expectation.rb
66
+ - lib/rr/expectations/times_called_expectation.rb
67
+ - lib/rr/method_dispatches/base_method_dispatch.rb
68
+ - lib/rr/method_dispatches/method_dispatch.rb
69
+ - lib/rr/method_dispatches/method_missing_dispatch.rb
70
+ - lib/rr/hash_with_object_id_key.rb
71
+ - lib/rr/proc_from_block.rb
72
+ - lib/rr/recorded_calls.rb
73
+ - lib/rr/space.rb
74
+ - lib/rr/spy_verification.rb
75
+ - lib/rr/spy_verification_proxy.rb
76
+ - lib/rr/times_called_matchers/any_times_matcher.rb
77
+ - lib/rr/times_called_matchers/at_least_matcher.rb
78
+ - lib/rr/times_called_matchers/at_most_matcher.rb
79
+ - lib/rr/times_called_matchers/integer_matcher.rb
80
+ - lib/rr/times_called_matchers/non_terminal.rb
81
+ - lib/rr/times_called_matchers/proc_matcher.rb
82
+ - lib/rr/times_called_matchers/range_matcher.rb
83
+ - lib/rr/times_called_matchers/terminal.rb
84
+ - lib/rr/times_called_matchers/times_called_matcher.rb
85
+ - lib/rr/wildcard_matchers.rb
86
+ - lib/rr/wildcard_matchers/anything.rb
87
+ - lib/rr/wildcard_matchers/boolean.rb
88
+ - lib/rr/wildcard_matchers/duck_type.rb
89
+ - lib/rr/wildcard_matchers/hash_including.rb
90
+ - lib/rr/wildcard_matchers/is_a.rb
91
+ - lib/rr/wildcard_matchers/numeric.rb
92
+ - lib/rr/wildcard_matchers/range.rb
93
+ - lib/rr/wildcard_matchers/regexp.rb
94
+ - lib/rr/wildcard_matchers/satisfy.rb
95
+ - spec/core_spec_suite.rb
96
+ - spec/environment_fixture_setup.rb
97
+ - spec/high_level_spec.rb
98
+ - spec/proc_from_block_spec.rb
99
+ - spec/rr/adapters/rr_methods_argument_matcher_spec.rb
100
+ - spec/rr/adapters/rr_methods_creator_spec.rb
101
+ - spec/rr/adapters/rr_methods_space_spec.rb
102
+ - spec/rr/adapters/rr_methods_spec_helper.rb
103
+ - spec/rr/adapters/rr_methods_times_matcher_spec.rb
104
+ - spec/rr/double_definitions/child_double_definition_creator_spec.rb
105
+ - spec/rr/double_definitions/double_definition_creator_proxy_spec.rb
106
+ - spec/rr/double_definitions/double_definition_creator_spec.rb
107
+ - spec/rr/double_definitions/double_definition_spec.rb
108
+ - spec/rr/double_injection/double_injection_spec.rb
109
+ - spec/rr/double_injection/double_injection_verify_spec.rb
110
+ - spec/rr/double_spec.rb
111
+ - spec/rr/errors/rr_error_spec.rb
112
+ - spec/rr/expectations/any_argument_expectation_spec.rb
113
+ - spec/rr/expectations/anything_argument_equality_expectation_spec.rb
114
+ - spec/rr/expectations/argument_equality_expectation_spec.rb
115
+ - spec/rr/expectations/boolean_argument_equality_expectation_spec.rb
116
+ - spec/rr/expectations/hash_including_argument_equality_expectation_spec.rb
117
+ - spec/rr/expectations/hash_including_spec.rb
118
+ - spec/rr/expectations/satisfy_argument_equality_expectation_spec.rb
119
+ - spec/rr/expectations/satisfy_spec.rb
120
+ - spec/rr/expectations/times_called_expectation/times_called_expectation_any_times_spec.rb
121
+ - spec/rr/expectations/times_called_expectation/times_called_expectation_at_least_spec.rb
122
+ - spec/rr/expectations/times_called_expectation/times_called_expectation_at_most_spec.rb
123
+ - spec/rr/expectations/times_called_expectation/times_called_expectation_helper.rb
124
+ - spec/rr/expectations/times_called_expectation/times_called_expectation_integer_spec.rb
125
+ - spec/rr/expectations/times_called_expectation/times_called_expectation_proc_spec.rb
126
+ - spec/rr/expectations/times_called_expectation/times_called_expectation_range_spec.rb
127
+ - spec/rr/expectations/times_called_expectation/times_called_expectation_spec.rb
128
+ - spec/rr/rspec/invocation_matcher_spec.rb
129
+ - spec/rr/rspec/rspec_adapter_spec.rb
130
+ - spec/rr/rspec/rspec_backtrace_tweaking_spec.rb
131
+ - spec/rr/rspec/rspec_backtrace_tweaking_spec_fixture.rb
132
+ - spec/rr/rspec/rspec_usage_spec.rb
133
+ - spec/rr/space/hash_with_object_id_key_spec.rb
134
+ - spec/rr/space/space_spec.rb
135
+ - spec/rr/test_unit/test_helper.rb
136
+ - spec/rr/test_unit/test_unit_backtrace_test.rb
137
+ - spec/rr/test_unit/test_unit_integration_test.rb
138
+ - spec/rr/times_called_matchers/any_times_matcher_spec.rb
139
+ - spec/rr/times_called_matchers/at_least_matcher_spec.rb
140
+ - spec/rr/times_called_matchers/at_most_matcher_spec.rb
141
+ - spec/rr/times_called_matchers/integer_matcher_spec.rb
142
+ - spec/rr/times_called_matchers/proc_matcher_spec.rb
143
+ - spec/rr/times_called_matchers/range_matcher_spec.rb
144
+ - spec/rr/times_called_matchers/times_called_matcher_spec.rb
145
+ - spec/rr/wildcard_matchers/anything_spec.rb
146
+ - spec/rr/wildcard_matchers/boolean_spec.rb
147
+ - spec/rr/wildcard_matchers/duck_type_spec.rb
148
+ - spec/rr/wildcard_matchers/is_a_spec.rb
149
+ - spec/rr/wildcard_matchers/numeric_spec.rb
150
+ - spec/rr/wildcard_matchers/range_spec.rb
151
+ - spec/rr/wildcard_matchers/regexp_spec.rb
152
+ - spec/rr_spec.rb
153
+ - spec/rspec_spec_suite.rb
154
+ - spec/spec_helper.rb
155
+ - spec/spec_suite.rb
156
+ - spec/spy_verification_spec.rb
157
+ - spec/test_unit_spec_suite.rb
158
+ has_rdoc: true
159
+ homepage: http://pivotallabs.com
160
+ licenses: []
161
+
162
+ post_install_message:
163
+ rdoc_options:
164
+ - --main
165
+ - README.rdoc
166
+ - --inline-source
167
+ - --line-numbers
168
+ require_paths:
169
+ - lib
170
+ required_ruby_version: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: "0"
175
+ version:
176
+ required_rubygems_version: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: "0"
181
+ version:
182
+ requirements: []
183
+
184
+ rubyforge_project: pivotalrb
185
+ rubygems_version: 1.3.5
186
+ signing_key:
187
+ specification_version: 3
188
+ summary: RR (Double Ruby) is a double framework that features a rich selection of double techniques and a terse syntax. http://xunitpatterns.com/Test%20Double.html
189
+ test_files:
190
+ - spec/spy_verification_spec.rb
191
+ - spec/high_level_spec.rb
192
+ - spec/rr_spec.rb
193
+ - spec/proc_from_block_spec.rb