diff --git a/spec/support/mock_queue.rb b/spec/support/mock_queue.rb new file mode 100644 index 0000000..d536530 --- /dev/null +++ b/spec/support/mock_queue.rb @@ -0,0 +1,32 @@ +class MockQueue + attr_reader :messages + + def initialize + @messages = [] + @subscription_id = 0 + @subscriptions = {} + end + + def subscribe(&block) + @subscription_id += 1 + @subscriptions[@subscription_id] = block + @subscription_id + end + + def push(message) + @messages.push(message) + @subscriptions.values.each do |callback| + callback.call(message) + end + message + end + + def clear_messages! + @messages = [] + end + + def unsubscribe(subscription_id) + @subscriptions.delete(subscription_id) + nil + end +end