rspec-mocks 3.0.0.beta1 → 3.0.0.beta2

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 (114) hide show
  1. data.tar.gz.sig +1 -1
  2. data/Changelog.md +95 -3
  3. data/README.md +27 -13
  4. data/features/README.md +15 -7
  5. data/features/argument_matchers/README.md +5 -5
  6. data/features/argument_matchers/explicit.feature +6 -6
  7. data/features/argument_matchers/general_matchers.feature +4 -4
  8. data/features/argument_matchers/type_matchers.feature +2 -2
  9. data/features/message_expectations/README.md +29 -27
  10. data/features/message_expectations/call_original.feature +0 -1
  11. data/features/message_expectations/message_chains_using_expect.feature +49 -0
  12. data/features/method_stubs/README.md +2 -1
  13. data/features/method_stubs/{any_instance.feature → allow_any_instance_of.feature} +12 -12
  14. data/features/method_stubs/{stub_chain.feature → receive_message_chain.feature} +3 -3
  15. data/features/method_stubs/to_ary.feature +1 -1
  16. data/features/mutating_constants/stub_defined_constant.feature +0 -1
  17. data/features/outside_rspec/standalone.feature +1 -1
  18. data/features/spies/spy_pure_mock_method.feature +1 -1
  19. data/features/test_frameworks/test_unit.feature +21 -10
  20. data/features/verifying_doubles/README.md +17 -0
  21. data/features/verifying_doubles/class_doubles.feature +1 -16
  22. data/features/verifying_doubles/dynamic_classes.feature +0 -1
  23. data/features/verifying_doubles/{introduction.feature → instance_doubles.feature} +41 -23
  24. data/features/verifying_doubles/partial_doubles.feature +2 -2
  25. data/lib/rspec/mocks.rb +69 -82
  26. data/lib/rspec/mocks/any_instance/expect_chain_chain.rb +35 -0
  27. data/lib/rspec/mocks/any_instance/expectation_chain.rb +1 -2
  28. data/lib/rspec/mocks/any_instance/recorder.rb +52 -18
  29. data/lib/rspec/mocks/any_instance/stub_chain.rb +1 -1
  30. data/lib/rspec/mocks/any_instance/stub_chain_chain.rb +4 -0
  31. data/lib/rspec/mocks/argument_list_matcher.rb +10 -44
  32. data/lib/rspec/mocks/argument_matchers.rb +132 -163
  33. data/lib/rspec/mocks/configuration.rb +28 -4
  34. data/lib/rspec/mocks/error_generator.rb +46 -13
  35. data/lib/rspec/mocks/example_methods.rb +13 -12
  36. data/lib/rspec/mocks/extensions/marshal.rb +1 -1
  37. data/lib/rspec/mocks/framework.rb +3 -4
  38. data/lib/rspec/mocks/instance_method_stasher.rb +2 -3
  39. data/lib/rspec/mocks/matchers/have_received.rb +8 -6
  40. data/lib/rspec/mocks/matchers/receive.rb +28 -20
  41. data/lib/rspec/mocks/matchers/receive_message_chain.rb +65 -0
  42. data/lib/rspec/mocks/matchers/receive_messages.rb +3 -2
  43. data/lib/rspec/mocks/message_chain.rb +91 -0
  44. data/lib/rspec/mocks/message_expectation.rb +86 -80
  45. data/lib/rspec/mocks/method_double.rb +2 -11
  46. data/lib/rspec/mocks/method_reference.rb +82 -23
  47. data/lib/rspec/mocks/method_signature_verifier.rb +207 -0
  48. data/lib/rspec/mocks/mutate_const.rb +34 -50
  49. data/lib/rspec/mocks/object_reference.rb +0 -1
  50. data/lib/rspec/mocks/proxy.rb +70 -13
  51. data/lib/rspec/mocks/ruby_features.rb +24 -0
  52. data/lib/rspec/mocks/space.rb +105 -31
  53. data/lib/rspec/mocks/standalone.rb +2 -2
  54. data/lib/rspec/mocks/syntax.rb +43 -8
  55. data/lib/rspec/mocks/targets.rb +16 -7
  56. data/lib/rspec/mocks/test_double.rb +41 -15
  57. data/lib/rspec/mocks/verifying_double.rb +51 -4
  58. data/lib/rspec/mocks/verifying_message_expecation.rb +12 -12
  59. data/lib/rspec/mocks/verifying_proxy.rb +32 -19
  60. data/lib/rspec/mocks/version.rb +1 -1
  61. data/spec/rspec/mocks/and_call_original_spec.rb +28 -7
  62. data/spec/rspec/mocks/and_return_spec.rb +23 -0
  63. data/spec/rspec/mocks/and_yield_spec.rb +1 -2
  64. data/spec/rspec/mocks/any_instance_spec.rb +33 -17
  65. data/spec/rspec/mocks/array_including_matcher_spec.rb +6 -6
  66. data/spec/rspec/mocks/before_all_spec.rb +132 -0
  67. data/spec/rspec/mocks/block_return_value_spec.rb +12 -1
  68. data/spec/rspec/mocks/combining_implementation_instructions_spec.rb +9 -11
  69. data/spec/rspec/mocks/configuration_spec.rb +14 -1
  70. data/spec/rspec/mocks/double_spec.rb +867 -24
  71. data/spec/rspec/mocks/example_methods_spec.rb +13 -0
  72. data/spec/rspec/mocks/extensions/marshal_spec.rb +17 -17
  73. data/spec/rspec/mocks/failing_argument_matchers_spec.rb +29 -1
  74. data/spec/rspec/mocks/hash_excluding_matcher_spec.rb +12 -12
  75. data/spec/rspec/mocks/hash_including_matcher_spec.rb +21 -17
  76. data/spec/rspec/mocks/instance_method_stasher_spec.rb +2 -3
  77. data/spec/rspec/mocks/matchers/have_received_spec.rb +7 -0
  78. data/spec/rspec/mocks/matchers/receive_message_chain_spec.rb +198 -0
  79. data/spec/rspec/mocks/matchers/receive_messages_spec.rb +2 -2
  80. data/spec/rspec/mocks/matchers/receive_spec.rb +19 -6
  81. data/spec/rspec/mocks/method_signature_verifier_spec.rb +272 -0
  82. data/spec/rspec/mocks/methods_spec.rb +0 -1
  83. data/spec/rspec/mocks/multiple_return_value_spec.rb +2 -2
  84. data/spec/rspec/mocks/mutate_const_spec.rb +24 -1
  85. data/spec/rspec/mocks/nil_expectation_warning_spec.rb +6 -22
  86. data/spec/rspec/mocks/null_object_mock_spec.rb +13 -7
  87. data/spec/rspec/mocks/options_hash_spec.rb +3 -3
  88. data/spec/rspec/mocks/{partial_mock_spec.rb → partial_double_spec.rb} +5 -2
  89. data/spec/rspec/mocks/{partial_mock_using_mocks_directly_spec.rb → partial_double_using_mocks_directly_spec.rb} +1 -1
  90. data/spec/rspec/mocks/passing_argument_matchers_spec.rb +18 -0
  91. data/spec/rspec/mocks/serialization_spec.rb +1 -0
  92. data/spec/rspec/mocks/space_spec.rb +218 -7
  93. data/spec/rspec/mocks/stub_chain_spec.rb +6 -0
  94. data/spec/rspec/mocks/stub_spec.rb +0 -6
  95. data/spec/rspec/mocks/syntax_spec.rb +19 -0
  96. data/spec/rspec/mocks/test_double_spec.rb +0 -1
  97. data/spec/rspec/mocks/verifying_double_spec.rb +281 -18
  98. data/spec/rspec/mocks/verifying_message_expecation_spec.rb +7 -6
  99. data/spec/rspec/mocks_spec.rb +168 -42
  100. data/spec/spec_helper.rb +34 -22
  101. metadata +94 -63
  102. metadata.gz.sig +0 -0
  103. checksums.yaml +0 -15
  104. checksums.yaml.gz.sig +0 -2
  105. data/features/outside_rspec/configuration.feature +0 -60
  106. data/lib/rspec/mocks/arity_calculator.rb +0 -66
  107. data/lib/rspec/mocks/errors.rb +0 -12
  108. data/lib/rspec/mocks/mock.rb +0 -7
  109. data/lib/rspec/mocks/proxy_for_nil.rb +0 -37
  110. data/lib/rspec/mocks/stub_chain.rb +0 -51
  111. data/spec/rspec/mocks/argument_expectation_spec.rb +0 -32
  112. data/spec/rspec/mocks/arity_calculator_spec.rb +0 -95
  113. data/spec/rspec/mocks/mock_space_spec.rb +0 -113
  114. data/spec/rspec/mocks/mock_spec.rb +0 -788
@@ -21,18 +21,19 @@ module RSpec
21
21
 
22
22
  describe 'when arity match fails' do
23
23
  it 'raises error' do
24
+ args = ["abc123", "xyz987"]
24
25
  subject.method_reference = InstanceMethodReference.new(string_module_reference, :replace)
25
- expect(error_generator).to receive(:raise_arity_error).
26
- with(instance_of(ArityCalculator), 2)
26
+ expect(error_generator).to receive(:raise_invalid_arguments_error).
27
+ with(instance_of(MethodSignatureVerifier))
27
28
 
28
- subject.with("abc123", "xyz987")
29
+ subject.with(*args)
29
30
  end
30
31
  end
31
32
 
32
33
  describe 'when called with arguments' do
33
34
  it 'matches arity against the number of arguments' do
34
35
  subject.method_reference = InstanceMethodReference.new(string_module_reference, :replace)
35
- expect(error_generator).not_to receive(:raise_arity_error)
36
+ expect(error_generator).not_to receive(:raise_invalid_arguments_error)
36
37
 
37
38
  subject.with("abc123")
38
39
  end
@@ -48,8 +49,8 @@ module RSpec
48
49
  describe 'when called with no arguments matcher' do
49
50
  it 'matches arity to 0' do
50
51
  subject.method_reference = InstanceMethodReference.new(string_module_reference, :replace)
51
- expect(error_generator).to receive(:raise_arity_error).
52
- with(instance_of(ArityCalculator), 0)
52
+ expect(error_generator).to receive(:raise_invalid_arguments_error).
53
+ with(instance_of(MethodSignatureVerifier))
53
54
 
54
55
  subject.with(no_args)
55
56
  end
@@ -1,51 +1,50 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe RSpec::Mocks do
4
- describe "::setup" do
5
- context "with an existing Mock::Space" do
6
- before do
7
- @orig_space = RSpec::Mocks::space
8
- end
9
-
10
- after do
11
- RSpec::Mocks::space = @orig_space
12
- end
13
-
14
- it "memoizes the space" do
15
- RSpec::Mocks::setup(Object.new)
16
- space = RSpec::Mocks::space
17
- RSpec::Mocks::setup(Object.new)
18
- expect(RSpec::Mocks::space).to equal(space)
19
- end
20
- end
21
-
22
- context "with no pre-existing Mock::Space" do
23
- it "initializes a Mock::Space" do
24
- RSpec::Mocks::space = nil
25
- RSpec::Mocks::setup(Object.new)
26
- expect(RSpec::Mocks::space).not_to be_nil
27
- end
28
- end
29
- end
30
-
31
- describe "::verify" do
4
+ describe ".verify" do
32
5
  it "delegates to the space" do
33
6
  foo = double
34
7
  foo.should_receive(:bar)
35
8
  expect do
36
- RSpec::Mocks::verify
9
+ RSpec::Mocks.verify
37
10
  end.to raise_error(RSpec::Mocks::MockExpectationError)
11
+
12
+ RSpec::Mocks.teardown # so the mocks aren't re-verified after this example
38
13
  end
39
14
  end
40
15
 
41
- describe "::teardown" do
42
- it "delegates to the space" do
43
- foo = double
44
- foo.should_receive(:bar)
45
- RSpec::Mocks::teardown
46
- expect do
47
- foo.bar
48
- end.to raise_error(/received unexpected message/)
16
+ describe ".teardown" do
17
+ it "resets method stubs" do
18
+ string = "foo"
19
+ allow(string).to receive(:bar)
20
+ RSpec::Mocks.teardown
21
+ expect { string.bar }.to raise_error(NoMethodError)
22
+ end
23
+
24
+ it "does not put rspec-mocks into an inconsistent state when called extra times" do
25
+ RSpec::Mocks.teardown
26
+ RSpec::Mocks.teardown
27
+ RSpec::Mocks.teardown
28
+
29
+ string = "foo"
30
+ expect { allow(string).to receive(:bar) }.to raise_error(RSpec::Mocks::OutsideOfExampleError)
31
+
32
+ RSpec::Mocks.setup
33
+ allow(string).to receive(:bar).and_return(:baz)
34
+ expect(string.bar).to eq(:baz)
35
+ end
36
+ end
37
+
38
+ describe ".setup" do
39
+ it 'starts a new space scope that is later removed by .teardown' do
40
+ old_space = RSpec::Mocks.space
41
+ RSpec::Mocks.setup
42
+
43
+ new_space = RSpec::Mocks.space
44
+ expect(new_space).not_to equal(old_space)
45
+
46
+ RSpec::Mocks.teardown
47
+ expect(RSpec::Mocks.space).to equal(old_space)
49
48
  end
50
49
  end
51
50
 
@@ -56,11 +55,138 @@ describe RSpec::Mocks do
56
55
  end
57
56
  end
58
57
 
59
- def file_contents_for(lib, filename)
60
- # http://rubular.com/r/HYpUMftlG2
61
- path = $LOAD_PATH.find { |p| p.match(/\/rspec-#{lib}(-[a-f0-9]+)?\/lib/) }
62
- file = File.join(path, filename)
63
- File.read(file)
58
+ describe ".with_temporary_scope" do
59
+ context "in a before(:all) with a stubbed double" do
60
+ before(:all) do
61
+ RSpec::Mocks.with_temporary_scope do
62
+ @calculator = double
63
+ allow(@calculator).to receive(:add) { |a, b| a + b }
64
+ @sum = @calculator.add(3, 4)
65
+ end
66
+
67
+ capture_error { @calculator.add(1, 10) }
68
+ end
69
+
70
+ it 'allows the stubbed double to be used' do
71
+ expect(@sum).to eq(7)
72
+ end
73
+
74
+ it 'does not allow the double to be used in the examples' do
75
+ expect {
76
+ @calculator.add(1, 2)
77
+ }.to raise_error(RSpec::Mocks::ExpiredTestDoubleError)
78
+ end
79
+
80
+ it 'does not allow the double to be used after the scope in before(:all)' do
81
+ expect(@error).to be_a(RSpec::Mocks::OutsideOfExampleError)
82
+ end
83
+ end
84
+
85
+ context "in a before(:all) with a stubbed const" do
86
+ before(:all) do
87
+ RSpec::Mocks.with_temporary_scope do
88
+ stub_const("ValueX", 3)
89
+ stub_const("ValueY", 4)
90
+ @sum = ValueX + ValueY
91
+ end
92
+
93
+ capture_error { ValueX + ValueY }
94
+ end
95
+
96
+ it 'allows the stubbed constants to be used' do
97
+ expect(@sum).to eq(7)
98
+ end
99
+
100
+ it 'does not allow the stubbed constants to be used in the examples' do
101
+ expect(defined?(ValueX)).to be_falsey
102
+ expect(defined?(ValueY)).to be_falsey
103
+ end
104
+
105
+ it 'does not allow the stubbed constants to be used after the scope in before(:all)' do
106
+ expect(@error).to be_a(NameError)
107
+ expect(@error.message).to include("ValueX")
108
+ end
109
+ end
110
+
111
+ context "in a before(:all) with a unmet mock expectation" do
112
+ before(:all) do
113
+ capture_error do
114
+ RSpec::Mocks.with_temporary_scope do
115
+ calculator = double
116
+ expect(calculator).to receive(:add)
117
+ end
118
+ end
119
+ end
120
+
121
+ it 'fails with a mock expectation error' do
122
+ expect(@error).to be_a(RSpec::Mocks::MockExpectationError)
123
+ end
124
+ end
125
+
126
+ context "in a before(:all) with an any_instance stub" do
127
+ before(:all) do
128
+ RSpec::Mocks.with_temporary_scope do
129
+ allow_any_instance_of(String).to receive(:sum_with) { |val, x| val + x }
130
+ @sum = "foo".sum_with("bar")
131
+ end
132
+
133
+ capture_error { "you".sum_with("me") }
134
+ end
135
+
136
+ it 'allows the stub to be used' do
137
+ expect(@sum).to eq("foobar")
138
+ end
139
+
140
+ it 'does not allow the double to be used in the examples' do
141
+ expect {
142
+ "foo".sum_with("baz")
143
+ }.to raise_error(NameError, /sum_with/)
144
+ end
145
+
146
+ it 'does not allow the double to be used after the scope in before(:all)' do
147
+ expect(@error).to be_a(NameError)
148
+ expect(@error.message).to include("sum_with")
149
+ end
150
+ end
151
+
152
+ it 'tears down even if an error occurs' do
153
+ foo = Object.new
154
+
155
+ expect {
156
+ RSpec::Mocks.with_temporary_scope do
157
+ allow(foo).to receive(:bar)
158
+ raise "boom"
159
+ end
160
+ }.to raise_error("boom")
161
+
162
+ expect(foo).not_to respond_to(:bar)
163
+ end
164
+
165
+ it 'does not verify if an error occurs before the block completes' do
166
+ expect {
167
+ RSpec::Mocks.with_temporary_scope do
168
+ foo = Object.new
169
+ expect(foo).to receive(:bar)
170
+ raise "boom"
171
+ end
172
+ }.to raise_error("boom") # rather than MockExpectationError
173
+ end
174
+
175
+ def capture_error
176
+ yield
177
+ rescue Exception => @error
178
+ end
64
179
  end
65
180
 
181
+ context "when there is a `let` declaration that overrides an argument matcher" do
182
+ let(:boolean) { :from_let }
183
+
184
+ before do
185
+ expect(RSpec::Mocks::ArgumentMatchers.method_defined?(:boolean)).to be true
186
+ end
187
+
188
+ it 'allows the `let` definition to win' do
189
+ expect(boolean).to eq(:from_let)
190
+ end
191
+ end
66
192
  end
@@ -1,18 +1,16 @@
1
+ require 'rspec/support/spec'
2
+ require 'rspec/mocks/ruby_features'
3
+
4
+ RSpec::Support::Spec.setup_simplecov do
5
+ minimum_coverage 96
6
+ end
7
+
1
8
  require 'yaml'
2
9
  begin
3
10
  require 'psych'
4
11
  rescue LoadError
5
12
  end
6
13
 
7
- begin
8
- require 'simplecov'
9
-
10
- SimpleCov.start do
11
- add_filter "bundle"
12
- end
13
- rescue LoadError
14
- end unless ENV['NO_COVERAGE'] || RUBY_VERSION < '1.9.3'
15
-
16
14
  RSpec::Matchers.define :include_method do |expected|
17
15
  match do |actual|
18
16
  actual.map { |m| m.to_s }.include?(expected.to_s)
@@ -21,23 +19,24 @@ end
21
19
 
22
20
  module VerifyAndResetHelpers
23
21
  def verify(object)
24
- RSpec::Mocks.proxy_for(object).verify
22
+ proxy = RSpec::Mocks.space.proxy_for(object)
23
+ proxy.verify
24
+ ensure
25
+ proxy.reset # so it doesn't fail the verify after the example completes
25
26
  end
26
27
 
27
28
  def reset(object)
28
- RSpec::Mocks.proxy_for(object).reset
29
+ RSpec::Mocks.space.proxy_for(object).reset
29
30
  end
30
- end
31
31
 
32
- module DeprecationHelpers
33
- def expect_deprecation_with_call_site(file, line)
34
- expect(RSpec.configuration.reporter).to receive(:deprecation) do |options|
35
- expect(options[:call_site]).to include([file, line].join(':'))
36
- end
32
+ def verify_all
33
+ RSpec::Mocks.space.verify_all
34
+ ensure
35
+ reset_all
37
36
  end
38
37
 
39
- def expect_warning_with_call_site(file, line)
40
- expect(Kernel).to receive(:warn).with(/Called from #{file}:#{line}/)
38
+ def reset_all
39
+ RSpec::Mocks.space.reset_all
41
40
  end
42
41
  end
43
42
 
@@ -48,12 +47,12 @@ module VerificationHelpers
48
47
  end
49
48
  end
50
49
 
50
+ require 'rspec/support/spec'
51
+
51
52
  RSpec.configure do |config|
52
53
  config.mock_with :rspec
53
54
  config.color_enabled = true
54
55
  config.order = :random
55
- config.run_all_when_everything_filtered = true
56
- config.filter_run_including :focus
57
56
 
58
57
  config.expect_with :rspec do |expectations|
59
58
  expectations.syntax = :expect
@@ -77,8 +76,9 @@ RSpec.configure do |config|
77
76
  end
78
77
 
79
78
  config.include VerifyAndResetHelpers
80
- config.include DeprecationHelpers
81
79
  config.include VerificationHelpers
80
+ config.extend RSpec::Mocks::RubyFeatures
81
+ config.include RSpec::Mocks::RubyFeatures
82
82
  end
83
83
 
84
84
  shared_context "with syntax" do |syntax|
@@ -107,3 +107,15 @@ shared_context "with isolated configuration" do
107
107
  end
108
108
  end
109
109
 
110
+ shared_context "with the default mocks syntax" do
111
+ orig_syntax = nil
112
+
113
+ before(:all) do
114
+ orig_syntax = RSpec::Mocks.configuration.syntax
115
+ RSpec::Mocks.configuration.reset_syntaxes_to_default
116
+ end
117
+
118
+ after(:all) do
119
+ RSpec::Mocks.configuration.syntax = orig_syntax
120
+ end
121
+ end
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-mocks
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0.beta1
4
+ version: 3.0.0.beta2
5
+ prerelease: 6
5
6
  platform: ruby
6
7
  authors:
7
8
  - Steven Baker
@@ -10,55 +11,73 @@ authors:
10
11
  autorequire:
11
12
  bindir: bin
12
13
  cert_chain:
13
- - !binary |-
14
- LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURqakNDQW5hZ0F3SUJB
15
- Z0lCQVRBTkJna3Foa2lHOXcwQkFRVUZBREJHTVJJd0VBWURWUVFEREFseWMz
16
- QmwKWXkxa1pYWXhHekFaQmdvSmtpYUprL0lzWkFFWkZndG5iMjluYkdWbmIz
17
- VndjekVUTUJFR0NnbVNKb21UOGl4awpBUmtXQTJOdmJUQWVGdzB4TXpFeE1E
18
- Y3hPVFF5TlRsYUZ3MHhOREV4TURjeE9UUXlOVGxhTUVZeEVqQVFCZ05WCkJB
19
- TU1DWEp6Y0dWakxXUmxkakViTUJrR0NnbVNKb21UOGl4a0FSa1dDMmR2YjJk
20
- c1pXZHZkWEJ6TVJNd0VRWUsKQ1pJbWlaUHlMR1FCR1JZRFkyOXRNSUlCSWpB
21
- TkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQQpuaENlWm91
22
- RExYV081NW5vK0VkWk5DdGpYamZKUTFYOVRiUGN2QkREMjlPeXBJVWNlMmgv
23
- VmRLWEIyZ0k3WkhzCkY1TmtQZ2dzbFRFckdGbVdBdElpdXI3dTk0M1JWcUhP
24
- c3lvSXN5MDY1RjlmQ3RyeWtrQSsyMmVsdlREaGE0SXoKUlVDdnVoUTNrbGF0
25
- WWs0akYrY0d0MWpOT05OVmRMT2l5MGJNeW52Y003aG9WUTJBb213R3MrY0VP
26
- V1EvNGRrRApKY05WM3FmekY1UUJjVEQyMzcyWE5NNTNiMjVuWVZRU1gyS0g1
27
- RkY3QmhsS3lvdjMzYk9tMmdBOU0rbVdJdWpXCnFna3l4VmxmcmxFK1pCZ1Yz
28
- d1huMUNvamcxTHBUcTM1eU9Bcmd3aW95cnd3bFpaSlI5am9OOXMvbkRrbGZy
29
- NUEKK2R5RVRqRmM2Y21FUFdacnQyY0pCUUlEQVFBQm80R0dNSUdETUFrR0Ex
30
- VWRFd1FDTUFBd0N3WURWUjBQQkFRRApBZ1N3TUIwR0ExVWREZ1FXQkJTVytX
31
- RDdobjFzd0oxQTdpOHRidUZldU5DSkNqQWtCZ05WSFJFRUhUQWJnUmx5CmMz
32
- QmxZeTFrWlhaQVoyOXZaMnhsWjI5MWNITXVZMjl0TUNRR0ExVWRFZ1FkTUJ1
33
- QkdYSnpjR1ZqTFdSbGRrQm4KYjI5bmJHVm5iM1Z3Y3k1amIyMHdEUVlKS29a
34
- SWh2Y05BUUVGQlFBRGdnRUJBSDI3akFaOHNEN3ZuWHVwajZZKwpCYUJkZkh0
35
- Q2tGYXNsTEowYUt1TURJVlh3WXVLZnFvVzE1Y1pQRExtU0lFQnVRRk0zbHc2
36
- ZC9oRUVMNFVvMmpaCkZ2dG1INU94aWZQRHpGeVV0Q0w0eXA2cWdOZS9YZjZz
37
- RHNSZzZGbUtjcGdxQ3dOT21zVmlhZjBMUFNVSC9HWVEKM1Rlb3o4UUNhRGJE
38
- N0FLc2ZmVDdlRHJuYkhuS3dlTzFYZGVtUkpDOTh1L3lZeG5Hek1TV0tFc24w
39
- OWV0QmxaOQo3SDY3azVaM3VmNmNmTFpnVG9XTDZ6U2h6WlkzTnVuNXI3M1lz
40
- TmYyL1FaT2U0VVplNHZmR3ZuNmJhdzUzeXM5CjF5SEMxQWNTWXB2aTJkQWJP
41
- aUhUNWlRRitrcm00d3NlOEtjdFhnVE5uak1zSEVvR0t1bEpTMi9zWmw5MGpj
42
- Q3oKbXVBPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
43
- date: 2013-11-08 00:00:00.000000000 Z
14
+ - ! '-----BEGIN CERTIFICATE-----
15
+
16
+ MIIDjjCCAnagAwIBAgIBATANBgkqhkiG9w0BAQUFADBGMRIwEAYDVQQDDAlyc3Bl
17
+
18
+ Yy1kZXYxGzAZBgoJkiaJk/IsZAEZFgtnb29nbGVnb3VwczETMBEGCgmSJomT8ixk
19
+
20
+ ARkWA2NvbTAeFw0xMzExMDcxOTQyNTlaFw0xNDExMDcxOTQyNTlaMEYxEjAQBgNV
21
+
22
+ BAMMCXJzcGVjLWRldjEbMBkGCgmSJomT8ixkARkWC2dvb2dsZWdvdXBzMRMwEQYK
23
+
24
+ CZImiZPyLGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
25
+
26
+ nhCeZouDLXWO55no+EdZNCtjXjfJQ1X9TbPcvBDD29OypIUce2h/VdKXB2gI7ZHs
27
+
28
+ F5NkPggslTErGFmWAtIiur7u943RVqHOsyoIsy065F9fCtrykkA+22elvTDha4Iz
29
+
30
+ RUCvuhQ3klatYk4jF+cGt1jNONNVdLOiy0bMynvcM7hoVQ2AomwGs+cEOWQ/4dkD
31
+
32
+ JcNV3qfzF5QBcTD2372XNM53b25nYVQSX2KH5FF7BhlKyov33bOm2gA9M+mWIujW
33
+
34
+ qgkyxVlfrlE+ZBgV3wXn1Cojg1LpTq35yOArgwioyrwwlZZJR9joN9s/nDklfr5A
35
+
36
+ +dyETjFc6cmEPWZrt2cJBQIDAQABo4GGMIGDMAkGA1UdEwQCMAAwCwYDVR0PBAQD
37
+
38
+ AgSwMB0GA1UdDgQWBBSW+WD7hn1swJ1A7i8tbuFeuNCJCjAkBgNVHREEHTAbgRly
39
+
40
+ c3BlYy1kZXZAZ29vZ2xlZ291cHMuY29tMCQGA1UdEgQdMBuBGXJzcGVjLWRldkBn
41
+
42
+ b29nbGVnb3Vwcy5jb20wDQYJKoZIhvcNAQEFBQADggEBAH27jAZ8sD7vnXupj6Y+
43
+
44
+ BaBdfHtCkFaslLJ0aKuMDIVXwYuKfqoW15cZPDLmSIEBuQFM3lw6d/hEEL4Uo2jZ
45
+
46
+ FvtmH5OxifPDzFyUtCL4yp6qgNe/Xf6sDsRg6FmKcpgqCwNOmsViaf0LPSUH/GYQ
47
+
48
+ 3Teoz8QCaDbD7AKsffT7eDrnbHnKweO1XdemRJC98u/yYxnGzMSWKEsn09etBlZ9
49
+
50
+ 7H67k5Z3uf6cfLZgToWL6zShzZY3Nun5r73YsNf2/QZOe4UZe4vfGvn6baw53ys9
51
+
52
+ 1yHC1AcSYpvi2dAbOiHT5iQF+krm4wse8KctXgTNnjMsHEoGKulJS2/sZl90jcCz
53
+
54
+ muA=
55
+
56
+ -----END CERTIFICATE-----
57
+
58
+ '
59
+ date: 2014-02-18 00:00:00.000000000 Z
44
60
  dependencies:
45
61
  - !ruby/object:Gem::Dependency
46
62
  name: rspec-support
47
63
  requirement: !ruby/object:Gem::Requirement
64
+ none: false
48
65
  requirements:
49
66
  - - '='
50
67
  - !ruby/object:Gem::Version
51
- version: 3.0.0.beta1
68
+ version: 3.0.0.beta2
52
69
  type: :runtime
53
70
  prerelease: false
54
71
  version_requirements: !ruby/object:Gem::Requirement
72
+ none: false
55
73
  requirements:
56
74
  - - '='
57
75
  - !ruby/object:Gem::Version
58
- version: 3.0.0.beta1
76
+ version: 3.0.0.beta2
59
77
  - !ruby/object:Gem::Dependency
60
78
  name: rake
61
79
  requirement: !ruby/object:Gem::Requirement
80
+ none: false
62
81
  requirements:
63
82
  - - ~>
64
83
  - !ruby/object:Gem::Version
@@ -66,6 +85,7 @@ dependencies:
66
85
  type: :development
67
86
  prerelease: false
68
87
  version_requirements: !ruby/object:Gem::Requirement
88
+ none: false
69
89
  requirements:
70
90
  - - ~>
71
91
  - !ruby/object:Gem::Version
@@ -73,6 +93,7 @@ dependencies:
73
93
  - !ruby/object:Gem::Dependency
74
94
  name: cucumber
75
95
  requirement: !ruby/object:Gem::Requirement
96
+ none: false
76
97
  requirements:
77
98
  - - ~>
78
99
  - !ruby/object:Gem::Version
@@ -80,6 +101,7 @@ dependencies:
80
101
  type: :development
81
102
  prerelease: false
82
103
  version_requirements: !ruby/object:Gem::Requirement
104
+ none: false
83
105
  requirements:
84
106
  - - ~>
85
107
  - !ruby/object:Gem::Version
@@ -87,6 +109,7 @@ dependencies:
87
109
  - !ruby/object:Gem::Dependency
88
110
  name: aruba
89
111
  requirement: !ruby/object:Gem::Requirement
112
+ none: false
90
113
  requirements:
91
114
  - - ~>
92
115
  - !ruby/object:Gem::Version
@@ -94,6 +117,7 @@ dependencies:
94
117
  type: :development
95
118
  prerelease: false
96
119
  version_requirements: !ruby/object:Gem::Requirement
120
+ none: false
97
121
  requirements:
98
122
  - - ~>
99
123
  - !ruby/object:Gem::Version
@@ -106,6 +130,7 @@ extra_rdoc_files: []
106
130
  files:
107
131
  - lib/rspec/mocks.rb
108
132
  - lib/rspec/mocks/any_instance/chain.rb
133
+ - lib/rspec/mocks/any_instance/expect_chain_chain.rb
109
134
  - lib/rspec/mocks/any_instance/expectation_chain.rb
110
135
  - lib/rspec/mocks/any_instance/message_chains.rb
111
136
  - lib/rspec/mocks/any_instance/recorder.rb
@@ -113,29 +138,28 @@ files:
113
138
  - lib/rspec/mocks/any_instance/stub_chain_chain.rb
114
139
  - lib/rspec/mocks/argument_list_matcher.rb
115
140
  - lib/rspec/mocks/argument_matchers.rb
116
- - lib/rspec/mocks/arity_calculator.rb
117
141
  - lib/rspec/mocks/configuration.rb
118
142
  - lib/rspec/mocks/error_generator.rb
119
- - lib/rspec/mocks/errors.rb
120
143
  - lib/rspec/mocks/example_methods.rb
121
144
  - lib/rspec/mocks/extensions/marshal.rb
122
145
  - lib/rspec/mocks/framework.rb
123
146
  - lib/rspec/mocks/instance_method_stasher.rb
124
147
  - lib/rspec/mocks/matchers/have_received.rb
125
148
  - lib/rspec/mocks/matchers/receive.rb
149
+ - lib/rspec/mocks/matchers/receive_message_chain.rb
126
150
  - lib/rspec/mocks/matchers/receive_messages.rb
151
+ - lib/rspec/mocks/message_chain.rb
127
152
  - lib/rspec/mocks/message_expectation.rb
128
153
  - lib/rspec/mocks/method_double.rb
129
154
  - lib/rspec/mocks/method_reference.rb
130
- - lib/rspec/mocks/mock.rb
155
+ - lib/rspec/mocks/method_signature_verifier.rb
131
156
  - lib/rspec/mocks/mutate_const.rb
132
157
  - lib/rspec/mocks/object_reference.rb
133
158
  - lib/rspec/mocks/order_group.rb
134
159
  - lib/rspec/mocks/proxy.rb
135
- - lib/rspec/mocks/proxy_for_nil.rb
160
+ - lib/rspec/mocks/ruby_features.rb
136
161
  - lib/rspec/mocks/space.rb
137
162
  - lib/rspec/mocks/standalone.rb
138
- - lib/rspec/mocks/stub_chain.rb
139
163
  - lib/rspec/mocks/syntax.rb
140
164
  - lib/rspec/mocks/targets.rb
141
165
  - lib/rspec/mocks/test_double.rb
@@ -162,21 +186,21 @@ files:
162
186
  - features/message_expectations/call_original.feature
163
187
  - features/message_expectations/expect_message_using_expect.feature
164
188
  - features/message_expectations/expect_message_using_should_receive.feature
189
+ - features/message_expectations/message_chains_using_expect.feature
165
190
  - features/message_expectations/receive_counts.feature
166
191
  - features/message_expectations/warn_when_expectation_is_set_on_nil.feature
167
192
  - features/method_stubs/README.md
168
- - features/method_stubs/any_instance.feature
193
+ - features/method_stubs/allow_any_instance_of.feature
169
194
  - features/method_stubs/as_null_object.feature
195
+ - features/method_stubs/receive_message_chain.feature
170
196
  - features/method_stubs/simple_return_value_with_allow.feature
171
197
  - features/method_stubs/simple_return_value_with_stub.feature
172
- - features/method_stubs/stub_chain.feature
173
198
  - features/method_stubs/stub_implementation.feature
174
199
  - features/method_stubs/to_ary.feature
175
200
  - features/mutating_constants/README.md
176
201
  - features/mutating_constants/hiding_defined_constant.feature
177
202
  - features/mutating_constants/stub_defined_constant.feature
178
203
  - features/mutating_constants/stub_undefined_constant.feature
179
- - features/outside_rspec/configuration.feature
180
204
  - features/outside_rspec/standalone.feature
181
205
  - features/spies/spy_partial_mock_method.feature
182
206
  - features/spies/spy_pure_mock_method.feature
@@ -185,37 +209,39 @@ files:
185
209
  - features/support/env.rb
186
210
  - features/support/rubinius.rb
187
211
  - features/test_frameworks/test_unit.feature
212
+ - features/verifying_doubles/README.md
188
213
  - features/verifying_doubles/class_doubles.feature
189
214
  - features/verifying_doubles/dynamic_classes.feature
190
- - features/verifying_doubles/introduction.feature
215
+ - features/verifying_doubles/instance_doubles.feature
191
216
  - features/verifying_doubles/object_doubles.feature
192
217
  - features/verifying_doubles/partial_doubles.feature
193
218
  - spec/rspec/mocks/and_call_original_spec.rb
219
+ - spec/rspec/mocks/and_return_spec.rb
194
220
  - spec/rspec/mocks/and_yield_spec.rb
195
221
  - spec/rspec/mocks/any_instance/message_chains_spec.rb
196
222
  - spec/rspec/mocks/any_instance_spec.rb
197
- - spec/rspec/mocks/argument_expectation_spec.rb
198
- - spec/rspec/mocks/arity_calculator_spec.rb
199
223
  - spec/rspec/mocks/array_including_matcher_spec.rb
200
224
  - spec/rspec/mocks/at_least_spec.rb
201
225
  - spec/rspec/mocks/at_most_spec.rb
226
+ - spec/rspec/mocks/before_all_spec.rb
202
227
  - spec/rspec/mocks/block_return_value_spec.rb
203
228
  - spec/rspec/mocks/combining_implementation_instructions_spec.rb
204
229
  - spec/rspec/mocks/configuration_spec.rb
205
230
  - spec/rspec/mocks/double_spec.rb
231
+ - spec/rspec/mocks/example_methods_spec.rb
206
232
  - spec/rspec/mocks/extensions/marshal_spec.rb
207
233
  - spec/rspec/mocks/failing_argument_matchers_spec.rb
208
234
  - spec/rspec/mocks/hash_excluding_matcher_spec.rb
209
235
  - spec/rspec/mocks/hash_including_matcher_spec.rb
210
236
  - spec/rspec/mocks/instance_method_stasher_spec.rb
211
237
  - spec/rspec/mocks/matchers/have_received_spec.rb
238
+ - spec/rspec/mocks/matchers/receive_message_chain_spec.rb
212
239
  - spec/rspec/mocks/matchers/receive_messages_spec.rb
213
240
  - spec/rspec/mocks/matchers/receive_spec.rb
241
+ - spec/rspec/mocks/method_signature_verifier_spec.rb
214
242
  - spec/rspec/mocks/methods_spec.rb
215
243
  - spec/rspec/mocks/mock_expectation_error_spec.rb
216
244
  - spec/rspec/mocks/mock_ordering_spec.rb
217
- - spec/rspec/mocks/mock_space_spec.rb
218
- - spec/rspec/mocks/mock_spec.rb
219
245
  - spec/rspec/mocks/multiple_return_value_spec.rb
220
246
  - spec/rspec/mocks/mutate_const_spec.rb
221
247
  - spec/rspec/mocks/nil_expectation_warning_spec.rb
@@ -223,8 +249,8 @@ files:
223
249
  - spec/rspec/mocks/once_counts_spec.rb
224
250
  - spec/rspec/mocks/options_hash_spec.rb
225
251
  - spec/rspec/mocks/order_group_spec.rb
226
- - spec/rspec/mocks/partial_mock_spec.rb
227
- - spec/rspec/mocks/partial_mock_using_mocks_directly_spec.rb
252
+ - spec/rspec/mocks/partial_double_spec.rb
253
+ - spec/rspec/mocks/partial_double_using_mocks_directly_spec.rb
228
254
  - spec/rspec/mocks/passing_argument_matchers_spec.rb
229
255
  - spec/rspec/mocks/precise_counts_spec.rb
230
256
  - spec/rspec/mocks/record_messages_spec.rb
@@ -236,6 +262,7 @@ files:
236
262
  - spec/rspec/mocks/stub_spec.rb
237
263
  - spec/rspec/mocks/stubbed_message_expectations_spec.rb
238
264
  - spec/rspec/mocks/syntax_agnostic_message_matchers_spec.rb
265
+ - spec/rspec/mocks/syntax_spec.rb
239
266
  - spec/rspec/mocks/test_double_spec.rb
240
267
  - spec/rspec/mocks/to_ary_spec.rb
241
268
  - spec/rspec/mocks/twice_counts_spec.rb
@@ -246,28 +273,29 @@ files:
246
273
  homepage: http://github.com/rspec/rspec-mocks
247
274
  licenses:
248
275
  - MIT
249
- metadata: {}
250
276
  post_install_message:
251
277
  rdoc_options:
252
278
  - --charset=UTF-8
253
279
  require_paths:
254
280
  - lib
255
281
  required_ruby_version: !ruby/object:Gem::Requirement
282
+ none: false
256
283
  requirements:
257
284
  - - ! '>='
258
285
  - !ruby/object:Gem::Version
259
286
  version: 1.8.7
260
287
  required_rubygems_version: !ruby/object:Gem::Requirement
288
+ none: false
261
289
  requirements:
262
290
  - - ! '>'
263
291
  - !ruby/object:Gem::Version
264
292
  version: 1.3.1
265
293
  requirements: []
266
294
  rubyforge_project: rspec
267
- rubygems_version: 2.0.7
295
+ rubygems_version: 1.8.23
268
296
  signing_key:
269
- specification_version: 4
270
- summary: rspec-mocks-3.0.0.beta1
297
+ specification_version: 3
298
+ summary: rspec-mocks-3.0.0.beta2
271
299
  test_files:
272
300
  - features/README.md
273
301
  - features/Scope.md
@@ -283,21 +311,21 @@ test_files:
283
311
  - features/message_expectations/call_original.feature
284
312
  - features/message_expectations/expect_message_using_expect.feature
285
313
  - features/message_expectations/expect_message_using_should_receive.feature
314
+ - features/message_expectations/message_chains_using_expect.feature
286
315
  - features/message_expectations/receive_counts.feature
287
316
  - features/message_expectations/warn_when_expectation_is_set_on_nil.feature
288
317
  - features/method_stubs/README.md
289
- - features/method_stubs/any_instance.feature
318
+ - features/method_stubs/allow_any_instance_of.feature
290
319
  - features/method_stubs/as_null_object.feature
320
+ - features/method_stubs/receive_message_chain.feature
291
321
  - features/method_stubs/simple_return_value_with_allow.feature
292
322
  - features/method_stubs/simple_return_value_with_stub.feature
293
- - features/method_stubs/stub_chain.feature
294
323
  - features/method_stubs/stub_implementation.feature
295
324
  - features/method_stubs/to_ary.feature
296
325
  - features/mutating_constants/README.md
297
326
  - features/mutating_constants/hiding_defined_constant.feature
298
327
  - features/mutating_constants/stub_defined_constant.feature
299
328
  - features/mutating_constants/stub_undefined_constant.feature
300
- - features/outside_rspec/configuration.feature
301
329
  - features/outside_rspec/standalone.feature
302
330
  - features/spies/spy_partial_mock_method.feature
303
331
  - features/spies/spy_pure_mock_method.feature
@@ -306,37 +334,39 @@ test_files:
306
334
  - features/support/env.rb
307
335
  - features/support/rubinius.rb
308
336
  - features/test_frameworks/test_unit.feature
337
+ - features/verifying_doubles/README.md
309
338
  - features/verifying_doubles/class_doubles.feature
310
339
  - features/verifying_doubles/dynamic_classes.feature
311
- - features/verifying_doubles/introduction.feature
340
+ - features/verifying_doubles/instance_doubles.feature
312
341
  - features/verifying_doubles/object_doubles.feature
313
342
  - features/verifying_doubles/partial_doubles.feature
314
343
  - spec/rspec/mocks/and_call_original_spec.rb
344
+ - spec/rspec/mocks/and_return_spec.rb
315
345
  - spec/rspec/mocks/and_yield_spec.rb
316
346
  - spec/rspec/mocks/any_instance/message_chains_spec.rb
317
347
  - spec/rspec/mocks/any_instance_spec.rb
318
- - spec/rspec/mocks/argument_expectation_spec.rb
319
- - spec/rspec/mocks/arity_calculator_spec.rb
320
348
  - spec/rspec/mocks/array_including_matcher_spec.rb
321
349
  - spec/rspec/mocks/at_least_spec.rb
322
350
  - spec/rspec/mocks/at_most_spec.rb
351
+ - spec/rspec/mocks/before_all_spec.rb
323
352
  - spec/rspec/mocks/block_return_value_spec.rb
324
353
  - spec/rspec/mocks/combining_implementation_instructions_spec.rb
325
354
  - spec/rspec/mocks/configuration_spec.rb
326
355
  - spec/rspec/mocks/double_spec.rb
356
+ - spec/rspec/mocks/example_methods_spec.rb
327
357
  - spec/rspec/mocks/extensions/marshal_spec.rb
328
358
  - spec/rspec/mocks/failing_argument_matchers_spec.rb
329
359
  - spec/rspec/mocks/hash_excluding_matcher_spec.rb
330
360
  - spec/rspec/mocks/hash_including_matcher_spec.rb
331
361
  - spec/rspec/mocks/instance_method_stasher_spec.rb
332
362
  - spec/rspec/mocks/matchers/have_received_spec.rb
363
+ - spec/rspec/mocks/matchers/receive_message_chain_spec.rb
333
364
  - spec/rspec/mocks/matchers/receive_messages_spec.rb
334
365
  - spec/rspec/mocks/matchers/receive_spec.rb
366
+ - spec/rspec/mocks/method_signature_verifier_spec.rb
335
367
  - spec/rspec/mocks/methods_spec.rb
336
368
  - spec/rspec/mocks/mock_expectation_error_spec.rb
337
369
  - spec/rspec/mocks/mock_ordering_spec.rb
338
- - spec/rspec/mocks/mock_space_spec.rb
339
- - spec/rspec/mocks/mock_spec.rb
340
370
  - spec/rspec/mocks/multiple_return_value_spec.rb
341
371
  - spec/rspec/mocks/mutate_const_spec.rb
342
372
  - spec/rspec/mocks/nil_expectation_warning_spec.rb
@@ -344,8 +374,8 @@ test_files:
344
374
  - spec/rspec/mocks/once_counts_spec.rb
345
375
  - spec/rspec/mocks/options_hash_spec.rb
346
376
  - spec/rspec/mocks/order_group_spec.rb
347
- - spec/rspec/mocks/partial_mock_spec.rb
348
- - spec/rspec/mocks/partial_mock_using_mocks_directly_spec.rb
377
+ - spec/rspec/mocks/partial_double_spec.rb
378
+ - spec/rspec/mocks/partial_double_using_mocks_directly_spec.rb
349
379
  - spec/rspec/mocks/passing_argument_matchers_spec.rb
350
380
  - spec/rspec/mocks/precise_counts_spec.rb
351
381
  - spec/rspec/mocks/record_messages_spec.rb
@@ -357,6 +387,7 @@ test_files:
357
387
  - spec/rspec/mocks/stub_spec.rb
358
388
  - spec/rspec/mocks/stubbed_message_expectations_spec.rb
359
389
  - spec/rspec/mocks/syntax_agnostic_message_matchers_spec.rb
390
+ - spec/rspec/mocks/syntax_spec.rb
360
391
  - spec/rspec/mocks/test_double_spec.rb
361
392
  - spec/rspec/mocks/to_ary_spec.rb
362
393
  - spec/rspec/mocks/twice_counts_spec.rb