private void btn_start_Click(object sender, RoutedEventArgs e) { if (cb_selectServer.SelectedIndex != -1) { cb_selectServer.IsEnabled = false; //lock buttons btn_start.IsEnabled = false; btn_stop.IsEnabled = false; switch ((servers[cb_selectServer.SelectedIndex]).mode) { case 1: socksServer = new SocksServer((ushort)(servers[cb_selectServer.SelectedIndex]).localPort); socksServer.Start((servers[cb_selectServer.SelectedIndex]).host, (servers[cb_selectServer.SelectedIndex]).port, (servers[cb_selectServer.SelectedIndex]).password); break; } } }
public void Disposing_should_dispose_all_open_connections() { var listener = new TcpListener(new IPEndPoint(IPAddress.Loopback, 0), new NullLoggerFactory()); var connectionsBlock = new BufferBlock <ISocksConnection>(); var connectionBatchBlock = new BatchBlock <ISocksConnection>(2); connectionsBlock.LinkTo(connectionBatchBlock); var connectionFactory = A.Fake <ISocksConnectionFactory>(); A.CallTo(() => connectionFactory.Create(null)) .WithAnyArguments() .ReturnsLazily( () => { var connection = A.Fake <ISocksConnection>(); connectionsBlock.Post(connection); return(connection); }); ISocksConnection[] connections; using (var server = new SocksServer(listener, connectionFactory, new NullLoggerFactory())) { server.Start(); var client1 = new TcpClient(); client1.Connect( ((IPEndPoint)listener.ListenEndPoint).Address, ((IPEndPoint)listener.ListenEndPoint).Port); var client2 = new TcpClient(); client2.Connect( ((IPEndPoint)listener.ListenEndPoint).Address, ((IPEndPoint)listener.ListenEndPoint).Port); connections = connectionBatchBlock.Receive(); } foreach (var connection in connections) { A.CallTo(() => connection.Dispose()).MustHaveHappened(); } }