public async ValueTask WriteAsyncWithScheduler() { var mock = new Mock <IMessageHandler>(); _handler = mock.Object; var interceptor = new BeforeHandleInterceptor(); var scheduler = new TestScheduler(); var testChannel = new TaskSchedulerSubscribableChannel(scheduler); testChannel.AddInterceptor(interceptor); testChannel.Subscribe(_handler); await testChannel.Writer.WriteAsync(_message); Assert.True(scheduler.WasTaskScheduled); mock.Verify(h => h.HandleMessage(_message)); Assert.Equal(1, interceptor.Counter); Assert.True(interceptor.WasAfterHandledInvoked); }
public void PreSendInterceptorReturningModifiedMessage() { var expected = new Mock <IMessage>().Object; var interceptor = new PreSendInterceptor { MessageToReturn = expected }; channel.AddInterceptor(interceptor); channel.Send(MessageBuilder.WithPayload("test").Build()); Assert.Single(messageHandler.Messages); var result = messageHandler.Messages[0]; Assert.NotNull(result); Assert.Same(expected, result); Assert.True(interceptor.WasAfterCompletionInvoked); }