Class: FlexMock::RSpecMatchers::HaveReceived

Inherits:
Object
  • Object
show all
Includes:
SpyDescribers
Defined in:
lib/flexmock/rspec_spy_matcher.rb

Instance Method Summary collapse

Methods included from SpyDescribers

#describe_spy_expectation, #describe_spy_negative_expectation, #spy_description

Constructor Details

#initialize(method_name) ⇒ HaveReceived

Returns a new instance of HaveReceived.



9
10
11
12
13
14
15
16
# File 'lib/flexmock/rspec_spy_matcher.rb', line 9

def initialize(method_name)
  @method_name = method_name
  @args = nil
  @block = nil
  @times = nil
  @needs_block = nil
  @additional_validations = []
end

Instance Method Details

#and(&block) ⇒ Object



73
74
75
76
# File 'lib/flexmock/rspec_spy_matcher.rb', line 73

def and(&block)
  @additional_validations << block
  self
end

#construct_optionsObject



78
79
80
81
82
83
84
85
# File 'lib/flexmock/rspec_spy_matcher.rb', line 78

def construct_options
  {
    :times      => @times,
    :with_block => @needs_block,
    :on_count   => @on_count,
    :and        => @additional_validations,
  }
end

#descriptionObject



32
33
34
# File 'lib/flexmock/rspec_spy_matcher.rb', line 32

def description
  spy_description(@spy, @method_name, @args, @options)
end

#failure_message_for_shouldObject



24
25
26
# File 'lib/flexmock/rspec_spy_matcher.rb', line 24

def failure_message_for_should
  describe_spy_expectation(@spy, @method_name, @args, @options)
end

#failure_message_for_should_notObject



28
29
30
# File 'lib/flexmock/rspec_spy_matcher.rb', line 28

def failure_message_for_should_not
  describe_spy_negative_expectation(@spy, @method_name, @args, @options)
end

#matches?(spy) ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
21
22
# File 'lib/flexmock/rspec_spy_matcher.rb', line 18

def matches?(spy)
  @spy = spy
  @options = construct_options
  @spy.flexmock_received?(@method_name, @args, @options)
end

#neverObject



56
57
58
# File 'lib/flexmock/rspec_spy_matcher.rb', line 56

def never
  times(0)
end

#on(on_count) ⇒ Object



68
69
70
71
# File 'lib/flexmock/rspec_spy_matcher.rb', line 68

def on(on_count)
  @on_count = on_count
  self
end

#onceObject



60
61
62
# File 'lib/flexmock/rspec_spy_matcher.rb', line 60

def once
  times(1)
end

#times(n) ⇒ Object



51
52
53
54
# File 'lib/flexmock/rspec_spy_matcher.rb', line 51

def times(n)
  @times = n
  self
end

#twiceObject



64
65
66
# File 'lib/flexmock/rspec_spy_matcher.rb', line 64

def twice
  times(2)
end

#with(*args) ⇒ Object



36
37
38
39
# File 'lib/flexmock/rspec_spy_matcher.rb', line 36

def with(*args)
  @args = args
  self
end

#with_a_blockObject



41
42
43
44
# File 'lib/flexmock/rspec_spy_matcher.rb', line 41

def with_a_block
  @needs_block = true
  self
end

#without_a_blockObject



46
47
48
49
# File 'lib/flexmock/rspec_spy_matcher.rb', line 46

def without_a_block
  @needs_block = false
  self
end