module ActionSubscriber::RSpec
Constants
- PROPERTIES_DEFAULTS
Public Instance Methods
mock_subscriber(opts = {})
click to toggle source
Create a new subscriber instance. Available options are:
* :acknowledger - the object that should receive ack/reject calls for this message (only useful for testing manual acknowledgment) * :content_type - defaults to text/plain * :encoded_payload - the encoded payload object to pass into the instance. * :exchange - defaults to "events" * :message_id - defaults to "MSG-123" * :payload - the payload object to pass to the instance. * :routing_key - defaults to amigo.user.created * :subscriber - the class constant corresponding to the subscriber. `described_class` is the default.
Example
describe UserSubscriber do subject { mock_subscriber(:payload => proto) } it 'logs the user create event' do SomeLogger.should_receive(:log) subject.created end end
# File lib/action_subscriber/rspec.rb, line 62 def mock_subscriber(opts = {}) encoded_payload = opts.fetch(:encoded_payload) { double('encoded payload').as_null_object } subscriber_class = opts.fetch(:subscriber) { described_class } properties = PROPERTIES_DEFAULTS.merge(opts.slice(:channel, :content_type, :delivery_tag, :exchange, :message_id, :routing_key)) env = ActionSubscriber::Middleware::Env.new(subscriber_class, encoded_payload, properties) env.payload = opts.fetch(:payload) { double('payload').as_null_object } return subscriber_class.new(env) end