public void ReturnsResultFromResponse()
            {
                var @params = new WaitForProcessExitParams
                {
                    key     = Guid.NewGuid(),
                    timeout = 5000,
                };

                var result = Client.WaitForProcessExit(@params);

                Assert.Same(ExpectedResult, result);
            }
        public bool WaitForExit(int milliseconds)
        {
            var @params = new WaitForProcessExitParams
            {
                key = key,
                timeout = milliseconds,
            };

            var result = hostClient.WaitForProcessExit(@params);
            if (result.exited)
                exitCode = result.exitCode;

            return result.exited;
        }
        public WaitForProcessExitHandlerTests()
        {
            ProcessTracker = Substitute.For <IProcessTracker>();

            Handler = new WaitForProcessExitHandler(ProcessTracker);

            ExpectedParams = new WaitForProcessExitParams
            {
                key     = Guid.NewGuid(),
                timeout = 100,
            };

            ExpectedProcess = Substitute.For <IProcess>();

            ProcessTracker.GetProcessByKey(ExpectedParams.key).Returns(ExpectedProcess);
        }
        public WaitForProcessExitHandlerTests()
        {
            ProcessTracker = Substitute.For<IProcessTracker>();

            Handler = new WaitForProcessExitHandler(ProcessTracker);

            ExpectedParams = new WaitForProcessExitParams
            {
                key = Guid.NewGuid(),
                timeout = 100,
            };

            ExpectedProcess = Substitute.For<IProcess>();

            ProcessTracker.GetProcessByKey(ExpectedParams.key).Returns(ExpectedProcess);
        }
            public void SendsRequestWithParams()
            {
                var @params = new WaitForProcessExitParams
                {
                    key     = Guid.NewGuid(),
                    timeout = 5000,
                };

                Client.WaitForProcessExit(@params);

                MessagingClient.Received(1).SendMessageAsync <WaitForProcessExitRequest, WaitForProcessExitResponse>(
                    Arg.Is <WaitForProcessExitRequest>(request =>
                                                       request.@params == @params
                                                       )
                    );
            }
        public bool WaitForExit(int milliseconds)
        {
            var @params = new WaitForProcessExitParams
            {
                key     = key,
                timeout = milliseconds,
            };

            var result = hostClient.WaitForProcessExit(@params);

            if (result.exited)
            {
                exitCode = result.exitCode;
            }

            return(result.exited);
        }
        public Task <WaitForProcessExitResult> ExecuteAsync(WaitForProcessExitParams p)
        {
            var process = processTracker.GetProcessByKey(p.key);

            if (process == null)
            {
                throw new Exception(String.Format("A process with key '{0}' is not being tracked.", p.key));
            }

            var success = process.WaitForExit(p.timeout);

            var result = new WaitForProcessExitResult
            {
                exited   = success,
                exitCode = success ? process.ExitCode : 0,
            };

            if (result.exited)
            {
                processTracker.RemoveProcess(p.key);
            }

            return(Task.FromResult(result));
        }
示例#8
0
        public WaitForProcessExitResult WaitForProcessExit(WaitForProcessExitParams @params)
        {
            var response = SendMessage <WaitForProcessExitRequest, WaitForProcessExitResponse>(new WaitForProcessExitRequest(@params));

            return(response.result);
        }