Пример #1
0
        public async Task EventsInterceptor__EventIsNotRegistered__Throws()
        {
            PrepareServicesForInterception(out var _,
                                           out var messageCancellationService,
                                           out var messageCancellationRegistry,
                                           out var logFactory);

            var notRegisteredMessage = new OneMoreMessageWithSomeId()
            {
                MessageId = Guid.NewGuid()
            };
            var messageCancellationCommandInterceptor =
                new MessageCancellationEventInterceptor(
                    messageCancellationService,
                    messageCancellationRegistry,
                    logFactory.Object);
            var interceptionContext = new Mock <IEventInterceptionContext>();

            interceptionContext.Setup(x => x.Event).Returns(notRegisteredMessage);
            interceptionContext.Setup(x => x.HandlerObject).Returns(this);
            interceptionContext.Setup(x => x.InvokeNextAsync())
            .Returns(Task.FromResult(CommandHandlingResult.Fail(TimeSpan.Zero)));

            await Assert.ThrowsAsync <MessageCancellationInterceptionException>(async() =>
            {
                var result = await messageCancellationCommandInterceptor.InterceptAsync(interceptionContext.Object);
            });
        }
Пример #2
0
        public async Task EventsInterceptor__CancellationRequested__FlowIsCancelled()
        {
            var @event = PrepareServicesForInterception(out var operationId,
                                                        out var messageCancellationService,
                                                        out var messageCancellationRegistry,
                                                        out var logFactory);

            var messageCancellationCommandInterceptor =
                new MessageCancellationEventInterceptor(
                    messageCancellationService,
                    messageCancellationRegistry,
                    logFactory.Object);
            var interceptionContext = new Mock <IEventInterceptionContext>();

            interceptionContext.Setup(x => x.Event).Returns(@event);
            interceptionContext.Setup(x => x.HandlerObject).Returns(this);
            interceptionContext.Setup(x => x.InvokeNextAsync())
            .Returns(Task.FromResult(CommandHandlingResult.Fail(TimeSpan.Zero)));
            var result = await messageCancellationCommandInterceptor.InterceptAsync(interceptionContext.Object);

            Assert.False(result.Retry);
        }