From 92e02f6e331224c58e1e11c29dfdefc1b7ec3b08 Mon Sep 17 00:00:00 2001 From: Stefan Sterz Date: Fri, 21 Jul 2023 16:34:02 +0200 Subject: [PATCH] ldap: add an integration test for `check_connection` Signed-off-by: Stefan Sterz --- proxmox-ldap/tests/glauth.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/proxmox-ldap/tests/glauth.rs b/proxmox-ldap/tests/glauth.rs index 8c0480ed..88875d20 100644 --- a/proxmox-ldap/tests/glauth.rs +++ b/proxmox-ldap/tests/glauth.rs @@ -40,6 +40,11 @@ fn authenticate(con: &Connection, user: &str, pass: &str) -> Result<(), Error> { proxmox_async::runtime::block_on(con.authenticate_user(user, pass)) } +fn check_connection(config: &Config) -> Result<(), Error> { + let connection = Connection::new(config.clone()); + proxmox_async::runtime::block_on(connection.check_connection()) +} + fn default_config() -> Config { Config { servers: vec!["localhost".into()], @@ -164,3 +169,25 @@ fn test_search() -> Result<(), Error> { Ok(()) } + +#[test] +#[ignore] +fn test_check_connection() -> Result<(), Error> { + let _glauth = GlauthServer::new("tests/assets/glauth.cfg")?; + + let mut config = default_config(); + assert!(check_connection(&config).is_ok()); + + config.base_dn = "dc=invalid,dc=com".into(); + assert!(check_connection(&config).is_err()); + config.base_dn = "dc=example,dc=com".into(); + + config.bind_password = Some("invalid".into()); + assert!(check_connection(&config).is_err()); + config.bind_password = Some("password".into()); + + config.bind_password = None; + assert!(check_connection(&config).is_err()); + + Ok(()) +}