rspec-mocks 3.0.4 → 3.12.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +5 -5
  2. checksums.yaml.gz.sig +0 -0
  3. data/.document +1 -1
  4. data/.yardopts +1 -1
  5. data/Changelog.md +512 -2
  6. data/{License.txt → LICENSE.md} +5 -4
  7. data/README.md +113 -30
  8. data/lib/rspec/mocks/any_instance/chain.rb +5 -3
  9. data/lib/rspec/mocks/any_instance/error_generator.rb +31 -0
  10. data/lib/rspec/mocks/any_instance/expect_chain_chain.rb +1 -5
  11. data/lib/rspec/mocks/any_instance/expectation_chain.rb +9 -8
  12. data/lib/rspec/mocks/any_instance/message_chains.rb +7 -8
  13. data/lib/rspec/mocks/any_instance/proxy.rb +14 -5
  14. data/lib/rspec/mocks/any_instance/recorder.rb +61 -31
  15. data/lib/rspec/mocks/any_instance/stub_chain.rb +15 -11
  16. data/lib/rspec/mocks/any_instance/stub_chain_chain.rb +1 -5
  17. data/lib/rspec/mocks/any_instance.rb +1 -0
  18. data/lib/rspec/mocks/argument_list_matcher.rb +55 -10
  19. data/lib/rspec/mocks/argument_matchers.rb +88 -30
  20. data/lib/rspec/mocks/configuration.rb +61 -13
  21. data/lib/rspec/mocks/error_generator.rb +250 -107
  22. data/lib/rspec/mocks/example_methods.rb +151 -28
  23. data/lib/rspec/mocks/instance_method_stasher.rb +17 -6
  24. data/lib/rspec/mocks/matchers/have_received.rb +50 -20
  25. data/lib/rspec/mocks/matchers/receive.rb +39 -11
  26. data/lib/rspec/mocks/matchers/receive_message_chain.rb +22 -7
  27. data/lib/rspec/mocks/matchers/receive_messages.rb +12 -7
  28. data/lib/rspec/mocks/message_chain.rb +3 -7
  29. data/lib/rspec/mocks/message_expectation.rb +466 -307
  30. data/lib/rspec/mocks/method_double.rb +88 -29
  31. data/lib/rspec/mocks/method_reference.rb +85 -25
  32. data/lib/rspec/mocks/minitest_integration.rb +68 -0
  33. data/lib/rspec/mocks/mutate_const.rb +50 -109
  34. data/lib/rspec/mocks/object_reference.rb +89 -32
  35. data/lib/rspec/mocks/order_group.rb +4 -5
  36. data/lib/rspec/mocks/proxy.rb +156 -60
  37. data/lib/rspec/mocks/space.rb +52 -35
  38. data/lib/rspec/mocks/standalone.rb +1 -1
  39. data/lib/rspec/mocks/syntax.rb +26 -30
  40. data/lib/rspec/mocks/targets.rb +55 -28
  41. data/lib/rspec/mocks/test_double.rb +43 -7
  42. data/lib/rspec/mocks/verifying_double.rb +27 -33
  43. data/lib/rspec/mocks/{verifying_message_expecation.rb → verifying_message_expectation.rb} +11 -16
  44. data/lib/rspec/mocks/verifying_proxy.rb +77 -26
  45. data/lib/rspec/mocks/version.rb +1 -1
  46. data/lib/rspec/mocks.rb +8 -1
  47. data.tar.gz.sig +0 -0
  48. metadata +80 -43
  49. metadata.gz.sig +0 -0
@@ -3,41 +3,46 @@ module RSpec
3
3
  module Matchers
4
4
  # @private
5
5
  class ReceiveMessages
6
+ include Matcher
6
7
 
7
8
  def initialize(message_return_value_hash)
8
9
  @message_return_value_hash = message_return_value_hash
9
10
  @backtrace_line = CallerFilter.first_non_rspec_line
10
11
  end
11
12
 
12
- def name
13
+ def matcher_name
13
14
  "receive_messages"
14
15
  end
15
16
 
17
+ def description
18
+ "receive messages: #{@message_return_value_hash.inspect}"
19
+ end
20
+
16
21
  def setup_expectation(subject)
17
22
  warn_about_block if block_given?
18
- each_message_on( proxy_on(subject) ) do |host, message, return_value|
23
+ each_message_on(proxy_on(subject)) do |host, message, return_value|
19
24
  host.add_simple_expectation(message, return_value, @backtrace_line)
20
25
  end
21
26
  end
22
27
  alias matches? setup_expectation
23
28
 
24
- def setup_negative_expectation(subject)
29
+ def setup_negative_expectation(_subject)
25
30
  raise NegationUnsupportedError,
26
- "`expect(...).to_not receive_messages` is not supported since it " +
27
- "doesn't really make sense. What would it even mean?"
31
+ "`expect(...).to_not receive_messages` is not supported since it " \
32
+ "doesn't really make sense. What would it even mean?"
28
33
  end
29
34
  alias does_not_match? setup_negative_expectation
30
35
 
31
36
  def setup_allowance(subject)
32
37
  warn_about_block if block_given?
33
- each_message_on( proxy_on(subject) ) do |host, message, return_value|
38
+ each_message_on(proxy_on(subject)) do |host, message, return_value|
34
39
  host.add_simple_stub(message, return_value)
35
40
  end
36
41
  end
37
42
 
38
43
  def setup_any_instance_expectation(subject)
39
44
  warn_about_block if block_given?
40
- each_message_on( any_instance_of(subject) ) do |host, message, return_value|
45
+ each_message_on(any_instance_of(subject)) do |host, message, return_value|
41
46
  host.should_receive(message).and_return(return_value)
42
47
  end
43
48
  end
@@ -12,10 +12,10 @@ module RSpec
12
12
  # @api private
13
13
  def setup_chain
14
14
  if chain.length > 1
15
- if matching_stub = find_matching_stub
15
+ if (matching_stub = find_matching_stub)
16
16
  chain.shift
17
17
  chain_on(matching_stub.invoke(nil), *chain, &@block)
18
- elsif matching_expectation = find_matching_expectation
18
+ elsif (matching_expectation = find_matching_expectation)
19
19
  chain.shift
20
20
  chain_on(matching_expectation.invoke_without_incrementing_received_count(nil), *chain, &@block)
21
21
  else
@@ -30,10 +30,6 @@ module RSpec
30
30
 
31
31
  private
32
32
 
33
- def expectation(object, message, &return_block)
34
- raise NotImplementedError.new
35
- end
36
-
37
33
  def chain_on(object, *chain, &block)
38
34
  initialize(object, *chain, &block)
39
35
  setup_chain
@@ -42,7 +38,7 @@ module RSpec
42
38
  def format_chain(*chain, &blk)
43
39
  if Hash === chain.last
44
40
  hash = chain.pop
45
- hash.each do |k,v|
41
+ hash.each do |k, v|
46
42
  chain << k
47
43
  blk = Proc.new { v }
48
44
  end