/// ----------------------------------------------------------------------------- /// <summary> /// Initialise les différents serveurs pour le test /// </summary> /// <typeparam name="T">le protocole à utiliser</typeparam> /// <param name="port">le port de base pour le remoting</param> /// <param name="server">le serveur (tunnel)</param> /// <param name="client">le client (tunnel)</param> /// <param name="echo">le serveur d'echo</param> /// <param name="gw">la passerelle</param> /// ----------------------------------------------------------------------------- private void Initialize <T>(int port, out BdtServer server, out BdtClient client, out EchoServer echo, out GatewayServer gw) where T : GenericProtocol { Assert.AreEqual(ChannelServices.RegisteredChannels.Length, 0); var config = new TestConfigPackage(typeof(T).FullName, port); server = new TestServer(TestContext, config); client = new TestClient(TestContext, config); var args = new String[] { }; server.LoadConfiguration(args); client.LoadConfiguration(args); Tunnel.Configuration = server.Configuration; Tunnel.Logger = LoggedObject.GlobalLogger; server.Protocol.ConfigureServer(typeof(Tunnel)); client.StartClient(); Assert.AreEqual(ChannelServices.RegisteredChannels.Length, 2); echo = new EchoServer(port + EchoOffset, false); Servers.Add(echo); gw = new GatewayServer(port + GatewayOffset, false, port + EchoOffset, "localhost", client.Tunnel, client.Sid); Servers.Add(gw); }
/// ----------------------------------------------------------------------------- /// <summary> /// Destruction des entités de test /// </summary> /// <param name="server">le serveur (tunnel)</param> /// <param name="client">le client (tunnel)</param> /// <param name="echo">le serveur d'echo</param> /// <param name="gw">la passerelle</param> /// ----------------------------------------------------------------------------- private void Finalize(ref BdtServer server, ref BdtClient client, ref EchoServer echo, ref GatewayServer gw) { Assert.AreEqual(ChannelServices.RegisteredChannels.Length, 2); client.StopClient(); Tunnel.DisableChecking(); server.Protocol.UnConfigureServer(); server.UnLoadConfiguration(); client.UnLoadConfiguration(); server = null; client = null; Assert.AreEqual(ChannelServices.RegisteredChannels.Length, 0); echo.CloseServer(); Servers.Remove(echo); echo = null; gw.CloseServer(); Servers.Remove(gw); gw = null; }
/// ----------------------------------------------------------------------------- /// <summary> /// Test de suppression de sessions et connexions /// </summary> /// <param name="client">Le client du tunnel</param> /// <param name="port">Le port de base</param> /// ----------------------------------------------------------------------------- private static void TestKill(BdtClient client, int port) { // Create valid session var lambdaloginr = client.Tunnel.Login(new LoginRequest(TestConfigPackage.UserLambdaLogin, TestConfigPackage.UserLambdaPassword)); Assert.IsTrue(lambdaloginr.Success); // Create valid connection var conr = client.Tunnel.Connect(new ConnectRequest(lambdaloginr.Sid, "localhost", port + GatewayOffset)); Assert.IsTrue(conr.Success); Assert.IsTrue(conr.Connected); // Kill connection var killcr = client.Tunnel.KillConnection(new KillConnectionRequest(lambdaloginr.Sid, client.Sid, conr.Cid)); Assert.IsTrue(killcr.Success); Assert.IsFalse(killcr.Connected); Assert.IsFalse(killcr.DataAvailable); // Monitor connection var monr = client.Tunnel.Monitor(new SessionContextRequest(client.Sid)); Assert.IsTrue(monr.Success); Assert.AreEqual(0, (from s in monr.Sessions where s.Sid == lambdaloginr.Sid.ToString("x") select s).First().Connections.Length, "Connection is not killed"); // Kill session var killsr = client.Tunnel.KillSession(new KillSessionRequest(lambdaloginr.Sid, client.Sid)); Assert.IsTrue(killsr.Success); // Monitor session monr = client.Tunnel.Monitor(new SessionContextRequest(client.Sid)); Assert.IsTrue(monr.Success); Assert.AreEqual(0, (from s in monr.Sessions where s.Sid == lambdaloginr.Sid.ToString("x") select s).Count(), "Session is not killed"); }
public MainComponent(BdtClient client) { _client = client; InitializeComponent(); }
/// ----------------------------------------------------------------------------- /// <summary> /// Test de valeurs incorrectes /// </summary> /// <param name="client">Le client du tunnel</param> /// <param name="port">Le port de base</param> /// ----------------------------------------------------------------------------- private static void TestBadValues(BdtClient client, int port) { // Test Login method with bad values - access denied var bloginr = client.Tunnel.Login(new LoginRequest("foo", "foo")); Assert.IsFalse(bloginr.Success); Assert.IsTrue(bloginr.Message.Contains(String.Format(Server.Resources.Strings.ACCESS_DENIED, "foo")), "Deny access to non-user"); // Test Login method with bad values - access denied (disabled) bloginr = client.Tunnel.Login(new LoginRequest(TestConfigPackage.UserDisabledLogin, TestConfigPackage.UserDisabledPassword)); Assert.IsFalse(bloginr.Success); Assert.IsTrue(bloginr.Message.Contains(String.Format(Server.Resources.Strings.ACCESS_DENIED, TestConfigPackage.UserDisabledLogin)), "Deny access to disabled-user"); // Test Login method with bad values - access denied (bad password) bloginr = client.Tunnel.Login(new LoginRequest(TestConfigPackage.UserLambdaLogin, "foo")); Assert.IsFalse(bloginr.Success); Assert.IsTrue(bloginr.Message.Contains(String.Format(Server.Resources.Strings.ACCESS_DENIED_BAD_PASSWORD, TestConfigPackage.UserLambdaLogin)), "Deny access - bad password"); // Test logout method with bad values (bad sid) var blogoutr = client.Tunnel.Logout(new SessionContextRequest(-1)); Assert.IsFalse(bloginr.Success); Assert.IsTrue(blogoutr.Message.Contains(Server.Resources.Strings.SID_NOT_FOUND), "Sid Logout"); // Test monitor method with bad values (bad sid) var bmonr = client.Tunnel.Monitor(new SessionContextRequest(-1)); Assert.IsFalse(bmonr.Success); Assert.IsTrue(bmonr.Message.Contains(Server.Resources.Strings.SID_NOT_FOUND), "Sid Monitor"); Assert.IsNull(bmonr.Sessions); // Create valid session var lambdaloginr = client.Tunnel.Login(new LoginRequest(TestConfigPackage.UserLambdaLogin, TestConfigPackage.UserLambdaPassword)); Assert.IsTrue(lambdaloginr.Success); // Test monitor method with bad values (admin privileges required) bmonr = client.Tunnel.Monitor(new SessionContextRequest(lambdaloginr.Sid)); Assert.IsFalse(bmonr.Success); Assert.IsTrue(bmonr.Message.Contains(Server.Resources.Strings.ADMIN_REQUIRED), "Deny Monitor to non-admin user"); Assert.IsNull(bmonr.Sessions); // Test killsession method with bad values (admin privileges required) var killsr = client.Tunnel.KillSession(new KillSessionRequest(lambdaloginr.Sid, lambdaloginr.Sid)); Assert.IsFalse(killsr.Success); Assert.IsTrue(killsr.Message.Contains(Server.Resources.Strings.ADMIN_REQUIRED), "Deny KillSession to non-admin user"); // Test killsession method with bad values (bad sid) killsr = client.Tunnel.KillSession(new KillSessionRequest(-1, -1)); Assert.IsFalse(killsr.Success); Assert.IsTrue(killsr.Message.Contains(Server.Resources.Strings.SID_NOT_FOUND), "Sid KillSession"); // Test killconnection method with bad values (bad cid) var killcr = client.Tunnel.KillConnection(new KillConnectionRequest(lambdaloginr.Sid, lambdaloginr.Sid, -1)); Assert.IsFalse(killcr.Success); Assert.IsTrue(killcr.Message.Contains(Server.Resources.Strings.CID_NOT_FOUND), "Cid KillConnection"); // Test killconnection method with bad values (bad sid) killcr = client.Tunnel.KillConnection(new KillConnectionRequest(-1, -1, -1)); Assert.IsFalse(killcr.Success); Assert.IsTrue(killcr.Message.Contains(Server.Resources.Strings.SID_NOT_FOUND), "Sid KillConnection"); // Test connect method with bad values (unknown host) var conr = client.Tunnel.Connect(new ConnectRequest(lambdaloginr.Sid, "host.unknown", port + GatewayOffset)); Assert.IsFalse(conr.Success); Assert.IsFalse(conr.Connected); // Test connect method with bad values (port not listening) conr = client.Tunnel.Connect(new ConnectRequest(lambdaloginr.Sid, "localhost", 1)); Assert.IsFalse(conr.Success); Assert.IsFalse(conr.Connected); // Create valid connection conr = client.Tunnel.Connect(new ConnectRequest(lambdaloginr.Sid, "localhost", port + GatewayOffset)); Assert.IsTrue(conr.Success); Assert.IsTrue(conr.Connected); // Test killconnection method with bad values (admin privileges required) killcr = client.Tunnel.KillConnection(new KillConnectionRequest(lambdaloginr.Sid, lambdaloginr.Sid, conr.Cid)); Assert.IsFalse(killcr.Success); Assert.IsTrue(killcr.Message.Contains(Server.Resources.Strings.ADMIN_REQUIRED), "Deny KillConnection to non-admin user"); // Dispose valid connection var disr = client.Tunnel.Disconnect(new ConnectionContextRequest(lambdaloginr.Sid, conr.Cid)); Assert.IsTrue(disr.Success); Assert.IsFalse(disr.Connected); // Dispose valid session MinimalResponse lambdalogoutr = client.Tunnel.Logout(new SessionContextRequest(lambdaloginr.Sid)); Assert.IsTrue(lambdalogoutr.Success); }