public void TestTransportServerEvent() { ICodec <TestEvent> codec = new TestEventCodec(); BlockingCollection <TestEvent> queue = new BlockingCollection <TestEvent>(); List <TestEvent> events = new List <TestEvent>(); IPEndPoint endpoint = new IPEndPoint(_localIpAddress, 0); var remoteHandler = Observer.Create <TransportEvent <TestEvent> >(tEvent => queue.Add(tEvent.Data)); using (var server = new TransportServer <TestEvent>(endpoint, remoteHandler, codec, _tcpPortProvider)) { server.Run(); IPEndPoint remoteEndpoint = new IPEndPoint(_localIpAddress, server.LocalEndpoint.Port); using (var client = new TransportClient <TestEvent>(remoteEndpoint, codec)) { client.Send(new TestEvent("Hello")); client.Send(new TestEvent(", ")); client.Send(new TestEvent("World!")); events.Add(queue.Take()); events.Add(queue.Take()); events.Add(queue.Take()); } } Assert.Equal(3, events.Count); Assert.Equal(events[0].Message, "Hello"); Assert.Equal(events[1].Message, ", "); Assert.Equal(events[2].Message, "World!"); }
public void TestTransportServerEvent() { ICodec <TestEvent> codec = new TestEventCodec(); int port = NetworkUtils.GenerateRandomPort(6000, 7000); BlockingCollection <TestEvent> queue = new BlockingCollection <TestEvent>(); List <TestEvent> events = new List <TestEvent>(); IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, port); var remoteHandler = Observer.Create <TransportEvent <TestEvent> >(tEvent => queue.Add(tEvent.Data)); using (var server = new TransportServer <TestEvent>(endpoint, remoteHandler, codec)) { server.Run(); IPEndPoint remoteEndpoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), port); using (var client = new TransportClient <TestEvent>(remoteEndpoint, codec)) { client.Send(new TestEvent("Hello")); client.Send(new TestEvent(", ")); client.Send(new TestEvent("World!")); events.Add(queue.Take()); events.Add(queue.Take()); events.Add(queue.Take()); } } Assert.AreEqual(3, events.Count); }