Sha256: 2df365878ebe4a546b8322b8e15df056ed7eb50470be871d89675a4a4c3b9705

Contents?: true

Size: 1.55 KB

Versions: 28

Compression:

Stored size: 1.55 KB

Contents

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
          DeadLetterSilencer::Matcher.new(sender, msg, receiver)
                                     .match?(letter).must_equal true
          DeadLetterSilencer::Matcher.new(any, :bad, any).match?(letter).must_equal false
        end

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

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
dynflow-1.3.0 test/dead_letter_silencer_test.rb
dynflow-1.2.3 test/dead_letter_silencer_test.rb
dynflow-1.2.2 test/dead_letter_silencer_test.rb
dynflow-1.2.1 test/dead_letter_silencer_test.rb
dynflow-1.2.0 test/dead_letter_silencer_test.rb
dynflow-1.2.0.pre1 test/dead_letter_silencer_test.rb
dynflow-1.1.6 test/dead_letter_silencer_test.rb
dynflow-1.1.5 test/dead_letter_silencer_test.rb
dynflow-1.1.4 test/dead_letter_silencer_test.rb
dynflow-1.1.3 test/dead_letter_silencer_test.rb
dynflow-1.1.2 test/dead_letter_silencer_test.rb
dynflow-1.1.1 test/dead_letter_silencer_test.rb
dynflow-1.1.0 test/dead_letter_silencer_test.rb
dynflow-1.0.5 test/dead_letter_silencer_test.rb
dynflow-1.0.4 test/dead_letter_silencer_test.rb
dynflow-1.0.3 test/dead_letter_silencer_test.rb
dynflow-1.0.2 test/dead_letter_silencer_test.rb
dynflow-1.0.1 test/dead_letter_silencer_test.rb
dynflow-1.0.0 test/dead_letter_silencer_test.rb
dynflow-0.8.37 test/dead_letter_silencer_test.rb