public void Serialize_signal_input_to_json_format()
        {
            var req = new SignalWorkflowRequest("id", "name");

            req.SignalInput = new { Id = 10 };

            var swfRequest = req.SwfFormat("d");

            Assert.That(swfRequest.Input, Is.EqualTo("{\"Id\":10}"));
        }
Beispiel #2
0
        public async Task Send_signal_request_to_amazon_swf()
        {
            var signalRequest = new SignalWorkflowRequest("workflowId", "signalName")
            {
                WorkflowRunId = "runid",
                SignalInput   = "input"
            };

            await _domain.SignalWorkflowAsync(signalRequest);

            AssertThatAmazonIsSend(signalRequest);
        }
Beispiel #3
0
        private void AssertThatAmazonIsSend(SignalWorkflowRequest request)
        {
            Func <SignalWorkflowExecutionRequest, bool> signalRequest = s =>
            {
                Assert.That(request.WorkflowId, Is.EqualTo(s.WorkflowId));
                Assert.That(request.WorkflowRunId, Is.EqualTo(request.WorkflowRunId));
                Assert.That(request.SignalName, Is.EqualTo(s.SignalName));
                Assert.That(request.SignalInput, Is.EqualTo(s.Input));
                Assert.That(_domainName, Is.EqualTo(s.Domain));
                return(true);
            };

            _amazonWorkflowClient.Verify(c => c.SignalWorkflowExecutionAsync(
                                             It.Is <SignalWorkflowExecutionRequest>((signal) => signalRequest(signal)),
                                             It.IsAny <CancellationToken>()),
                                         Times.Once);
        }
Beispiel #4
0
        private static async Task MainAsync(string[] args)
        {
            var domain = new Domain("learning", RegionEndpoint.EUWest2);
            await domain.RegisterWorkflowAsync <ProcessLogWorkflow>();

            using (var hostedWorkflows = domain.Host(new[] { new ProcessLogWorkflow(), }))
            {
                hostedWorkflows.StartExecution();
                Console.WriteLine("Press any key to terminate");
                Console.ReadKey();
            }

            var req = new SignalWorkflowRequest("workflow id", "signal name");

            req.SignalInput = new { Id = 10, Name = "Ram" };
            await domain.SignalWorkflowAsync(req);
        }
Beispiel #5
0
        /// <summary>
        /// Send a signal to running workflow.
        /// </summary>
        /// <param name="signalRequest"></param>
        /// <returns></returns>
        public async Task SignalWorkflowAsync(SignalWorkflowRequest signalRequest)
        {
            Ensure.NotNull(signalRequest, nameof(signalRequest));

            await _simpleWorkflowClient.SignalWorkflowExecutionAsync(signalRequest.SwfFormat(_name));
        }