public void Loop_CustomInterceptor() { //Arrange const string initialValue = "33"; var maxInt = int.MaxValue.ToString(CultureInfo.InvariantCulture); var initialValues = new List <string> { "1", "2", "3", "4", maxInt, "6" }; var request = new RequestMock(initialValue, RequestStepMock.Step1, initialValues, new TimeSpan(0, 0, 3)); var customErrorHandler = new SubErrorHandlerMock(); var interceptor = new SubInterceptorMock(); const RequestStepMock passedSteps = RequestStepMock.Step1 | RequestStepMock.Step2 | RequestStepMock.Step3 | RequestStepMock.Step4 | RequestStepMock.Step5; //Act RequestPipelineMock.ExecuteLoop(request, new TimeSpan(0, 0, 2), null, null, customErrorHandler, interceptor); //Assert Assert.IsTrue(request.Done, "Заявка должна была дойти до конца."); Assert.IsFalse(interceptor.DefaultMethod, "Должен был отработать кастомный интерсептор."); Assert.AreEqual(interceptor.LastStep, passedSteps, "Должны перехватываться все предыдущие шаги в цепочке."); }
public void Loop_AllOk() { //Arrange const string initialValue = "33"; var initialValues = new List <string> { "1", "2", "9", "4", "5", "6" }; var request = new RequestMock(initialValue, RequestStepMock.Step1, initialValues, new TimeSpan(0, 0, 2)); //Act RequestPipelineMock.ExecuteLoop(request, new TimeSpan(0, 0, 3)); //Assert Assert.IsTrue(request.Done, "Заявка должна была дойти до конца."); Assert.IsFalse(request.Strings == null || request.Strings.Count < 1, "Инициализация строк прошла неудачно."); Assert.IsFalse(request.Values == null || request.Values.Count < 1, "Цикл не прошел совсем."); Assert.IsTrue(request.Strings.Count == request.Values.Count, "Количество строк и значений различаются."); }
public void Loop_CustomErrorHandler() { //Arrange const string initialValue = "33"; var maxInt = int.MaxValue.ToString(CultureInfo.InvariantCulture); var initialValues = new List <string> { "1", "2", "3", "4", maxInt, "6" }; var request = new RequestMock(initialValue, RequestStepMock.Step1, initialValues, new TimeSpan(0, 0, 3)); var customErrorHandler = new SubErrorHandlerMock(); //Act RequestPipelineMock.ExecuteLoop(request, new TimeSpan(0, 0, 2), null, customErrorHandler: customErrorHandler); //Assert Assert.IsTrue(request.Done, "Заявка должна была дойти до конца."); Assert.IsFalse(request.Strings == null || request.Strings.Count < 1, "Инициализация строк прошла неудачно."); Assert.IsFalse(request.Values == null || request.Values.Count < 1, "Цикл не прошел совсем."); Assert.IsTrue(request.Values.Count == request.Strings.Count - 2, "При возникновении ошибки цикл должен пережодить на следующую итерацию."); Assert.IsTrue(customErrorHandler.Errors.Count == 2, "Цикл должен обрабатывать ошибки каждой итерации."); Assert.IsTrue(customErrorHandler.Errors[0] is OperationCanceledException, "Сначала должен быть таймаут"); Assert.IsTrue(customErrorHandler.Errors[1] is OverflowException, "Потом должено быть переполнение"); }