Beispiel #1
0
        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);
        }