rr 1.0.4 → 1.0.5.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. checksums.yaml +15 -0
  2. data/CHANGES.md +376 -0
  3. data/Gemfile +7 -10
  4. data/README.md +822 -0
  5. data/Rakefile +24 -78
  6. data/VERSION +1 -0
  7. data/lib/rr.rb +3 -0
  8. data/lib/rr/adapters/minitest.rb +6 -0
  9. data/lib/rr/adapters/rr_methods.rb +6 -10
  10. data/lib/rr/adapters/rspec.rb +3 -0
  11. data/lib/rr/adapters/rspec2.rb +30 -0
  12. data/lib/rr/adapters/test_unit.rb +2 -0
  13. data/lib/rr/double.rb +3 -2
  14. data/lib/rr/double_definitions/child_double_definition_create.rb +3 -2
  15. data/lib/rr/double_definitions/double_definition.rb +15 -13
  16. data/lib/rr/double_definitions/double_definition_create.rb +9 -5
  17. data/lib/rr/double_definitions/double_injections/any_instance_of.rb +3 -2
  18. data/lib/rr/double_definitions/strategies/strategy.rb +5 -4
  19. data/lib/rr/double_definitions/strategies/strategy_methods.rb +6 -8
  20. data/lib/rr/double_definitions/strategies/verification/mock.rb +3 -3
  21. data/lib/rr/double_matches.rb +2 -1
  22. data/lib/rr/expectations/argument_equality_expectation.rb +2 -2
  23. data/lib/rr/expectations/times_called_expectation.rb +2 -2
  24. data/lib/rr/injections/double_injection.rb +12 -11
  25. data/lib/rr/injections/injection.rb +2 -2
  26. data/lib/rr/injections/method_missing_injection.rb +21 -7
  27. data/lib/rr/injections/singleton_method_added_injection.rb +3 -1
  28. data/lib/rr/method_dispatches/base_method_dispatch.rb +1 -1
  29. data/lib/rr/method_dispatches/method_dispatch.rb +2 -1
  30. data/lib/rr/method_dispatches/method_missing_dispatch.rb +2 -1
  31. data/lib/rr/proc_from_block.rb +8 -4
  32. data/lib/rr/space.rb +3 -2
  33. data/lib/rr/times_called_matchers/times_called_matcher.rb +2 -2
  34. data/lib/rr/version.rb +5 -0
  35. data/lib/rr/wildcard_matchers/boolean.rb +2 -2
  36. data/spec/runner.rb +41 -0
  37. metadata +45 -133
  38. data/.gitignore +0 -10
  39. data/.runrc +0 -3
  40. data/.rvmrc +0 -2
  41. data/CHANGES +0 -266
  42. data/Gemfile.lock +0 -31
  43. data/README.rdoc +0 -392
  44. data/benchmarks/rr_benchmark.rb +0 -32
  45. data/benchmarks/rspec_benchmark.rb +0 -14
  46. data/doc/0.6.0.release.markdown +0 -81
  47. data/doc/todo.txt +0 -0
  48. data/introducting_rr.txt +0 -206
  49. data/rr.gemspec +0 -37
  50. data/spec/api/any_instance_of/all_instances_of_spec.rb +0 -12
  51. data/spec/api/any_instance_of/any_instance_of_spec.rb +0 -47
  52. data/spec/api/any_instance_of/instance_of_spec.rb +0 -12
  53. data/spec/api/dont_allow/dont_allow_after_stub_spec.rb +0 -14
  54. data/spec/api/mock/mock_spec.rb +0 -193
  55. data/spec/api/proxy/proxy_spec.rb +0 -86
  56. data/spec/api/spy/spy_spec.rb +0 -49
  57. data/spec/api/strong/strong_spec.rb +0 -87
  58. data/spec/api/stub/stub_spec.rb +0 -152
  59. data/spec/core_spec_suite.rb +0 -19
  60. data/spec/environment_fixture_setup.rb +0 -8
  61. data/spec/minitest_spec_suite.rb +0 -21
  62. data/spec/proc_from_block_spec.rb +0 -14
  63. data/spec/rr/adapters/rr_methods_argument_matcher_spec.rb +0 -67
  64. data/spec/rr/adapters/rr_methods_creator_spec.rb +0 -137
  65. data/spec/rr/adapters/rr_methods_space_spec.rb +0 -98
  66. data/spec/rr/adapters/rr_methods_spec_helper.rb +0 -11
  67. data/spec/rr/adapters/rr_methods_times_matcher_spec.rb +0 -13
  68. data/spec/rr/double_definitions/child_double_definition_creator_spec.rb +0 -112
  69. data/spec/rr/double_definitions/double_definition_create_blank_slate_spec.rb +0 -91
  70. data/spec/rr/double_definitions/double_definition_create_spec.rb +0 -443
  71. data/spec/rr/double_injection/double_injection_spec.rb +0 -546
  72. data/spec/rr/double_injection/double_injection_verify_spec.rb +0 -29
  73. data/spec/rr/errors/rr_error_spec.rb +0 -67
  74. data/spec/rr/expectations/any_argument_expectation_spec.rb +0 -47
  75. data/spec/rr/expectations/anything_argument_equality_expectation_spec.rb +0 -14
  76. data/spec/rr/expectations/argument_equality_expectation_spec.rb +0 -135
  77. data/spec/rr/expectations/boolean_argument_equality_expectation_spec.rb +0 -34
  78. data/spec/rr/expectations/hash_including_argument_equality_expectation_spec.rb +0 -82
  79. data/spec/rr/expectations/hash_including_spec.rb +0 -17
  80. data/spec/rr/expectations/satisfy_argument_equality_expectation_spec.rb +0 -59
  81. data/spec/rr/expectations/satisfy_spec.rb +0 -14
  82. data/spec/rr/expectations/times_called_expectation/times_called_expectation_any_times_spec.rb +0 -22
  83. data/spec/rr/expectations/times_called_expectation/times_called_expectation_at_least_spec.rb +0 -37
  84. data/spec/rr/expectations/times_called_expectation/times_called_expectation_at_most_spec.rb +0 -43
  85. data/spec/rr/expectations/times_called_expectation/times_called_expectation_helper.rb +0 -15
  86. data/spec/rr/expectations/times_called_expectation/times_called_expectation_integer_spec.rb +0 -58
  87. data/spec/rr/expectations/times_called_expectation/times_called_expectation_proc_spec.rb +0 -35
  88. data/spec/rr/expectations/times_called_expectation/times_called_expectation_range_spec.rb +0 -39
  89. data/spec/rr/minitest/minitest_integration_test.rb +0 -59
  90. data/spec/rr/minitest/test_helper.rb +0 -7
  91. data/spec/rr/rspec/invocation_matcher_spec.rb +0 -279
  92. data/spec/rr/rspec/rspec_adapter_spec.rb +0 -63
  93. data/spec/rr/rspec/rspec_backtrace_tweaking_spec.rb +0 -31
  94. data/spec/rr/rspec/rspec_backtrace_tweaking_spec_fixture.rb +0 -11
  95. data/spec/rr/rspec/rspec_usage_spec.rb +0 -86
  96. data/spec/rr/space/hash_with_object_id_key_spec.rb +0 -88
  97. data/spec/rr/space/space_spec.rb +0 -596
  98. data/spec/rr/test_unit/test_helper.rb +0 -7
  99. data/spec/rr/test_unit/test_unit_backtrace_test.rb +0 -36
  100. data/spec/rr/test_unit/test_unit_integration_test.rb +0 -59
  101. data/spec/rr/times_called_matchers/any_times_matcher_spec.rb +0 -47
  102. data/spec/rr/times_called_matchers/at_least_matcher_spec.rb +0 -55
  103. data/spec/rr/times_called_matchers/at_most_matcher_spec.rb +0 -70
  104. data/spec/rr/times_called_matchers/integer_matcher_spec.rb +0 -70
  105. data/spec/rr/times_called_matchers/proc_matcher_spec.rb +0 -55
  106. data/spec/rr/times_called_matchers/range_matcher_spec.rb +0 -76
  107. data/spec/rr/times_called_matchers/times_called_matcher_spec.rb +0 -118
  108. data/spec/rr/wildcard_matchers/anything_spec.rb +0 -24
  109. data/spec/rr/wildcard_matchers/boolean_spec.rb +0 -36
  110. data/spec/rr/wildcard_matchers/duck_type_spec.rb +0 -52
  111. data/spec/rr/wildcard_matchers/is_a_spec.rb +0 -32
  112. data/spec/rr/wildcard_matchers/numeric_spec.rb +0 -32
  113. data/spec/rr/wildcard_matchers/range_spec.rb +0 -35
  114. data/spec/rr/wildcard_matchers/regexp_spec.rb +0 -43
  115. data/spec/rr_spec.rb +0 -28
  116. data/spec/rspec_spec_suite.rb +0 -17
  117. data/spec/spec.opts +0 -10
  118. data/spec/spec_helper.rb +0 -41
  119. data/spec/spec_suite.rb +0 -54
  120. data/spec/spy_verification_spec.rb +0 -129
  121. data/spec/test_unit_spec_suite.rb +0 -21
@@ -1,118 +0,0 @@
1
- require File.expand_path("#{File.dirname(__FILE__)}/../../spec_helper")
2
-
3
- module RR
4
- module TimesCalledMatchers
5
- describe TimesCalledMatcher do
6
- describe ".create" do
7
- describe "when passed a AnyTimesMatcher" do
8
- it "returns the passed in argument" do
9
- matcher = AnyTimesMatcher.new
10
- TimesCalledMatcher.create(matcher).should === matcher
11
- end
12
- end
13
-
14
- describe "when passed a AtLeastMatcher" do
15
- it "returns the passed in argument" do
16
- matcher = AtLeastMatcher.new(5)
17
- TimesCalledMatcher.create(matcher).should === matcher
18
- end
19
- end
20
-
21
- describe "when passed a AtMostMatcher" do
22
- it "returns the passed in argument" do
23
- matcher = AtMostMatcher.new(5)
24
- TimesCalledMatcher.create(matcher).should === matcher
25
- end
26
- end
27
-
28
- describe "when passed a IntegerMatcher" do
29
- it "returns the passed in argument" do
30
- matcher = IntegerMatcher.new(5)
31
- TimesCalledMatcher.create(matcher).should === matcher
32
- end
33
- end
34
-
35
- describe "when passed a Integer" do
36
- it "returns IntegerMatcher" do
37
- TimesCalledMatcher.create(5).should == IntegerMatcher.new(5)
38
- end
39
- end
40
-
41
- describe "when passed a ProcMatcher" do
42
- it "returns the passed in argument" do
43
- matcher = ProcMatcher.new(lambda {|other| other == 5})
44
- TimesCalledMatcher.create(matcher).should === matcher
45
- end
46
- end
47
-
48
- describe "when passed a Lambda" do
49
- it "returns ProcMatcher" do
50
- value = lambda {|other| other == 5}
51
- TimesCalledMatcher.create(value).should == ProcMatcher.new(value)
52
- end
53
- end
54
-
55
- describe "when passed a IntegerMatcher" do
56
- it "returns the passed in argument" do
57
- matcher = RangeMatcher.new(2..4)
58
- TimesCalledMatcher.create(matcher).should === matcher
59
- end
60
- end
61
-
62
- describe "when passed a Integer" do
63
- it "returns RangeMatcher" do
64
- TimesCalledMatcher.create(2..4).should == RangeMatcher.new(2..4)
65
- end
66
- end
67
-
68
- describe "when passed a TimesCalledMatcher" do
69
- it "returns the passed in argument" do
70
- matcher = TimesCalledMatcher.new(5)
71
- TimesCalledMatcher.create(matcher).should === matcher
72
- end
73
- end
74
-
75
- describe "when passed an unsupported type" do
76
- it "raises an ArgumentError" do
77
- matcher = Object.new
78
- lambda do
79
- TimesCalledMatcher.create(matcher)
80
- end.should raise_error(ArgumentError, "There is no TimesCalledMatcher for #{matcher.inspect}.")
81
- end
82
- end
83
- end
84
-
85
- describe "#error_message" do
86
- before do
87
- @times = 3
88
- @matcher = TimesCalledMatcher.new(@times)
89
- end
90
-
91
- it "has an error message" do
92
- @matcher.error_message(5).should == (
93
- "Called 5 times.\nExpected 3 times."
94
- )
95
- end
96
- end
97
-
98
- describe "#==" do
99
- before do
100
- @times = 3
101
- @matcher = TimesCalledMatcher.new(@times)
102
- end
103
-
104
- it "returns true when other is the same class and times are ==" do
105
- @matcher.should == TimesCalledMatcher.new(@times)
106
- end
107
-
108
- it "returns false when other is a different class and times are ==" do
109
- @matcher.should_not == IntegerMatcher.new(@times)
110
- end
111
-
112
- it "returns false when is the same class and times are not ==" do
113
- @matcher.should_not == TimesCalledMatcher.new(1)
114
- end
115
- end
116
- end
117
- end
118
- end
@@ -1,24 +0,0 @@
1
- require File.expand_path("#{File.dirname(__FILE__)}/../../spec_helper")
2
-
3
- module RR
4
- module WildcardMatchers
5
- describe Anything do
6
- attr_reader :matcher
7
- before do
8
- @matcher = Anything.new
9
- end
10
-
11
- describe "#wildcard_match?" do
12
- it "returns true" do
13
- matcher.should be_wildcard_match(Object.new)
14
- end
15
- end
16
-
17
- describe "#inspect" do
18
- it "returns anything" do
19
- matcher.inspect.should == "anything"
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,36 +0,0 @@
1
- require File.expand_path("#{File.dirname(__FILE__)}/../../spec_helper")
2
-
3
- module RR
4
- module WildcardMatchers
5
- describe Boolean do
6
- attr_reader :matcher
7
-
8
- before do
9
- @matcher = Boolean.new
10
- end
11
-
12
- describe "#wildcard_match?" do
13
- context "when passed a Boolean" do
14
- it "returns true" do
15
- matcher.should be_wildcard_match(true)
16
- matcher.should be_wildcard_match(false)
17
- end
18
- end
19
-
20
- context "when not passed a Boolean" do
21
- it "returns false" do
22
- matcher.should_not be_wildcard_match(:not_a_boolean)
23
- end
24
- end
25
- end
26
-
27
- describe Boolean do
28
- describe "#inspect" do
29
- it "returns boolean" do
30
- matcher.inspect.should == "boolean"
31
- end
32
- end
33
- end
34
- end
35
- end
36
- end
@@ -1,52 +0,0 @@
1
- require File.expand_path("#{File.dirname(__FILE__)}/../../spec_helper")
2
-
3
- module RR
4
- module WildcardMatchers
5
- describe DuckType do
6
- attr_reader :matcher
7
- before do
8
- @matcher = DuckType.new(:quack, :waddle)
9
- end
10
-
11
- describe "#wildcard_match?" do
12
- before do
13
- @matching_object = Object.new
14
- def @matching_object.quack
15
- end
16
- def @matching_object.waddle
17
- end
18
-
19
- @partial_matching_object = Object.new
20
- def @partial_matching_object.quack
21
- end
22
-
23
- @not_match_object = Object.new
24
- end
25
-
26
- context "when passed-in object matches all required methods" do
27
- it "returns true" do
28
- matcher.should be_wildcard_match(@matching_object)
29
- end
30
- end
31
-
32
- context "when passed-in object matches some required methods" do
33
- it "returns false" do
34
- matcher.should_not be_wildcard_match(@partial_matching_object)
35
- end
36
- end
37
-
38
- context "when passed-in object matches no required methods" do
39
- it "returns false" do
40
- matcher.should_not be_wildcard_match(@not_match_object)
41
- end
42
- end
43
- end
44
-
45
- describe "#inspect" do
46
- it "returns duck_type with methods" do
47
- matcher.inspect.should == "duck_type(:quack, :waddle)"
48
- end
49
- end
50
- end
51
- end
52
- end
@@ -1,32 +0,0 @@
1
- require File.expand_path("#{File.dirname(__FILE__)}/../../spec_helper")
2
-
3
- module RR
4
- module WildcardMatchers
5
- describe IsA do
6
- attr_reader :matcher
7
- before do
8
- @matcher = IsA.new(Symbol)
9
- end
10
-
11
- describe "#wildcard_match?" do
12
- context "when passed an instance of the expected Module" do
13
- it "returns true" do
14
- matcher.should be_wildcard_match(:a_symbol)
15
- end
16
- end
17
-
18
- context "when not passed an instance of the expected Module" do
19
- it "returns false" do
20
- matcher.should_not be_wildcard_match("not a symbol")
21
- end
22
- end
23
- end
24
-
25
- describe "#inspect" do
26
- it "returns the is_a(ClassName)" do
27
- matcher.inspect.should == "is_a(Symbol)"
28
- end
29
- end
30
- end
31
- end
32
- end
@@ -1,32 +0,0 @@
1
- require File.expand_path("#{File.dirname(__FILE__)}/../../spec_helper")
2
-
3
- module RR
4
- module WildcardMatchers
5
- describe Numeric do
6
- attr_reader :matcher
7
- before do
8
- @matcher = Numeric.new
9
- end
10
-
11
- describe "#wildcard_match?" do
12
- context "when passed a Numeric" do
13
- it "returns true" do
14
- matcher.should be_wildcard_match(99)
15
- end
16
- end
17
-
18
- context "when not passed a Numeric" do
19
- it "returns false" do
20
- matcher.should_not be_wildcard_match(:not_a_numeric)
21
- end
22
- end
23
- end
24
-
25
- describe "#inspect" do
26
- it "returns numeric" do
27
- matcher.inspect.should == "numeric"
28
- end
29
- end
30
- end
31
- end
32
- end
@@ -1,35 +0,0 @@
1
- require File.expand_path("#{File.dirname(__FILE__)}/../../spec_helper")
2
-
3
- describe Range do
4
- attr_reader :matcher
5
-
6
- before do
7
- @matcher = 2..3
8
- end
9
-
10
- describe "#wildcard_match?" do
11
- context "when passed-in number falls within the Range" do
12
- it "returns true" do
13
- matcher.should be_wildcard_match(3)
14
- end
15
- end
16
-
17
- context "when passed-in number does not fall within the Range" do
18
- it "returns false" do
19
- matcher.should_not be_wildcard_match(7)
20
- end
21
- end
22
-
23
- context "when passed-in argument is not a number" do
24
- it "returns false" do
25
- matcher.should_not be_wildcard_match("Not a number")
26
- end
27
- end
28
- end
29
-
30
- describe "#inspect" do
31
- it "returns the range" do
32
- matcher.inspect.should == "2..3"
33
- end
34
- end
35
- end
@@ -1,43 +0,0 @@
1
- require File.expand_path("#{File.dirname(__FILE__)}/../../spec_helper")
2
-
3
- describe Regexp do
4
- attr_reader :matcher
5
-
6
- before do
7
- @matcher = /foo/
8
- end
9
-
10
- describe "#wildcard_match?" do
11
- before do
12
- @matching_object = Object.new
13
- def @matching_object.quack
14
- end
15
- def @matching_object.waddle
16
- end
17
-
18
- @partial_matching_object = Object.new
19
- def @partial_matching_object.quack
20
- end
21
-
22
- @not_match_object = Object.new
23
- end
24
-
25
- context "when passed-in String matches the Regexp" do
26
- it "returns true" do
27
- matcher.should be_wildcard_match("foobarbaz")
28
- end
29
- end
30
-
31
- context "when passed-in String does not match the Regexp" do
32
- it "returns false" do
33
- matcher.should_not be_wildcard_match("no match here")
34
- end
35
- end
36
- end
37
-
38
- describe "#inspect" do
39
- it "returns the regexp" do
40
- matcher.inspect.should == "/foo/"
41
- end
42
- end
43
- end
data/spec/rr_spec.rb DELETED
@@ -1,28 +0,0 @@
1
- require "#{File.dirname(__FILE__)}/spec_helper"
2
-
3
- describe "RR" do
4
- before do
5
- Object.class_eval do
6
- def verify
7
- raise "Dont call me"
8
- end
9
- end
10
- end
11
-
12
- after do
13
- Object.class_eval do
14
- remove_method :verify
15
- end
16
- end
17
-
18
- it "has proxy methods for each method defined directly on Space" do
19
- space_instance_methods = RR::Space.instance_methods(false)
20
- space_instance_methods.should_not be_empty
21
-
22
- rr_instance_methods = RR.methods(false)
23
- space_instance_methods.each do |space_instance_method|
24
- rr_instance_methods.should include(space_instance_method)
25
- end
26
- RR.verify
27
- end
28
- end
@@ -1,17 +0,0 @@
1
- require "rubygems"
2
- require "spec"
3
-
4
- class RspecExampleSuite
5
- def run
6
- puts "Running Rspec Example Suite"
7
- dir = File.dirname(__FILE__)
8
- Dir["#{dir}/rr/rspec/**/*_spec.rb"].each do |file|
9
- # puts "require '#{file}'"
10
- require File.expand_path(file)
11
- end
12
- end
13
- end
14
-
15
- if $0 == __FILE__
16
- RspecExampleSuite.new.run
17
- end
data/spec/spec.opts DELETED
@@ -1,10 +0,0 @@
1
- --colour
2
- --format
3
- progress
4
- --loadby
5
- mtime
6
- --reverse
7
- --timeout
8
- 20
9
- --diff
10
- --backtrace
data/spec/spec_helper.rb DELETED
@@ -1,41 +0,0 @@
1
- dir = File.dirname(__FILE__)
2
- require "#{dir}/environment_fixture_setup"
3
- require "#{dir}/rr/expectations/times_called_expectation/times_called_expectation_helper"
4
- require "#{dir}/rr/adapters/rr_methods_spec_helper"
5
- ARGV.push("--format", "nested") unless ARGV.include?("--format")
6
- ARGV.push("-b")
7
-
8
- Spec::Runner.configure do |config|
9
- config.mock_with RR::Adapters::Rspec
10
- end
11
-
12
- describe "Swapped Space", :shared => true do
13
- attr_reader :original_space
14
- unless instance_methods.include?(:space)
15
- attr_reader :space
16
- end
17
-
18
- before do
19
- @original_space = RR::Space.instance
20
- RR::Space.instance = RR::Space.new
21
- @space = RR::Space.instance
22
- end
23
-
24
- after(:each) do
25
- RR::Space.instance = @original_space
26
- end
27
- end
28
-
29
- class Spec::ExampleGroup
30
- extend(Module.new do
31
- def macro(name, &implementation)
32
- (class << self; self; end).class_eval do
33
- define_method(name, &implementation)
34
- end
35
- end
36
- end)
37
-
38
- def eigen(object)
39
- class << object; self; end
40
- end
41
- end