module SequencerUnit def process(parameters = {}, &block) Sequencer::Unit.process(described_class.name, parameters, &block) end end module SequencerSequence def process(parameters = {}) Sequencer.process(described_class.name, parameters: parameters) end end module SequencerCaller def expect_sequence(sequence_name = nil) expected_method_call = receive(:process) if sequence_name expected_method_call.with(sequence_name) end expect(Sequencer).to expected_method_call end def expect_no_sequence(sequence_name = nil) expected_method_call = receive(:process) if sequence_name expected_method_call.with(sequence_name) end expect(Sequencer).not_to expected_method_call end end RSpec.configure do |config| config.include SequencerUnit, sequencer: :unit config.include SequencerSequence, sequencer: :sequence config.include SequencerCaller, sequencer: :caller end