internal WorkflowItemWaitAction(WorkflowItemEvent itemEvent, SignalWaitType waitType, params string[] signalNames) { _scheduleId = itemEvent.ScheduleId; _waitingEventTimeStamp = itemEvent.Timestamp; _data = new WaitForSignalData { ScheduleId = itemEvent.ScheduleId, TriggerEventId = itemEvent.EventId, WaitType = waitType, SignalNames = signalNames, NextAction = SignalNextAction.Continue, TriggerEventCompletionDate = itemEvent.Timestamp }; }
public static void AssertWaitForSignal(this WorkflowDecision decision, ScheduleId scheduleId, long triggerEventId, SignalWaitType waitType, SignalNextAction nextAction, DateTime triggerDateTime, TimeSpan timeout, params string[] signalNames) { Assert.That(decision, Is.EqualTo(new WaitForSignalsDecision(new WaitForSignalData { ScheduleId = scheduleId, TriggerEventId = triggerEventId }))); var swfDecision = decision.SwfDecision(); var data = swfDecision.RecordMarkerDecisionAttributes.Details.AsDynamic(); Assert.That(data.SignalNames.ToObject <string[]>(), Is.EqualTo(signalNames)); Assert.That((SignalWaitType)data.WaitType, Is.EqualTo(waitType)); Assert.That((SignalNextAction)data.NextAction, Is.EqualTo(nextAction)); Assert.That(((DateTime?)data.TriggerEventCompletionDate).Value, Is.EqualTo(triggerDateTime)); Assert.That(((TimeSpan?)data.Timeout).Value, Is.EqualTo(timeout)); }