public async Task TestSendAsync() { var target = new ThreadNameExtractingTestTarget(); var channel = new DirectChannel(provider.GetService <IApplicationContext>()); channel.Subscribe(target); var message = Message.Create("test"); Assert.True(await channel.SendAsync(message)); }
public async Task TestWaitToWriteAsync() { var provider = services.BuildServiceProvider(); var target = new ThreadNameExtractingTestTarget(); var channel = new DirectChannel(provider.GetService <IApplicationContext>()); channel.Subscribe(target); Assert.True(await channel.Writer.WaitToWriteAsync()); channel.Unsubscribe(target); Assert.False(await channel.Writer.WaitToWriteAsync()); }
public void testSend() { DirectChannel channel = new DirectChannel(); ThreadNameExtractingTestTarget target = new ThreadNameExtractingTestTarget(); channel.Subscribe(target); StringMessage message = new StringMessage("test"); Assert.IsTrue(channel.Send(message)); Assert.That(target.ThreadName, Is.EqualTo(Thread.CurrentThread.Name)); }
public void TestSend() { var target = new ThreadNameExtractingTestTarget(); var channel = new DirectChannel(provider.GetService <IApplicationContext>()); channel.Subscribe(target); var message = Message.Create("test"); var currentId = Task.CurrentId; var curThreadId = Thread.CurrentThread.ManagedThreadId; Assert.True(channel.Send(message)); Assert.Equal(currentId, target.TaskId); Assert.Equal(curThreadId, target.ThreadId); }
public async Task TestWaitToWriteAsync() { var services = new ServiceCollection(); services.AddSingleton <IIntegrationServices, IntegrationServices>(); var provider = services.BuildServiceProvider(); var target = new ThreadNameExtractingTestTarget(); var channel = new DirectChannel(provider); channel.Subscribe(target); Assert.True(await channel.Writer.WaitToWriteAsync()); channel.Unsubscribe(target); Assert.False(await channel.Writer.WaitToWriteAsync()); }
public async Task TestSendAsync() { var services = new ServiceCollection(); services.AddSingleton <IIntegrationServices, IntegrationServices>(); var provider = services.BuildServiceProvider(); var target = new ThreadNameExtractingTestTarget(); var channel = new DirectChannel(provider); channel.Subscribe(target); var message = new GenericMessage("test"); Assert.True(await channel.SendAsync(message)); }
public void TestSendInSeparateThread() { var latch = new CountdownEvent(1); var channel = new DirectChannel(provider.GetService <IApplicationContext>()); var target = new ThreadNameExtractingTestTarget(latch); channel.Subscribe(target); var message = Message.Create("test"); var thread = new Thread(() => channel.Send(message)); thread.Name = "test-thread"; thread.Start(); latch.Wait(1000); Assert.Equal("test-thread", target.ThreadName); }
public async Task TestWriteAsync() { var provider = services.BuildServiceProvider(); var target = new ThreadNameExtractingTestTarget(); var channel = new DirectChannel(provider.GetService <IApplicationContext>()); channel.Subscribe(target); var message = Message.Create("test"); var currentId = Task.CurrentId; var curThreadId = Thread.CurrentThread.ManagedThreadId; await channel.Writer.WriteAsync(message); Assert.Equal(currentId, target.TaskId); Assert.Equal(curThreadId, target.ThreadId); }
public void testSendInSeparateThread() { CountDownLatch latch = new CountDownLatch(1); DirectChannel channel = new DirectChannel(); ThreadNameExtractingTestTarget target = new ThreadNameExtractingTestTarget(latch); channel.Subscribe(target); StringMessage message = new StringMessage("test"); Thread t = new Thread(new ThreadStart(delegate { channel.Send(message); })); t.Name = "test-thread"; t.Start(); latch.Await(new TimeSpan(0, 0, 0, 0, 1000)); Assert.That(target.ThreadName, Is.EqualTo("test-thread")); }
public void TestTryWrite() { var services = new ServiceCollection(); services.AddSingleton <IIntegrationServices, IntegrationServices>(); var provider = services.BuildServiceProvider(); var target = new ThreadNameExtractingTestTarget(); var channel = new DirectChannel(provider); channel.Subscribe(target); var message = new GenericMessage("test"); var currentId = Task.CurrentId; var curThreadId = Thread.CurrentThread.ManagedThreadId; Assert.True(channel.Writer.TryWrite(message)); Assert.Equal(currentId, target.TaskId); Assert.Equal(curThreadId, target.ThreadId); }
public void TestSendInSeparateThread() { var services = new ServiceCollection(); services.AddSingleton <IIntegrationServices, IntegrationServices>(); var provider = services.BuildServiceProvider(); var latch = new CountdownEvent(1); var channel = new DirectChannel(provider); var target = new ThreadNameExtractingTestTarget(latch); channel.Subscribe(target); var message = new GenericMessage("test"); var thread = new Thread(() => channel.Send(message)); thread.Name = "test-thread"; thread.Start(); latch.Wait(1000); Assert.Equal("test-thread", target.ThreadName); }