public async ValueTask TestSendAsyncOneHandler_10_000_000() { var services = new ServiceCollection(); services.AddSingleton <IIntegrationServices, IntegrationServices>(); var provider = services.BuildServiceProvider(); var handler = new CounterHandler(); var channel = new PublishSubscribeChannel(provider); channel.Subscribe(handler); var message = new GenericMessage("test"); Assert.True(await channel.SendAsync(message)); for (var i = 0; i < 10000000; i++) { await channel.SendAsync(message); } Assert.Equal(10000001, handler.Count); }
public async ValueTask TestSendAsync() { var services = new ServiceCollection(); services.AddSingleton <IIntegrationServices, IntegrationServices>(); var provider = services.BuildServiceProvider(); var handler = new CounterHandler(); var channel = new PublishSubscribeChannel(provider.GetService <IApplicationContext>()); channel.Subscribe(handler); var message = Message.Create("test"); Assert.True(await channel.SendAsync(message)); Assert.Equal(1, handler.Count); }
public async ValueTask TestSendAsyncTwoHandler_10_000_000() { var services = new ServiceCollection(); services.AddSingleton <IIntegrationServices, IntegrationServices>(); var provider = services.BuildServiceProvider(); var handler1 = new CounterHandler(); var handler2 = new CounterHandler(); var channel = new PublishSubscribeChannel(provider.GetService <IApplicationContext>()); channel.Subscribe(handler1); channel.Subscribe(handler2); var message = Message.Create("test"); for (var i = 0; i < 10000000; i++) { await channel.SendAsync(message); } Assert.Equal(10000000, handler1.Count); Assert.Equal(10000000, handler2.Count); }