public async Task Wait_for_a_signal_with_a_timeout_and_continue_on_timing_out_the_signal() { var @event = new AutoResetEvent(false); var timeout = TimeSpan.FromSeconds(3); var workflow = new UserActivateWorkflowWithTimeout(@event, timeout); string reason = null; workflow.Failed += (s, e) => { reason = e.Reason; @event.Set(); }; _workflowHost = await HostAsync(workflow); var workflowId = await _domain.StartWorkflow <UserActivateWorkflow>("input", _taskListName); @event.WaitOne(); @event.WaitOne(timeout.Add(TimeSpan.FromSeconds(2))); Assert.That(reason, Is.EqualTo("Signal_timeout")); }
public async Task Wait_for_a_signal_with_a_timeout_and_continue_on_receiving_the_signal() { var @event = new AutoResetEvent(false); var timeout = TimeSpan.FromSeconds(4); var workflow = new UserActivateWorkflowWithTimeout(@event, timeout); string result = null; workflow.Completed += (s, e) => { result = e.Result; @event.Set(); }; _workflowHost = await HostAsync(workflow); var workflowId = await _domain.StartWorkflow <UserActivateWorkflow>("input", _taskListName); @event.WaitOne(); await _domain.SendSignal(workflowId, "EmailConfirmed", ""); @event.WaitOne(); Assert.That(result, Is.EqualTo("Activated")); }