public async Task SendAndReceiveAsync() { var channel = new TaskSchedulerSubscribableChannel(TaskScheduler.Default); channel.Subscribe(new SendAndReceiveTestHandler()); var actual = await Template.ConvertSendAndReceiveAsync <string>(channel, "request"); Assert.Equal("response", actual); }
public async ValueTask TaskSchedulerSubscribableChannel_WriteAsync_10_000_000() { var channel = new TaskSchedulerSubscribableChannel(); var handler = new CounterHandler(); channel.Subscribe(handler); var message = Message.Create("test"); for (var i = 0; i < 10_000_000; i++) { await channel.Writer.WriteAsync(message); } }
public void TaskSchedulerSubscribableChannel_Send_10_000_000() { var channel = new TaskSchedulerSubscribableChannel(); var handler = new CounterHandler(); channel.Subscribe(handler); var message = Message.Create("test"); for (var i = 0; i < 10_000_000; i++) { channel.Send(message); } }
public void TaskSchedulerSubscribableChannel_Send_10_000_000() { var channel = new TaskSchedulerSubscribableChannel(); var handler = new CounterHandler(); channel.Subscribe(handler); GenericMessage message = new GenericMessage("test"); for (int i = 0; i < 10_000_000; i++) { channel.Send(message); } }
public void SendWithScheduler() { 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); testChannel.Send(_message); Assert.True(scheduler.WasTaskScheduled); mock.Verify(h => h.HandleMessage(_message)); Assert.Equal(1, interceptor.Counter); Assert.True(interceptor.WasAfterHandledInvoked); }
public async ValueTask WriteAsyncNoInterceptors() { var mock = new Mock <IMessageHandler>(); _handler = mock.Object; _channel.Subscribe(_handler); await _channel.Writer.WriteAsync(_message); mock.Verify(h => h.HandleMessage(_message)); }
public ChannelInterceptorTest() { channel = new TaskSchedulerSubscribableChannel(); messageHandler = new TestMessageHandler(); channel.Subscribe(messageHandler); }