Sha256: e56db2102c0b8339e5e7acbd371a574b2640c29d09b31509ac4628082ddfead2

Contents?: true

Size: 1.85 KB

Versions: 20

Compression:

Stored size: 1.85 KB

Contents

# frozen_string_literal: true

describe Deimos do

  it 'should have a version number' do
    expect(Deimos::VERSION).not_to be_nil
  end

  describe '#start_outbox_backend!' do
    it 'should start if backend is outbox and thread_count is > 0' do
      signal_handler = instance_double(Sigurd::SignalHandler)
      allow(signal_handler).to receive(:run!)
      expect(Sigurd::Executor).to receive(:new).
        with(anything, sleep_seconds: 5, logger: anything).and_call_original
      expect(Sigurd::SignalHandler).to receive(:new) do |executor|
        expect(executor.runners.size).to eq(2)
        signal_handler
      end
      described_class.configure do |config|
        config.producers.backend = :outbox
      end
      described_class.start_outbox_backend!(thread_count: 2)
    end

    it 'should not start if backend is not db' do
      expect(Sigurd::SignalHandler).not_to receive(:new)
      described_class.configure do |config|
        config.producers.backend = :kafka
      end
      expect { described_class.start_outbox_backend!(thread_count: 2) }.
        to raise_error('Publish backend is not set to :outbox, exiting')
    end

    it 'should not start if thread_count is nil' do
      expect(Sigurd::SignalHandler).not_to receive(:new)
      described_class.configure do |config|
        config.producers.backend = :outbox
      end
      expect { described_class.start_outbox_backend!(thread_count: nil) }.
        to raise_error('Thread count is not given or set to zero, exiting')
    end

    it 'should not start if thread_count is 0' do
      expect(Sigurd::SignalHandler).not_to receive(:new)
      described_class.configure do |config|
        config.producers.backend = :outbox
      end
      expect { described_class.start_outbox_backend!(thread_count: 0) }.
        to raise_error('Thread count is not given or set to zero, exiting')
    end
  end

end

Version data entries

20 entries across 20 versions & 1 rubygems

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