|
1 | 1 | using System; |
2 | 2 | using FluentAssertions; |
| 3 | +using Newtonsoft.Json.Linq; |
3 | 4 | using WorkflowCore.Interface; |
4 | 5 | using WorkflowCore.Models; |
5 | 6 | using WorkflowCore.Testing; |
@@ -58,7 +59,12 @@ public void Build(IWorkflowBuilder<ApprovalInput> builder) |
58 | 59 | .Do(then |
59 | 60 | => then |
60 | 61 | .WaitFor("Approved", e => e.Id) |
61 | | - .Output(i => i.Approved, step => step.EventData) |
| 62 | + .Output((w, input) => |
| 63 | + { |
| 64 | + var j = JObject.FromObject(w.EventData); |
| 65 | + input.Approved = j["Approved"].Value<bool>(); |
| 66 | + input.Message= j["Message"].Value<string>(); |
| 67 | + }) |
62 | 68 | .EndWorkflow() |
63 | 69 | ) |
64 | 70 | .Join(); |
@@ -87,15 +93,25 @@ public void Scenario(bool approved) |
87 | 93 | WaitForEventSubscription("Approved", workflowId, TimeSpan.FromSeconds(5)); |
88 | 94 | UnhandledStepErrors.Should().BeEmpty(); |
89 | 95 |
|
90 | | - Host.PublishEvent("Approved", workflowId, approved); |
| 96 | + Host.PublishEvent("Approved", workflowId, new |
| 97 | + { |
| 98 | + Approved = approved, |
| 99 | + Message = "message " + approved |
| 100 | + }); |
91 | 101 |
|
92 | 102 | WaitForWorkflowToComplete(workflowId, TimeSpan.FromSeconds(10)); |
93 | 103 |
|
94 | 104 | System.Threading.Thread.Sleep(2000); |
95 | 105 |
|
96 | 106 | UnhandledStepErrors.Should().BeEmpty(); |
97 | 107 | GetStatus(workflowId).Should().Be(WorkflowStatus.Complete); |
98 | | - GetData(workflowId).Approved.Should().Be(approved); |
| 108 | + GetData(workflowId).ShouldBeEquivalentTo(new ApprovalInput |
| 109 | + { |
| 110 | + Id = eventKey, |
| 111 | + Approved = approved, |
| 112 | + Message = "message " + approved, |
| 113 | + TimeSpan = TimeSpan.FromMinutes(10) |
| 114 | + }); |
99 | 115 | } |
100 | 116 |
|
101 | 117 | [Fact] |
|
0 commit comments