class Dynflow::Testing::DummyExecutor
Attributes
events_to_process[R]
world[R]
Public Class Methods
new(world)
click to toggle source
# File lib/dynflow/testing/dummy_executor.rb, line 8 def initialize(world) @world = world @events_to_process = [] end
Public Instance Methods
clear()
click to toggle source
# File lib/dynflow/testing/dummy_executor.rb, line 46 def clear @events_to_process.clear end
delayed_event(director_event)
click to toggle source
# File lib/dynflow/testing/dummy_executor.rb, line 17 def delayed_event(director_event) @events_to_process << [director_event.execution_plan_id, director_event.step_id, director_event.event, director_event.result] end
event(execution_plan_id, step_id, event, future = Concurrent::Promises.resolvable_future)
click to toggle source
# File lib/dynflow/testing/dummy_executor.rb, line 13 def event(execution_plan_id, step_id, event, future = Concurrent::Promises.resolvable_future) @events_to_process << [execution_plan_id, step_id, event, future] end
execute(action, event = nil)
click to toggle source
# File lib/dynflow/testing/dummy_executor.rb, line 27 def execute(action, event = nil) action.execute event plan_events(action.delayed_events.dup) action.delayed_events.clear end
plan_events(delayed_events)
click to toggle source
# File lib/dynflow/testing/dummy_executor.rb, line 21 def plan_events(delayed_events) delayed_events.each do |event| world.plan_event(event.execution_plan_id, event.step_id, event.event, event.time) end end
progress()
click to toggle source
returns true if some event was processed.
# File lib/dynflow/testing/dummy_executor.rb, line 34 def progress events = @events_to_process.dup clear events.each do |execution_plan_id, step_id, event, future| future.fulfill true if event && world.action.state != :suspended return false end execute(world.action, event) end end