Example #1
0
        public static Task <TMessage> Intercept <TMessage>(this IWebhostFixture fixture)
        {
            var messageCompletionSource = new TaskCompletionSource <TMessage>();

            fixture.Intercept <TMessage>(message => messageCompletionSource.TrySetResult(message));
            return(messageCompletionSource.Task);
        }
Example #2
0
 public static Task Intercept <TMessage>(this IWebhostFixture fixture, Action <TMessage> interceptor)
 {
     return(fixture.Intercept <TMessage>((message, token) =>
     {
         interceptor(message);
         return Task.CompletedTask;
     }));
 }
Example #3
0
        public static Task Intercept <TIncomming, TOutgoing>(this IWebhostFixture fixture, Func <TIncomming, CancellationToken, Task <TOutgoing> > interceptor)
        {
            var publisher = fixture.GetService <IMessagePublisher>();

            return(fixture.Intercept <TIncomming>(async(incomming, token) =>
            {
                var outgoing = await interceptor(incomming, token);
                await publisher.PublishAsync(outgoing, token);
            }));
        }