Sha256: 221cb420312fb90f92567cf7fad10a4550d1107949a51ae59e8bd4d4fd265275
Contents?: true
Size: 888 Bytes
Versions: 2
Compression:
Stored size: 888 Bytes
Contents
require 'json' module SandthornSequelProjection class MockEventStore def initialize(events = nil) @events = Array.wrap(events) end def reset(events = []) @events = events end def add_event(event) @events << event end alias_method :add, :add_event def get_events(after_sequence_number: 0, take: 1) unless numeric?(after_sequence_number, take) raise ArgumentError, "arguments have to be numbers, received: #{after_sequence_number.inspect} and #{take.inspect}" end start = after_sequence_number stop = after_sequence_number + take - 1 Array.wrap(@events[start..stop]) end def numeric?(*args) args.all? { |arg| arg.is_a?(Numeric) } end def self.with_data self.new(JSON.parse(File.read("./spec/test_data/event_data.json"), symbolize_names: true)) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sandthorn_sequel_projection-0.0.2 | spec/support/mock_event_store.rb |
sandthorn_sequel_projection-0.0.1 | spec/support/mock_event_store.rb |