File: expect_chain_chain.rb

package info (click to toggle)
ruby-rspec 3.5.0c3e0m0s0-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 6,312 kB
  • ctags: 4,788
  • sloc: ruby: 62,572; sh: 785; makefile: 100
file content (35 lines) | stat: -rw-r--r-- 788 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
module RSpec
  module Mocks
    module AnyInstance
      # @private
      class ExpectChainChain < StubChain
        def initialize(*args)
          super
          @expectation_fulfilled = false
        end

        def expectation_fulfilled?
          @expectation_fulfilled
        end

        def playback!(instance)
          super.tap { @expectation_fulfilled = true }
        end

      private

        def create_message_expectation_on(instance)
          ::RSpec::Mocks::ExpectChain.expect_chain_on(instance, *@expectation_args, &@expectation_block)
        end

        def invocation_order
          @invocation_order ||= {
            :and_return => [nil],
            :and_raise => [nil],
            :and_yield => [nil]
          }
        end
      end
    end
  end
end