rspec-mocks 3.0.4 → 3.12.6

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 (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