Sha256: 3a1b9f977655f4213b87de34ced0c833175b4361838476c97c3ebc2c33324f4d

Contents?: true

Size: 1.29 KB

Versions: 11

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true
module Dynflow
  module Testing
    class DummyWorld
      extend Mimic
      mimic! World

      attr_reader :clock, :executor, :middleware
      attr_accessor :action

      def initialize(_config = nil)
        @logger_adapter = Testing.logger_adapter
        @clock          = ManagedClock.new
        @executor       = DummyExecutor.new(self)
        @middleware     = Middleware::World.new
      end

      def action_logger
        @logger_adapter.action_logger
      end

      def logger
        @logger_adapter.dynflow_logger
      end

      def silence_logger!
        action_logger.level = 4
      end

      def subscribed_actions(klass)
        []
      end

      def event(execution_plan_id, step_id, event, future = Concurrent::Promises.resolvable_future)
        executor.event execution_plan_id, step_id, event, future
      end

      def plan_event(execution_plan_id, step_id, event, time, accepted = Concurrent::Promises.resolvable_future)
        if time.nil? || time < Time.now
          event(execution_plan_id, step_id, event, accepted)
        else
          clock.ping(executor, time, Director::Event[SecureRandom.uuid, execution_plan_id, step_id, event, accepted], :delayed_event)
        end
      end

      def persistence
        nil
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
dynflow-1.4.9 lib/dynflow/testing/dummy_world.rb
dynflow-1.4.8 lib/dynflow/testing/dummy_world.rb
dynflow-1.5.0 lib/dynflow/testing/dummy_world.rb
dynflow-1.4.7 lib/dynflow/testing/dummy_world.rb
dynflow-1.4.6 lib/dynflow/testing/dummy_world.rb
dynflow-1.4.5 lib/dynflow/testing/dummy_world.rb
dynflow-1.4.4 lib/dynflow/testing/dummy_world.rb
dynflow-1.4.3 lib/dynflow/testing/dummy_world.rb
dynflow-1.4.2 lib/dynflow/testing/dummy_world.rb
dynflow-1.4.1 lib/dynflow/testing/dummy_world.rb
dynflow-1.4.0 lib/dynflow/testing/dummy_world.rb