From 19afa23021d3c7e78e527ce67f95f88eb74976ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20K=C3=A4chele?= Date: Sat, 10 Feb 2024 11:18:06 +0100 Subject: [PATCH] Add mock queue implementation --- spec/support/mock_queue.rb | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 spec/support/mock_queue.rb 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