Ejemplo n.º 1
0
        public void Wait_for_accept()
        {
            using (Udt.SocketPoller poller = new Udt.SocketPoller())
                using (Udt.Socket socket = new Udt.Socket(AddressFamily.InterNetwork, SocketType.Stream))
                {
                    socket.Bind(IPAddress.Loopback, 0);
                    socket.Listen(100);
                    ManualResetEvent doneEvent = new ManualResetEvent(false);

                    poller.AddSocket(socket);

                    Task.Factory.StartNew(() =>
                    {
                        using (Udt.Socket client = new Udt.Socket(AddressFamily.InterNetwork, SocketType.Stream))
                        {
                            client.Connect(IPAddress.Loopback, socket.LocalEndPoint.Port);
                            doneEvent.WaitOne(1000);
                        }
                    });

                    Assert.IsTrue(poller.Wait(TimeSpan.FromSeconds(1)));
                    CollectionAssert.AreEqual(new[] { socket }, poller.WriteSockets);
                    CollectionAssert.AreEqual(new[] { socket }, poller.ReadSockets);

                    Udt.Socket acceptedSocket = socket.Accept();
                    acceptedSocket.Dispose();
                    doneEvent.Set();

                    Assert.IsTrue(poller.Wait(TimeSpan.Zero));
                    CollectionAssert.AreEqual(new[] { socket }, poller.WriteSockets);
                    CollectionAssert.IsEmpty(poller.ReadSockets);
                }
        }
Ejemplo n.º 2
0
 public void Wait_with_no_sockets()
 {
     using (Udt.SocketPoller poller = new Udt.SocketPoller())
     {
         Assert.Throws <InvalidOperationException>(() => poller.Wait());
     }
 }
Ejemplo n.º 3
0
        public void Wait_for_accept()
        {
            using (Udt.SocketPoller poller = new Udt.SocketPoller())
            using (Udt.Socket socket = new Udt.Socket(AddressFamily.InterNetwork, SocketType.Stream))
            {
                socket.Bind(IPAddress.Loopback, 0);
                socket.Listen(100);
                ManualResetEvent doneEvent = new ManualResetEvent(false);

                poller.AddSocket(socket);

                Task.Factory.StartNew(() =>
                {
                    using (Udt.Socket client = new Udt.Socket(AddressFamily.InterNetwork, SocketType.Stream))
                    {
                        client.Connect(IPAddress.Loopback, socket.LocalEndPoint.Port);
                        doneEvent.WaitOne(1000);
                    }
                });

                Assert.IsTrue(poller.Wait(TimeSpan.FromSeconds(1)));
                CollectionAssert.AreEqual(new[] { socket }, poller.WriteSockets);
                CollectionAssert.AreEqual(new[] { socket }, poller.ReadSockets);

                Udt.Socket acceptedSocket = socket.Accept();
                acceptedSocket.Dispose();
                doneEvent.Set();

                Assert.IsTrue(poller.Wait(TimeSpan.Zero));
                CollectionAssert.AreEqual(new[] { socket }, poller.WriteSockets);
                CollectionAssert.IsEmpty(poller.ReadSockets);
            }
        }
Ejemplo n.º 4
0
 public void Add_socket_to_disposed_poller()
 {
     Udt.SocketPoller poller = new Udt.SocketPoller();
     poller.Dispose();
     Udt.Socket socket = new Udt.Socket(AddressFamily.InterNetwork, SocketType.Stream);
     Assert.Throws <ObjectDisposedException>(() => poller.AddSocket(socket));
     socket.Dispose();
 }
Ejemplo n.º 5
0
 public void Add_socket_to_disposed_poller()
 {
     Udt.SocketPoller poller = new Udt.SocketPoller();
     poller.Dispose();
     Udt.Socket socket = new Udt.Socket(AddressFamily.InterNetwork, SocketType.Stream);
     Assert.Throws<ObjectDisposedException>(() => poller.AddSocket(socket));
     socket.Dispose();
 }
Ejemplo n.º 6
0
 public void Add_closed_socket()
 {
     using (Udt.SocketPoller poller = new Udt.SocketPoller())
     {
         Udt.Socket socket = new Udt.Socket(AddressFamily.InterNetwork, SocketType.Stream);
         socket.Dispose();
         Assert.Throws <Udt.SocketException>(() => poller.AddSocket(socket));
     }
 }
Ejemplo n.º 7
0
 public void Constructor()
 {
     Udt.SocketPoller poller = new Udt.SocketPoller();
     CollectionAssert.IsEmpty(poller.ReadSockets);
     CollectionAssert.IsEmpty(poller.WriteSockets);
     poller.Dispose();
     CollectionAssert.IsEmpty(poller.ReadSockets);
     CollectionAssert.IsEmpty(poller.WriteSockets);
 }
Ejemplo n.º 8
0
 public void Constructor()
 {
     Udt.SocketPoller poller = new Udt.SocketPoller();
     CollectionAssert.IsEmpty(poller.ReadSockets);
     CollectionAssert.IsEmpty(poller.WriteSockets);
     poller.Dispose();
     CollectionAssert.IsEmpty(poller.ReadSockets);
     CollectionAssert.IsEmpty(poller.WriteSockets);
 }
Ejemplo n.º 9
0
 public void Add_closed_socket()
 {
     using (Udt.SocketPoller poller = new Udt.SocketPoller())
     {
         Udt.Socket socket = new Udt.Socket(AddressFamily.InterNetwork, SocketType.Stream);
         socket.Dispose();
         Assert.Throws<Udt.SocketException>(() => poller.AddSocket(socket));
     }
 }
Ejemplo n.º 10
0
 public void Remove_closed_socket()
 {
     using (Udt.SocketPoller poller = new Udt.SocketPoller())
     {
         Udt.Socket socket = new Udt.Socket(AddressFamily.InterNetwork, SocketType.Stream);
         poller.AddSocket(socket);
         socket.Dispose();
         poller.RemoveSocket(socket);
     }
 }
Ejemplo n.º 11
0
 public void Remove_closed_socket()
 {
     using (Udt.SocketPoller poller = new Udt.SocketPoller())
     {
         Udt.Socket socket = new Udt.Socket(AddressFamily.InterNetwork, SocketType.Stream);
         poller.AddSocket(socket);
         socket.Dispose();
         poller.RemoveSocket(socket);
     }
 }
Ejemplo n.º 12
0
        public void Remove_socket()
        {
            using (Udt.SocketPoller poller = new Udt.SocketPoller())
                using (Udt.Socket socket = new Udt.Socket(AddressFamily.InterNetwork, SocketType.Stream))
                {
                    socket.Bind(IPAddress.Loopback, 0);
                    socket.Listen(100);
                    ManualResetEvent doneEvent = new ManualResetEvent(false);

                    poller.AddSocket(socket);
                    Assert.IsFalse(poller.Wait(TimeSpan.Zero));
                    poller.RemoveSocket(socket);

                    Assert.Throws <InvalidOperationException>(() => poller.Wait(TimeSpan.Zero));
                }
        }
Ejemplo n.º 13
0
        public void Remove_socket()
        {
            using (Udt.SocketPoller poller = new Udt.SocketPoller())
            using (Udt.Socket socket = new Udt.Socket(AddressFamily.InterNetwork, SocketType.Stream))
            {
                socket.Bind(IPAddress.Loopback, 0);
                socket.Listen(100);
                ManualResetEvent doneEvent = new ManualResetEvent(false);

                poller.AddSocket(socket);
                Assert.IsFalse(poller.Wait(TimeSpan.Zero));
                poller.RemoveSocket(socket);

                Assert.Throws<InvalidOperationException>(() => poller.Wait(TimeSpan.Zero));
            }
        }
Ejemplo n.º 14
0
 public void Wait_when_disposed()
 {
     Udt.SocketPoller poller = new Udt.SocketPoller();
     poller.Dispose();
     Assert.Throws <ObjectDisposedException>(() => poller.Wait());
 }
Ejemplo n.º 15
0
 public void Wait_with_no_sockets()
 {
     using (Udt.SocketPoller poller = new Udt.SocketPoller())
     {
         Assert.Throws<InvalidOperationException>(() => poller.Wait());
     }
 }
Ejemplo n.º 16
0
 public void Wait_when_disposed()
 {
     Udt.SocketPoller poller = new Udt.SocketPoller();
     poller.Dispose();
     Assert.Throws<ObjectDisposedException>(() => poller.Wait());
 }