Sha256: feaf0e0338382ec92e52c32ac698e48c60e14eccb1dcc2e1e0c5f5e0ed644372

Contents?: true

Size: 987 Bytes

Versions: 2

Compression:

Stored size: 987 Bytes

Contents

RSpec.describe Message::Events do
  EVENTS_TYPE_CODE = Message::Events::TYPE_CODE

  let(:id) { SecureRandom.uuid }

  let(:event1) { Event.new :tested_pizza, Time.new, foo: 'bar' }
  let(:event2) { Event.new :tested_system, Time.new, bar: 'foo' }
  let(:events) { [event1, event2] }

  let(:binary_events) do
    events.map { |event| EventSerializer.serialize event }.join
  end
  let(:string) { EVENTS_TYPE_CODE + id + binary_events }

  let(:message) { Message::Events.new(id, events) }

  describe '.parse' do
    it 'should parse correctly' do
      message = Message::Events.parse string

      parsed_events = message.events.to_a

      expect(message).to be_a Message::Events
      expect(message.id).to eq id
      expect(parsed_events.first).to eq events.first
      expect(parsed_events.last).to eq events.last
    end
  end

  describe '#to_s' do
    it 'should serialize correctly' do
      serialized = message.to_s

      expect(serialized).to eq string
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
aggro-0.0.3 spec/lib/aggro/message/events_spec.rb
aggro-0.0.2 spec/lib/aggro/message/events_spec.rb