Class: Wisper::RSpec::BroadcastMatcher::Matcher

Inherits:
Object
  • Object
show all
Includes:
RSpec::Matchers::Composable
Defined in:
lib/wisper/rspec/matchers.rb

Instance Method Summary collapse

Constructor Details

#initialize(event, *args) ⇒ Matcher



39
40
41
42
# File 'lib/wisper/rspec/matchers.rb', line 39

def initialize(event, *args)
  @event = event
  @args = args
end

Instance Method Details

#actualObject



69
70
71
# File 'lib/wisper/rspec/matchers.rb', line 69

def actual
  broadcast_events_args
end

#broadcast_events_argsObject



83
84
85
# File 'lib/wisper/rspec/matchers.rb', line 83

def broadcast_events_args
  @event_recorder.broadcast_events.map {|event| event.size == 1 ? [] : event[1..-1] }
end

#diffable?Boolean



73
74
75
# File 'lib/wisper/rspec/matchers.rb', line 73

def diffable?
  true
end

#expectedObject



65
66
67
# File 'lib/wisper/rspec/matchers.rb', line 65

def expected
  [] << @args
end

#failure_messageObject



58
59
60
61
62
63
# File 'lib/wisper/rspec/matchers.rb', line 58

def failure_message
  msg = "expected publisher to broadcast #{@event} event"
  msg += " with args: #{@args.inspect}" if @args.size > 0
  msg << broadcast_events_list
  msg
end

#failure_message_when_negatedObject



77
78
79
80
81
# File 'lib/wisper/rspec/matchers.rb', line 77

def failure_message_when_negated
  msg = "expected publisher not to broadcast #{@event} event"
  msg += " with args: #{@args.inspect}" if @args.size > 0
  msg
end

#matches?(block) ⇒ Boolean



48
49
50
51
52
53
54
55
56
# File 'lib/wisper/rspec/matchers.rb', line 48

def matches?(block)
  @event_recorder = EventRecorder.new

  Wisper.subscribe(@event_recorder) do
    block.call
  end

  @event_recorder.broadcast?(@event, *@args)
end

#supports_block_expectations?Boolean



44
45
46
# File 'lib/wisper/rspec/matchers.rb', line 44

def supports_block_expectations?
  true
end