예제 #1
0
        public void OnError_is_called_when_etl_operation_returns_errors()
        {
            var exception        = new Exception("Whoops!");
            var errorReturningOp = new ActionEtlOperation(ctx => false);

            errorReturningOp.WithErrors(new EtlOperationError(errorReturningOp, exception));
            var errorHandlerCalled = false;

            var pipeline = EtlPipeline.Create(settings => settings
                                              .OnError((ctx, errors) =>
            {
                errorHandlerCalled = true;
                errors.Count().Should().Be(1);
                var err = errors.Single();
                err.Exception.Should().Be(exception);
                err.SourceOperation.Should().Be(errorReturningOp);
                err.HasSourceItem.Should().BeFalse();
                err.SourceNode.Should().BeNull();
                return(true);
            })
                                              )
                           .Run(errorReturningOp)
                           .Execute();

            errorHandlerCalled.Should().BeTrue();
        }