Example #1
0
        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"));
        }
Example #2
0
        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"));
        }