public async Task ShouldExecuteWorkflow() { // Arrange var aCalled = false; var bCalled = false; var workflow = new AutocompleteTasksWorkflow(ctx => { aCalled = true; }, ctx => { bCalled = true; }); var observer = new SingleWorkflowObserver <EmptyContext>(workflow, context => true); var bus = Bus.Factory.CreateUsingInMemory(sbc => { sbc.ReceiveEndpoint("auto_complete_task_workflow", ep => { ep.Workflow(workflow); }); }); // Act bus.Start(); await bus.Publish(new StartWorkflowMessage()); var workflowFinished = observer.WorkflowFinishedHandle.Wait(TimeSpan.FromSeconds(5)); bus.Stop(); // Assert Assert.True(workflowFinished); Assert.Equal("@WF-@A-$A-@B-$B-$WF", observer.EventSequence); Assert.True(aCalled); Assert.True(bCalled); }
public async Task ShouldExecuteWorkflow() { // Arrange var result = 0; var workflow = new ContextProcessingWorkflow(Multiply, number => result = number); var observer = new SingleWorkflowObserver <Context>(workflow, context => true); _bus = Bus.Factory.CreateUsingInMemory(sbc => { sbc.ReceiveEndpoint("context_processing_workflow", ep => { ep.Workflow(workflow); }); }); // Act _bus.Start(); await _bus.Publish(new StartWorkflowMessage(InitialNumber)); var workflowFinished = observer.WorkflowFinishedHandle.Wait(TimeSpan.FromSeconds(5)); _bus.Stop(); // Assert Assert.True(workflowFinished); Assert.Equal(InitialNumber * Multiplier, result); }
public MessageDrivenTasksWorkflowTests() { var workflow = new MessageDrivenTasksWorkflow(); _observer = new SingleWorkflowObserver <EmptyContext>(workflow); _bus = Bus.Factory.CreateUsingInMemory(sbc => { sbc.ReceiveEndpoint("message_driven_task_workflow", ep => { ep.Workflow(workflow); }); }); }
public MultipleRunsWorkflowTests() { var workflow = new MultipleRunsWorkflow(); _observerX = new SingleWorkflowObserver <MultipleRunsWorkflowContext>(workflow, ctx => ctx.SomeProp == "X"); _observerY = new SingleWorkflowObserver <MultipleRunsWorkflowContext>(workflow, ctx => ctx.SomeProp == "Y"); _bus = Bus.Factory.CreateUsingInMemory(sbc => { sbc.ReceiveEndpoint("multiple_runs_workflow", ep => { ep.Workflow(workflow); }); }); }
public async Task ShouldExecuteWorkflow() { // Arrange var workflow = new EmptyWorkflow(); var observer = new SingleWorkflowObserver <EmptyContext>(workflow); var bus = Bus.Factory.CreateUsingInMemory(sbc => { sbc.ReceiveEndpoint("empty_workflow", ep => { ep.Workflow(workflow); }); }); // Act bus.Start(); await bus.Publish(new StartWorkflowMessage()); var workflowFinished = observer.WorkflowFinishedHandle.Wait(TimeSpan.FromSeconds(5)); bus.Stop(); // Assert Assert.True(workflowFinished); }