Пример #1
0
        public void InvokeChain_Continue()
        {
            //Arrange
            const string initialValue = "11";
            var          request      = new RequestMock(initialValue, RequestStepMock.Step3)
            {
                Value = 6
            };
            var customHandler = new ErrorHandlerMock();
            var interceptor   = new InterceptorMock();
            const RequestStepMock passedSteps =
                RequestStepMock.Step3 |
                RequestStepMock.Step4 |
                RequestStepMock.Done;

            //Act
            RequestPipelineMock.ExecuteChain(request, new TimeSpan(0, 60, 1), TimeoutLifetime.Step,
                                             null, null, customHandler, interceptor);

            //Assert
            Assert.IsNull(customHandler.Error, "Ошибок быть не должно.");
            Assert.IsFalse(interceptor.DefaultMethod, "Должен был отработать кастомный интерсептор.");
            Assert.IsTrue(request.Default == initialValue, "Заявка должна быть правильно прионициализированна.");
            Assert.IsTrue(request.StrValue.IsNullOrEmpty(), "Первый шаг не должен был пройти");
            Assert.IsTrue(request.Value == 12, "Неправильный результат заявки.");
            Assert.AreEqual(interceptor.LastStep, passedSteps, "Должны перехватываться все предыдущие шаги в цепочке.");
        }
Пример #2
0
        public void InvokeChain_DefaultInterceptor()
        {
            //Arrange
            const string          initialValue  = "11";
            var                   request       = new RequestMock(initialValue, RequestStepMock.Step1, null, new TimeSpan(0, 0, 2));
            var                   customHandler = new ErrorHandlerMock();
            var                   interceptor   = new InterceptorMock();
            const RequestStepMock passedSteps   =
                RequestStepMock.Step1 |
                RequestStepMock.Step2 |
                RequestStepMock.Step3 |
                RequestStepMock.Step4;

            //Act
            RequestPipelineMock.ExecuteChain(request, new TimeSpan(0, 0, 1), TimeoutLifetime.Step,
                                             null, interceptor, customHandler);

            //Assert
            Assert.IsNotNull(customHandler.Error, "Кастомный обработчик отработал неправильно.");
            Assert.IsTrue(customHandler.Error is OperationCanceledException, "IStepExecutor должен возвращать исходную ошибку.");
            Assert.IsFalse(interceptor.DefaultMethod, "Должен был отработать кастомный интерсептор.");
            Assert.AreEqual(interceptor.LastStep, passedSteps, "Должны перехватываться все предыдущие шаги в цепочке.");
        }