예제 #1
0
        public async Task TestClose()
        {
            var underlying = new Mock <ISink <int> >();
            var sink       = new RetryingSink <int>(underlying.Object, RetryPolicy.NoRetry);
            await sink.CloseAsync(CancellationToken.None);

            underlying.Verify(s => s.CloseAsync(It.IsAny <CancellationToken>()), Times.Once);
        }
예제 #2
0
        public async Task TestSendCompletes()
        {
            var retryPolicy          = new RetryPolicy(new ErrorDetectionStrategy(_ => true), new FixedInterval(3, TimeSpan.FromMilliseconds(10)));
            var items                = new[] { 1, 2, 3, 4, 5, 6 };
            var testSink             = new PartialFailureSink <int>(new Exception());
            var sink                 = new RetryingSink <int>(testSink, retryPolicy);
            ISinkResult <int> result = await sink.ProcessAsync(items, CancellationToken.None);

            await sink.CloseAsync(CancellationToken.None);

            Assert.True(result.IsSuccessful);
            Assert.Equal(new List <int>(items), result.Succeeded);
        }