Sha256: efe7a0ad9424c10c53f4f3f31f0b481f5434a9a1fe6a70e6b428c5a0170fc13b

Contents?: true

Size: 1.6 KB

Versions: 25

Compression:

Stored size: 1.6 KB

Contents

# frozen_string_literal: true
require_relative 'test_helper'
require 'ostruct'

module Dynflow
  module DeadLetterSilencerTest
    describe ::Dynflow::DeadLetterSilencer do
      include Dynflow::Testing::Factories
      include TestHelpers

      let(:world) { WorldFactory.create_world }

      it 'is started for each world' do
        _(world.dead_letter_handler.actor_class)
             .must_equal ::Dynflow::DeadLetterSilencer
      end

      describe ::Dynflow::DeadLetterSilencer::Matcher do
        let(:any) { DeadLetterSilencer::Matcher::Any }
        let(:sender) { ::Dynflow::Clock }
        let(:msg) { :ping }
        let(:receiver) { ::Dynflow::DeadLetterSilencer }
        let(:letter) do
          OpenStruct.new(:sender => OpenStruct.new(:actor_class => sender),
                         :message => msg,
                         :address => OpenStruct.new(:actor_class => receiver))
        end

        it 'matches any' do
          _(DeadLetterSilencer::Matcher.new(any, any, any).match?(letter)).must_equal true
        end

        it 'matches comparing for equality' do
          matcher = DeadLetterSilencer::Matcher.new(sender, msg, receiver)
          _(matcher.match?(letter)).must_equal true
          matcher = DeadLetterSilencer::Matcher.new(any, :bad, any)
          _(matcher.match?(letter)).must_equal false
        end

        it 'matches by calling the proc' do
          condition = proc { |actor_class| actor_class.is_a? Class }
          matcher = DeadLetterSilencer::Matcher.new(condition, any, condition)
          _(matcher.match?(letter)).must_equal true
        end
      end
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
dynflow-1.8.2 test/dead_letter_silencer_test.rb
dynflow-1.8.1 test/dead_letter_silencer_test.rb
dynflow-1.8.0 test/dead_letter_silencer_test.rb
dynflow-1.7.0 test/dead_letter_silencer_test.rb
dynflow-1.6.11 test/dead_letter_silencer_test.rb
dynflow-1.6.10 test/dead_letter_silencer_test.rb
dynflow-1.6.8 test/dead_letter_silencer_test.rb
dynflow-1.6.7 test/dead_letter_silencer_test.rb
dynflow-1.6.6 test/dead_letter_silencer_test.rb
dynflow-1.6.5 test/dead_letter_silencer_test.rb
dynflow-1.6.4 test/dead_letter_silencer_test.rb
dynflow-1.6.3 test/dead_letter_silencer_test.rb
dynflow-1.6.2 test/dead_letter_silencer_test.rb
dynflow-1.6.1 test/dead_letter_silencer_test.rb
dynflow-1.4.9 test/dead_letter_silencer_test.rb
dynflow-1.4.8 test/dead_letter_silencer_test.rb
dynflow-1.5.0 test/dead_letter_silencer_test.rb
dynflow-1.4.7 test/dead_letter_silencer_test.rb
dynflow-1.4.6 test/dead_letter_silencer_test.rb
dynflow-1.4.5 test/dead_letter_silencer_test.rb