Sha256: 4ad2ba34b1b3bdedee6b33eb4594685428acc8db2aa038a2344770e3d9112641

Contents?: true

Size: 1.36 KB

Versions: 20

Compression:

Stored size: 1.36 KB

Contents

# frozen_string_literal: true

RSpec.describe Deimos::ActiveRecordConsume::BatchSlicer do
  describe '#slice' do
    let(:batch) do
      [
        Deimos::Message.new({ v: 1 }, key: 'C'),
        Deimos::Message.new({ v: 123 }, key: 'A'),
        Deimos::Message.new({ v: 999 }, key: 'B'),
        Deimos::Message.new({ v: 456 }, key: 'A'),
        Deimos::Message.new({ v: 2 }, key: 'C'),
        Deimos::Message.new({ v: 3 }, key: 'C')
      ]
    end

    it 'should slice a batch by key' do
      slices = described_class.slice(batch)

      expect(slices).
        to match([
                   match_array([
                                 Deimos::Message.new({ v: 1 }, key: 'C'),
                                 Deimos::Message.new({ v: 123 }, key: 'A'),
                                 Deimos::Message.new({ v: 999 }, key: 'B')
                               ]),
                   match_array([
                                 Deimos::Message.new({ v: 456 }, key: 'A'),
                                 Deimos::Message.new({ v: 2 }, key: 'C')
                               ]),
                   match_array([
                                 Deimos::Message.new({ v: 3 }, key: 'C')
                               ])
                 ])
    end

    it 'should handle empty batches' do
      slices = described_class.slice([])

      expect(slices).to be_empty
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
deimos-ruby-2.0.5 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-2.0.4 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-2.0.3 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-2.0.2 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-2.0.1 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-2.0.0 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-2.0.0.pre.beta7 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-2.0.0.pre.beta6 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-2.0.0.pre.beta5 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-2.0.0.pre.beta4 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-2.0.0.pre.beta3 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-2.0.0.pre.beta2 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-2.0.0.pre.beta1 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-2.0.0.pre.alpha7 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-2.0.0.pre.alpha6 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-2.0.0.pre.alpha5 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-2.0.0.pre.alpha4 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-2.0.0.pre.alpha3 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-2.0.0.pre.alpha2 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-2.0.0.pre.alpha1 spec/active_record_consume/batch_slicer_spec.rb