public void Given_Errors_Expect_Non_Null_Error_Object()
        {
            //---------------Arrange-------------------
            var errors = new ErrorOutput();

            errors.AddError("Test error 1");
            errors.AddError("Test error 2");
            var presenter = new ErrorOnlyPropertyPresenter <ErrorOutput>();

            //---------------Act-------------------
            presenter.Respond(errors);
            //---------------Assert-------------------
            presenter.Output.Should().NotBeNull();
        }
        public void Given_There_Are_Errors_On_Inner_Execute__Expect_Errors_Transfered_To_Outer_Object()
        {
            //---------------Arrange-------------------
            var input = new RandomPersonInput
            {
                MinAge     = 19,
                MaxAge     = 19,
                ForceError = true
            };
            var useCase        = new GenerateRandomPersonUseCase();
            var outerPresenter = new PropertyPresenter <OuterTestObject, ErrorOutput>();
            var innerPresenter = new InterUseCasePresenter <OuterTestObject, InnerTestObject, ErrorOutput>();

            //---------------Act-------------------
            useCase.Execute(input, innerPresenter);
            innerPresenter.Render(x => new OuterTestObject
            {
                Age      = x.Age,
                FullName = $"{x.FirstName} {x.LastName}"
            }, outerPresenter);
            //---------------Assert-------------------
            var expected = new ErrorOutput();

            expected.AddError("Forced error happened");
            outerPresenter.ErrorContent.Should().BeEquivalentTo(expected);
        }
Пример #3
0
        public void Execute(string input, IRespondWithSuccessOrError <string, ErrorOutput> presenter)
        {
            var processStartInfo = _processPipeLineTask.CommandToExecute();

            try
            {
                using (var process = _processFactory.CreateProcess(processStartInfo))
                {
                    process.Start();

                    var readerTask = process.ReadStdOutToEndAsync();
                    var errorTask  = process.ReadStdErrToEndAsync();

                    process.WriteToStdInput(input);

                    process.WaitForExit(_processPipeLineTask.ProcessTimeout());

                    if (process.TimeoutOccured)
                    {
                        var errorOutput = new ErrorOutput();
                        errorOutput.AddError($"The process timed out after waiting [{_processPipeLineTask.ProcessTimeout()}] seconds.");
                        return;
                    }

                    var error = errorTask.Result;
                    if (HasError(error))
                    {
                        var errorOutput     = new ErrorOutput();
                        var trimedArugments = processStartInfo.Arguments.Substring(3);
                        errorOutput.AddError($"Failed to execute {trimedArugments}");
                        errorOutput.AddError(error);
                        presenter.Respond(errorOutput);
                        return;
                    }

                    presenter.Respond(readerTask.Result);
                }
            }
            catch (Exception e)
            {
                throw new Exception($"Failed to execute [{processStartInfo.FileName}] with [{processStartInfo.Arguments}]", e);
            }
        }
            public void Given_Not_Null_String_Expect_It_Not_Added_To_Errors()
            {
                //---------------Arrange-------------------
                var error = "an error";
                var sut   = new ErrorOutput();

                //---------------Act-------------------
                sut.AddError(error);
                //---------------Assert-------------------
                sut.Errors.Should().Contain(error);
            }
            public void Given_Null_String_Expect_It_Not_Added_To_Errors()
            {
                //---------------Arrange-------------------
                var error = (string)null;
                var sut   = new ErrorOutput();

                //---------------Act-------------------
                sut.AddError(error);
                //---------------Assert-------------------
                sut.Errors.Should().BeEmpty();
            }
            public void HasErrors_WhenErrors_ShouldReturnTrue()
            {
                //---------------Arrange-------------------
                var errorOutputTo = new ErrorOutput();

                errorOutputTo.AddError("test error");
                //---------------Act-------------------
                var result = errorOutputTo.HasErrors;

                //---------------Assert-------------------
                Assert.True(result);
            }
            public void Given_Not_Null_String_Expect_It_Added_To_Errors()
            {
                //---------------Arrange-------------------
                var error = "an error";
                var sut   = new ErrorOutput();

                //---------------Act-------------------
                sut.AddError(error);
                //---------------Assert-------------------
                sut.Errors.Should().BeEquivalentTo(new List <string> {
                    error
                });
            }
Пример #8
0
        private void Execute(IRespondWithNoResultSuccessOrError <ErrorOutput> presenter)
        {
            var processStartInfo = _processPipeLineTask.CommandToExecute();

            try
            {
                _process = _processFactory.CreateBackgroundProcess(processStartInfo);

                _process.Start();

                var errorTask = _process.ReadStdErrToEndAsync();

                if (!errorTask.Wait(500))
                {
                    // was there error data to fetch?
                    presenter.Respond();
                    return;
                }

                var error = errorTask.Result;
                if (HasError(error))
                {
                    var errorOutput     = new ErrorOutput();
                    var trimedArugments = processStartInfo.Arguments.Substring(3);
                    errorOutput.AddError($"Failed to execute {trimedArugments}");
                    errorOutput.AddError(error);
                    presenter.Respond(errorOutput);
                    return;
                }

                presenter.Respond();
            }
            catch (Exception e)
            {
                throw new Exception($"Failed to execute [{processStartInfo.FileName}] with [{processStartInfo.Arguments}]", e);
            }
        }
        public void Execute(RandomPersonInput inputTo, IRespondWithSuccessOrError <InnerTestObject, ErrorOutput> presenter)
        {
            if (inputTo.ForceError)
            {
                var errors = new ErrorOutput();
                errors.AddError("Forced error happened");
                presenter.Respond(errors);
                return;
            }

            var random = new Random(11223);

            presenter.Respond(new InnerTestObject
            {
                Age       = random.Next(inputTo.MinAge, inputTo.MaxAge),
                FirstName = "Test",
                LastName  = "User"
            });
        }