Sha256: 7a5e5b7192fdcbf0a0ca2fbfc7133a12e34cedd2d0465bce1564bcbc3b00e478

Contents?: true

Size: 1.99 KB

Versions: 1

Compression:

Stored size: 1.99 KB

Contents

require 'spec_helper'

module SandthornDriverSequel2

  describe Storage do
    let(:context) { :test }
    before do
      prepare_for_test(context: context)
    end
    let(:db) { Sequel.connect(event_store_url) }
    let(:driver) { SequelDriver.new(event_store_url)}
    let(:storage) { Storage.new(db, context, {}) }

    # describe "anonymous aggegrate class" do
    #   it "can insert and read data" do
    #     create_aggregate
    #     aggregate = storage.aggregates.first(aggregate_id: "foo", aggregate_type: "Foo")
    #     expect(aggregate).to_not be_nil
    #   end

    #   it "can update data" do
    #     create_aggregate
    #     storage.aggregates.where(aggregate_id: "foo").update(aggregate_version: 2)
    #     aggregate = storage.aggregates.first(aggregate_id: "foo")
    #     expect(aggregate.aggregate_version).to eq(2)
    #   end
    # end

    describe "anonymous event class" do
      it "can insert and read data" do
        data, event_id = create_event
        event = storage.events.first(sequence_number: event_id).values
        expected = data.merge(sequence_number: event_id)
        expected_time = expected.delete(:timestamp)
        actual_time = event.delete(:timestamp)
        expect(event).to eq(expected)
        expect(actual_time.to_i).to eq(actual_time.to_i)
      end

      it "can update data" do
        data, event_id = create_event
        storage.events.where(sequence_number: event_id).update(event_name: "qux")
        event = storage.events.first(sequence_number: event_id)
        expect(event.event_name).to eq("qux")
      end
    end

    # def create_aggregate
    #   storage.aggregates.insert(aggregate_id: "foo", aggregate_type: "Foo")
    # end

    def create_event
      data = {
          aggregate_id: "foo",
          aggregate_version: 1,
          aggregate_type: "Foo",
          event_name: "foo",
          event_data: "bar",
          timestamp: Time.now.utc
      }
      event_id = storage.events.insert(data)
      return data, event_id
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sandthorn_driver_sequel_2-0.0.2 spec/storage_spec.rb