Module: Ears::Testing::TestHelper

Includes:
RSpec::Mocks::ExampleMethods
Defined in:
lib/ears/testing/test_helper.rb

Instance Method Summary collapse

Instance Method Details

#clear_published_messagesObject



50
51
52
# File 'lib/ears/testing/test_helper.rb', line 50

def clear_published_messages
  Ears::Testing.message_capture&.clear
end

#ears_reset!Object



18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/ears/testing/test_helper.rb', line 18

def ears_reset!
  Ears::Testing.message_capture = nil

  if instance_variable_defined?(:@original_connection)
    Ears.instance_variable_set(:@connection, @original_connection)
    remove_instance_variable(:@original_connection)
  end

  if defined?(Ears::PublisherChannelPool)
    Ears::PublisherChannelPool.reset!
  end
end

#last_published_message(exchange_name = nil) ⇒ Object



42
43
44
# File 'lib/ears/testing/test_helper.rb', line 42

def last_published_message(exchange_name = nil)
  published_messages(exchange_name).last
end

#last_published_payload(exchange_name = nil) ⇒ Object



46
47
48
# File 'lib/ears/testing/test_helper.rb', line 46

def last_published_payload(exchange_name = nil)
  last_published_message(exchange_name).data
end

#mock_ears(*exchange_names) ⇒ Object



8
9
10
11
12
13
14
15
16
# File 'lib/ears/testing/test_helper.rb', line 8

def mock_ears(*exchange_names)
  Ears::Testing.message_capture ||= MessageCapture.new

  @original_connection = Ears.instance_variable_get(:@connection)

  publisher_mock =
    PublisherMock.new(exchange_names, Ears::Testing.message_capture)
  publisher_mock.setup_mocks
end

#published_messages(exchange_name = nil, routing_key_match: nil) ⇒ Object



31
32
33
34
35
36
37
38
39
40
# File 'lib/ears/testing/test_helper.rb', line 31

def published_messages(exchange_name = nil, routing_key_match: nil)
  return [] unless Ears::Testing.message_capture

  messages = exchange_name ? messages_for(exchange_name) : all_messages
  return messages unless routing_key_match

  messages.select do |message|
    message.routing_key.match?(routing_key_match)
  end
end