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);
        }
示例#2
0
    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);
        }
    }
示例#3
0
    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);
        }
    }
示例#4
0
    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));
        }
示例#7
0
 public ChannelInterceptorTest()
 {
     channel        = new TaskSchedulerSubscribableChannel();
     messageHandler = new TestMessageHandler();
     channel.Subscribe(messageHandler);
 }