rr 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,3 +1,7 @@
1
+ * 0.2.4
2
+ - Space#doubles key is now the object id
3
+ - Fixed [#12402] Stubbing return value of probes fails after calling the stubbed method two times
4
+
1
5
  * 0.2.3
2
6
  - Added InstanceMethods#rr_verify and InstanceMethods#rr_reset
3
7
 
data/Rakefile CHANGED
@@ -21,7 +21,7 @@ def run_suite
21
21
  end
22
22
 
23
23
  PKG_NAME = "rr"
24
- PKG_VERSION = "0.2.3"
24
+ PKG_VERSION = "0.2.4"
25
25
  PKG_FILES = FileList[
26
26
  '[A-Z]*',
27
27
  '*.rb',
@@ -57,4 +57,4 @@ end
57
57
  Rake::GemPackageTask.new(spec) do |pkg|
58
58
  pkg.need_zip = true
59
59
  pkg.need_tar = true
60
- end
60
+ end
@@ -151,6 +151,26 @@ describe Space, "#create_scenario" do
151
151
  end
152
152
  end
153
153
 
154
+ describe Space, "#create_double" do
155
+ it_should_behave_like "RR::Space"
156
+
157
+ before do
158
+ @space = Space.new
159
+ end
160
+
161
+ it "creates a new double when existing object == but not === with the same method name" do
162
+ object1 = []
163
+ object2 = []
164
+ (object1 === object2).should be_true
165
+ object1.__id__.should_not == object2.__id__
166
+
167
+ double1 = @space.create_double(object1, :foobar)
168
+ double2 = @space.create_double(object2, :foobar)
169
+
170
+ double1.should_not == double2
171
+ end
172
+ end
173
+
154
174
  describe Space, "#create_double when double does not exist" do
155
175
  it_should_behave_like "RR::Space"
156
176
 
data/lib/rr.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require "rr/space"
2
2
  require "rr/double"
3
+ require "rr/hash_with_object_id_key"
3
4
 
4
5
  require "rr/creator"
5
6
  require "rr/mock_creator"
@@ -0,0 +1,32 @@
1
+ module RR
2
+ class HashWithObjectIdKey < ::Hash
3
+ alias_method :get_with_object_id, :[]
4
+ def [](key)
5
+ super(key.__id__)
6
+ end
7
+
8
+ alias_method :set_with_object_id, :[]=
9
+ def []=(key, value)
10
+ super(key.__id__, value)
11
+ end
12
+
13
+ def each
14
+ super do |object_id, value|
15
+ yield ObjectSpace._id2ref(object_id), value
16
+ end
17
+ end
18
+
19
+ def delete(key)
20
+ super(key.__id__)
21
+ end
22
+
23
+ def keys
24
+ raw_keys = super
25
+ raw_keys.collect {|raw_key| ObjectSpace._id2ref(raw_key)}
26
+ end
27
+
28
+ def include?(key)
29
+ super(key.__id__)
30
+ end
31
+ end
32
+ end
@@ -18,7 +18,9 @@ module RR
18
18
  attr_reader :doubles, :ordered_scenarios
19
19
  attr_accessor :trim_backtrace
20
20
  def initialize
21
- @doubles = Hash.new {|hash, subject_object| hash[subject_object] = Hash.new}
21
+ @doubles = HashWithObjectIdKey.new do |hash, subject_object|
22
+ hash.set_with_object_id(subject_object, HashWithObjectIdKey.new)
23
+ end
22
24
  @ordered_scenarios = []
23
25
  @trim_backtrace = false
24
26
  end
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.2
2
+ rubygems_version: 0.9.3
3
3
  specification_version: 1
4
4
  name: rr
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.2.3
7
- date: 2007-07-18 00:00:00 -07:00
6
+ version: 0.2.4
7
+ date: 2007-07-19 00:00:00 -07:00
8
8
  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
9
9
  require_paths:
10
10
  - lib
@@ -29,107 +29,108 @@ post_install_message:
29
29
  authors:
30
30
  - Brian Takita
31
31
  files:
32
- - README
33
32
  - Rakefile
34
33
  - CHANGES
35
- - lib/rr/extensions/instance_methods.rb
36
- - lib/rr/adapters/test_unit.rb
37
- - lib/rr/adapters/rspec.rb
34
+ - README
35
+ - lib/rr.rb
36
+ - lib/rr/mock_probe_creator.rb
37
+ - lib/rr/scenario.rb
38
+ - lib/rr/hash_with_object_id_key.rb
39
+ - lib/rr/creator.rb
40
+ - lib/rr/stub_probe_creator.rb
41
+ - lib/rr/scenario_matches.rb
42
+ - lib/rr/stub_creator.rb
43
+ - lib/rr/space.rb
44
+ - lib/rr/double.rb
45
+ - lib/rr/do_not_allow_creator.rb
46
+ - lib/rr/mock_creator.rb
47
+ - lib/rr/times_called_matchers/any_times_matcher.rb
48
+ - lib/rr/times_called_matchers/at_most_matcher.rb
49
+ - lib/rr/times_called_matchers/times_called_matcher.rb
50
+ - lib/rr/times_called_matchers/at_least_matcher.rb
51
+ - lib/rr/times_called_matchers/proc_matcher.rb
52
+ - lib/rr/times_called_matchers/integer_matcher.rb
53
+ - lib/rr/times_called_matchers/non_terminal.rb
54
+ - lib/rr/times_called_matchers/terminal.rb
55
+ - lib/rr/times_called_matchers/range_matcher.rb
38
56
  - lib/rr/expectations/argument_equality_expectation.rb
39
57
  - lib/rr/expectations/times_called_expectation.rb
40
58
  - lib/rr/expectations/any_argument_expectation.rb
41
- - lib/rr/scenario.rb
42
- - lib/rr/stub_creator.rb
43
- - lib/rr/errors/times_called_error.rb
44
59
  - lib/rr/errors/scenario_not_found_error.rb
45
- - lib/rr/errors/scenario_order_error.rb
46
60
  - lib/rr/errors/argument_equality_error.rb
61
+ - lib/rr/errors/scenario_order_error.rb
47
62
  - lib/rr/errors/rr_error.rb
48
- - lib/rr/do_not_allow_creator.rb
49
- - lib/rr/mock_creator.rb
50
- - lib/rr/double.rb
51
- - lib/rr/space.rb
52
- - lib/rr/creator.rb
63
+ - lib/rr/errors/times_called_error.rb
64
+ - lib/rr/adapters/test_unit.rb
65
+ - lib/rr/adapters/rspec.rb
53
66
  - lib/rr/wildcard_matchers/boolean.rb
54
- - lib/rr/wildcard_matchers/anything.rb
55
- - lib/rr/wildcard_matchers/numeric.rb
56
67
  - lib/rr/wildcard_matchers/duck_type.rb
68
+ - lib/rr/wildcard_matchers/range.rb
57
69
  - lib/rr/wildcard_matchers/regexp.rb
70
+ - lib/rr/wildcard_matchers/numeric.rb
58
71
  - lib/rr/wildcard_matchers/is_a.rb
59
- - lib/rr/wildcard_matchers/range.rb
60
- - lib/rr/times_called_matchers/at_least_matcher.rb
61
- - lib/rr/times_called_matchers/range_matcher.rb
62
- - lib/rr/times_called_matchers/integer_matcher.rb
63
- - lib/rr/times_called_matchers/non_terminal.rb
64
- - lib/rr/times_called_matchers/proc_matcher.rb
65
- - lib/rr/times_called_matchers/times_called_matcher.rb
66
- - lib/rr/times_called_matchers/at_most_matcher.rb
67
- - lib/rr/times_called_matchers/any_times_matcher.rb
68
- - lib/rr/times_called_matchers/terminal.rb
69
- - lib/rr/stub_probe_creator.rb
70
- - lib/rr/mock_probe_creator.rb
71
- - lib/rr/scenario_matches.rb
72
- - lib/rr.rb
73
- - examples/rr/extensions/instance_methods_creator_example.rb
74
- - examples/rr/extensions/instance_methods_example_helper.rb
75
- - examples/rr/extensions/instance_methods_times_matcher_example.rb
76
- - examples/rr/extensions/instance_methods_argument_matcher_example.rb
77
- - examples/rr/extensions/instance_methods_space_example.rb
72
+ - lib/rr/wildcard_matchers/anything.rb
73
+ - lib/rr/extensions/instance_methods.rb
74
+ - examples/environment_fixture_setup.rb
75
+ - examples/rspec_example_suite.rb
76
+ - examples/example_suite.rb
77
+ - examples/example_helper.rb
78
+ - examples/test_unit_example_suite.rb
79
+ - examples/high_level_example.rb
80
+ - examples/rr/stub_probe_creator_example.rb
81
+ - examples/rr/mock_creator_example.rb
82
+ - examples/rr/stub_creator_example.rb
83
+ - examples/rr/scenario_example.rb
84
+ - examples/rr/do_not_allow_creator_example.rb
85
+ - examples/rr/mock_probe_creator_example.rb
86
+ - examples/rr/rspec/rspec_backtrace_tweaking_example.rb
87
+ - examples/rr/rspec/rspec_adapter_example.rb
88
+ - examples/rr/rspec/rspec_usage_example.rb
89
+ - examples/rr/times_called_matchers/at_most_matcher_example.rb
90
+ - examples/rr/times_called_matchers/at_least_matcher_example.rb
91
+ - examples/rr/times_called_matchers/times_called_matcher_example.rb
92
+ - examples/rr/times_called_matchers/range_matcher_example.rb
93
+ - examples/rr/times_called_matchers/proc_matcher_example.rb
94
+ - examples/rr/times_called_matchers/any_times_matcher_example.rb
95
+ - examples/rr/times_called_matchers/integer_matcher_example.rb
96
+ - examples/rr/space/space_verify_example.rb
97
+ - examples/rr/space/space_reset_example.rb
98
+ - examples/rr/space/space_create_example.rb
99
+ - examples/rr/space/space_helper.rb
100
+ - examples/rr/space/space_example.rb
101
+ - examples/rr/space/space_register_example.rb
102
+ - examples/rr/expectations/is_a_argument_equality_expectation_example.rb
103
+ - examples/rr/expectations/any_argument_expectation_example.rb
104
+ - examples/rr/expectations/regexp_argument_equality_expectation_example.rb
105
+ - examples/rr/expectations/boolean_argument_equality_expectation_example.rb
106
+ - examples/rr/expectations/duck_type_argument_equality_expectation_example.rb
107
+ - examples/rr/expectations/numeric_argument_equality_expectation_example.rb
108
+ - examples/rr/expectations/range_argument_equality_expectation_example.rb
78
109
  - examples/rr/expectations/argument_equality_expectation_example.rb
79
110
  - examples/rr/expectations/anything_argument_equality_expectation_example.rb
80
- - examples/rr/expectations/times_called_expectation/times_called_expectation_at_least_example.rb
81
- - examples/rr/expectations/times_called_expectation/times_called_expectation_range_example.rb
82
111
  - examples/rr/expectations/times_called_expectation/times_called_expectation_integer_example.rb
83
- - examples/rr/expectations/times_called_expectation/times_called_expectation_example.rb
84
- - examples/rr/expectations/times_called_expectation/times_called_expectation_proc_example.rb
112
+ - examples/rr/expectations/times_called_expectation/times_called_expectation_any_times_example.rb
85
113
  - examples/rr/expectations/times_called_expectation/times_called_expectation_helper.rb
114
+ - examples/rr/expectations/times_called_expectation/times_called_expectation_proc_example.rb
115
+ - examples/rr/expectations/times_called_expectation/times_called_expectation_example.rb
116
+ - examples/rr/expectations/times_called_expectation/times_called_expectation_at_least_example.rb
86
117
  - examples/rr/expectations/times_called_expectation/times_called_expectation_at_most_example.rb
87
- - examples/rr/expectations/times_called_expectation/times_called_expectation_any_times_example.rb
88
- - examples/rr/expectations/any_argument_expectation_example.rb
89
- - examples/rr/expectations/is_a_argument_equality_expectation_example.rb
90
- - examples/rr/expectations/numeric_argument_equality_expectation_example.rb
91
- - examples/rr/expectations/boolean_argument_equality_expectation_example.rb
92
- - examples/rr/expectations/duck_type_argument_equality_expectation_example.rb
93
- - examples/rr/expectations/regexp_argument_equality_expectation_example.rb
94
- - examples/rr/expectations/range_argument_equality_expectation_example.rb
95
- - examples/rr/rspec/rspec_adapter_example.rb
96
- - examples/rr/rspec/rspec_usage_example.rb
97
- - examples/rr/rspec/rspec_backtrace_tweaking_example.rb
98
- - examples/rr/test_unit/test_helper.rb
99
- - examples/rr/test_unit/test_unit_integration_test.rb
100
- - examples/rr/test_unit/test_unit_backtrace_test.rb
101
- - examples/rr/scenario_example.rb
118
+ - examples/rr/expectations/times_called_expectation/times_called_expectation_range_example.rb
119
+ - examples/rr/errors/rr_error_example.rb
120
+ - examples/rr/double/double_reset_example.rb
102
121
  - examples/rr/double/double_bind_example.rb
103
- - examples/rr/double/double_dispatching_example.rb
122
+ - examples/rr/double/double_register_scenario_example.rb
104
123
  - examples/rr/double/double_example.rb
105
- - examples/rr/double/double_reset_example.rb
124
+ - examples/rr/double/double_dispatching_example.rb
106
125
  - examples/rr/double/double_verify_example.rb
107
- - examples/rr/double/double_register_scenario_example.rb
108
- - examples/rr/space/space_example.rb
109
- - examples/rr/space/space_reset_example.rb
110
- - examples/rr/space/space_create_example.rb
111
- - examples/rr/space/space_helper.rb
112
- - examples/rr/space/space_register_example.rb
113
- - examples/rr/space/space_verify_example.rb
114
- - examples/rr/mock_creator_example.rb
115
- - examples/rr/times_called_matchers/proc_matcher_example.rb
116
- - examples/rr/times_called_matchers/times_called_matcher_example.rb
117
- - examples/rr/times_called_matchers/at_most_matcher_example.rb
118
- - examples/rr/times_called_matchers/any_times_matcher_example.rb
119
- - examples/rr/times_called_matchers/at_least_matcher_example.rb
120
- - examples/rr/times_called_matchers/range_matcher_example.rb
121
- - examples/rr/times_called_matchers/integer_matcher_example.rb
122
- - examples/rr/stub_probe_creator_example.rb
123
- - examples/rr/stub_creator_example.rb
124
- - examples/rr/do_not_allow_creator_example.rb
125
- - examples/rr/mock_probe_creator_example.rb
126
- - examples/rr/errors/rr_error_example.rb
127
- - examples/rspec_example_suite.rb
128
- - examples/high_level_example.rb
129
- - examples/test_unit_example_suite.rb
130
- - examples/example_suite.rb
131
- - examples/environment_fixture_setup.rb
132
- - examples/example_helper.rb
126
+ - examples/rr/test_unit/test_unit_backtrace_test.rb
127
+ - examples/rr/test_unit/test_helper.rb
128
+ - examples/rr/test_unit/test_unit_integration_test.rb
129
+ - examples/rr/extensions/instance_methods_argument_matcher_example.rb
130
+ - examples/rr/extensions/instance_methods_times_matcher_example.rb
131
+ - examples/rr/extensions/instance_methods_creator_example.rb
132
+ - examples/rr/extensions/instance_methods_space_example.rb
133
+ - examples/rr/extensions/instance_methods_example_helper.rb
133
134
  test_files: []
134
135
 
135
136
  rdoc_options: