public void Setup() { _builder = new HistoryEventsBuilder(); var signaledEvent = _builder.WorkflowSignaledEvent("name", "input", "externalWorkflowRunid", "externalWorkflowRunid"); _workflowSignaledEvent = new WorkflowSignaledEvent(signaledEvent); }
public void Throws_exception_when_two_signal_method_exists_for_same_signal_name_property() { var expectedAction = new Mock <WorkflowAction>().Object; var workflowSignaledEvent = new WorkflowSignaledEvent(_graphBuilder.WorkflowSignaledEvent("signal1", "input")); Assert.Throws <AmbiguousWorkflowMethodException>(() => workflowSignaledEvent.Interpret(new WorkflowWithTwoSignalMethodsForSameSignalName(expectedAction))); }
public void Replying_to_a_signal_returns_signal_workflow_workflow() { var receivedSignalEvent = new WorkflowSignaledEvent(_eventGraphBuilder.WorkflowSignaledEvent("someName", "input1", "rid", "wid")); var decisions = _signal.ReplyTo(receivedSignalEvent).Decisions(Mock.Of <IWorkflow>()); Assert.That(decisions, Is.EqualTo(new [] { new SignalWorkflowDecision(SignalName, SignalInput, "wid", "rid") })); }
public WorkflowAction Confirmed(WorkflowSignaledEvent signal, string signalName) { if (Lambda("ConfirmEmail").IsWaitingForSignal(signalName)) { return(Lambda("ConfirmEmail").Resume(signal)); } return(Ignore); }
public void By_default_returns_workflow_ignore_action() { var workflowSignaledEvent = new WorkflowSignaledEvent(_builder.WorkflowSignaledEvent("name", "input")); var workflowAction = workflowSignaledEvent.Interpret(new EmptyWorkflow()); Assert.That(workflowAction.GetDecisions(), Is.Empty); }
public void Workflow_can_reply_to_signal_event() { var workflowSignaledEvent = new WorkflowSignaledEvent(_builder.WorkflowSignaledEvent("name", "input", "runid", "wid")); var decisions = workflowSignaledEvent.Interpret(new WorkflowToReplyToSignalEvent("newSignal", "newInput")).GetDecisions(); Assert.That(decisions, Is.EqualTo(new [] { new SignalWorkflowDecision("newSignal", "newInput", workflowSignaledEvent.ExternalWorkflowId, workflowSignaledEvent.ExternalWorkflowRunid) })); }
public void Is_triggered_false_data() { var signalEvent = new WorkflowSignaledEvent(_graphBuilder.WorkflowSignaledEvent(SignalName.ToUpper(), "input")); _workflow.SetupGet(w => w.CurrentlyExecutingEvent).Returns(signalEvent); Assert.That(_signal.IsTriggered(d => d == "data"), Is.False); }
public void Signal_can_be_handled_using_matching_signal_method() { var expectedAction = new Mock <WorkflowAction>().Object; var workflowSignaledEvent = new WorkflowSignaledEvent(_graphBuilder.WorkflowSignaledEvent("signal1", "input")); var workflowAction = workflowSignaledEvent.Interpret(new WorkflowWithSignalAttribute(expectedAction)); Assert.That(workflowAction, Is.EqualTo(expectedAction)); }
public void Signal_method_with_a_signal_name_takes_priority_over_matching_signal_method() { var expectedAction = new Mock <WorkflowAction>().Object; var workflowSignaledEvent = new WorkflowSignaledEvent(_graphBuilder.WorkflowSignaledEvent("signal1", "input")); var workflowAction = workflowSignaledEvent.Interpret(new WorkflowWithMatchingSignalMethodAndName(expectedAction)); Assert.That(workflowAction, Is.EqualTo(expectedAction)); }
public WorkflowAction InventoryUpdated(WorkflowSignaledEvent @event) { if (!Activity <OrderItemActivity>().IsActive) { return(Jump.ToActivity <OrderItemActivity>()); } return(Ignore); }
public void Signal_can_be_handled_by_signal_method_by_giving_a_signal_name_property() { var expectedAction = new Mock <WorkflowAction>().Object; var workflowSignaledEvent = new WorkflowSignaledEvent(_graphBuilder.WorkflowSignaledEvent("signal1", "input")); var workflowAction = workflowSignaledEvent.Interpret(new WorkflowWithSignalName(expectedAction)); Assert.That(workflowAction, Is.EqualTo(expectedAction)); }
public void Setup() { _graphBuilder = new EventGraphBuilder(); _builder = new HistoryEventsBuilder(); var signaledEvent = _graphBuilder.WorkflowSignaledEvent("name", "input", "externalWorkflowRunid", "externalWorkflowRunid"); _workflowSignaledEvent = new WorkflowSignaledEvent(signaledEvent); _builder.AddProcessedEvents(_graphBuilder.WorkflowStartedEvent()); }
public void Can_return_custom_workflow_action() { var expectedAction = new Mock <WorkflowAction>().Object; var workflowSignaledEvent = new WorkflowSignaledEvent(_builder.WorkflowSignaledEvent("name", "input")); var workflowAction = workflowSignaledEvent.Interpret(new WorkflowWithCustomActionOnSignal(expectedAction)); Assert.That(workflowAction, Is.EqualTo(expectedAction)); }
public void Fall_back_to_generic_workflow_event_handler_when_signal_name_does_not_match() { var expectedAction = new Mock <WorkflowAction>().Object; var workflowSignaledEvent = new WorkflowSignaledEvent(_graphBuilder.WorkflowSignaledEvent("signal1", "input")); var workflowAction = workflowSignaledEvent.Interpret(new WorkflowWithNotMatchingSignalMethod(expectedAction)); Assert.That(workflowAction, Is.EqualTo(expectedAction)); }
public void Replying_to_a_signal_returns_signal_workflow_workflow() { var receivedSignalEvent = new WorkflowSignaledEvent(_builder.WorkflowSignaledEvent("someName", "input1", "rid", "wid")); var signalAction = new Signal("name", "input"); var decisions = signalAction.ReplyTo(receivedSignalEvent).GetDecisions(); Assert.That(decisions, Is.EqualTo(new [] { new SignalWorkflowDecision("name", "input", "wid", "rid") })); }
public WorkflowAction SignalEvent(WorkflowSignaledEvent @event) { if (@event.SignalName == "ItemsArrived" && Activity <ReserveOrder>().LastFailedEvent()?.Reason == "NotAvailable") { return(Jump.ToActivity <ReserveOrder>()); } return(Ignore); }
public void Does_not_populate_external_workflow_properties_when_not_signed_by_external_workflow() { var workflowSignaledEvent = new WorkflowSignaledEvent(_builder.WorkflowSignaledEvent("name", "input")); Assert.That(workflowSignaledEvent.SignalName, Is.EqualTo("name")); Assert.That(workflowSignaledEvent.Input, Is.EqualTo("input")); Assert.That(workflowSignaledEvent.ExternalWorkflowRunid, Is.Null); Assert.That(workflowSignaledEvent.ExternalWorkflowId, Is.Null); Assert.IsFalse(workflowSignaledEvent.IsSentByWorkflow); }
public WorkflowAction OnSignal(WorkflowSignaledEvent @event) { //I'm a nice kid I will cancel whichever the activity in progress. if (@event.SignalName == "Let us have dinner") { return(CancelRequest.For(WorkflowItems.Where(i => i.IsActive))); } //I will ignore rest of the signals return(Ignore); }
public WorkflowAction Confirmed(WorkflowSignaledEvent signal, string signalName) { WorkflowAction result = Ignore; foreach (var item in WaitingItems(signalName)) { result += item.Resume(signal); } return(result); }
public WorkflowAction OnSignal(WorkflowSignaledEvent @event) { if (@event.SignalName == "Hello kid") { return(Signal("Hello parent", "").ReplyTo(@event)); } if (@event.SignalName == "Let us have dinner") { return(CancelRequest.For(WorkflowItems.Where(i => i.IsActive))); } //I will ignore rest of the signals return(Ignore); }
public WorkflowAction OnSignal(WorkflowSignaledEvent @event) { var kidsPlayWorkflow = ChildWorkflow <KidPlayWorkflow>(); if (@event.SignalName == "Wife says: come for dinner") { return(kidsPlayWorkflow.IsActive ? Signal("Hello kid", "").ForChildWorkflow <KidPlayWorkflow>() : CompleteWorkflow("Okay coming")); } if (@event.SignalName == "Hello parent") { return(kidsPlayWorkflow.IsActive ? Signal("Let us have dinner", "").ForChildWorkflow <KidPlayWorkflow>() : CompleteWorkflow("Okay coming")); } //I will ignore rest of the signals return(Ignore); }
protected WorkflowAction OnSignal(WorkflowSignaledEvent workflowSignalEvent) { return(_workflowAction); }
public void Reply_to_signal_event_not_sent_by_a_workflow_generate_exception() { var workflowSignaledEvent = new WorkflowSignaledEvent(_builder.WorkflowSignaledEvent("name", "input")); Assert.Throws <SignalException>(() => workflowSignaledEvent.Interpret(new WorkflowToReplyToSignalEvent("newSignal", "newInput"))); }
public WorkflowAction UnexpectedSignal(WorkflowSignaledEvent signal) { return(Lambda("ConfirmEmail").Resume(signal)); }
public WorkflowAction HelloKidSignalAction(WorkflowSignaledEvent @event) => Signal("HelloParent", "").ReplyTo(@event);
public WorkflowAction Confirmed(WorkflowSignaledEvent signal) => Lambda("ConfirmEmail").Resume(signal);
protected WorkflowAction OnSignal(WorkflowSignaledEvent workflowSignalEvent) { return(Signal(_signalName, _input).ReplyTo(workflowSignalEvent)); }