use rabbitmq_http_client::{
blocking_api::Client,
commons::UserLimitTarget,
password_hashing,
requests::{EnforcedLimitParams, UserParams},
};
use crate::test_helpers::{PASSWORD, USERNAME, endpoint};
#[test]
fn test_blocking_list_all_user_limits() {
let endpoint = endpoint();
let rc = Client::new(&endpoint, USERNAME, PASSWORD);
let salt = password_hashing::salt();
let password_hash =
password_hashing::base64_encoded_salted_password_hash_sha256(&salt, "rust3_t0p_sEkr37");
let params = UserParams {
name: "test_list_all_user_limits",
password_hash: &password_hash,
tags: "management",
};
let result1 = rc.create_user(¶ms);
assert!(result1.is_ok());
let limit = EnforcedLimitParams::new(UserLimitTarget::MaxChannels, 500);
let result2 = rc.set_user_limit(params.name, limit);
assert!(result2.is_ok());
let result3 = rc.list_all_user_limits();
assert!(result3.is_ok());
let vec = result3.unwrap();
assert!(vec.iter().any(|it| it.username == params.name));
let key1 = UserLimitTarget::MaxConnections;
assert!(
!vec.iter()
.any(|it| it.username == params.name && it.limits.get(key1.as_ref()).is_some())
);
let key2 = UserLimitTarget::MaxChannels;
assert!(
vec.iter()
.any(|it| it.username == params.name && it.limits.get(key2.as_ref()).is_some())
);
rc.delete_user(params.name, false).unwrap();
}
#[test]
fn test_blocking_list_user_limits() {
let endpoint = endpoint();
let rc = Client::new(&endpoint, USERNAME, PASSWORD);
let salt = password_hashing::salt();
let password_hash =
password_hashing::base64_encoded_salted_password_hash_sha256(&salt, "rust3_t0p_sEkr37");
let params = UserParams {
name: "test_list_user_limits",
password_hash: &password_hash,
tags: "management",
};
let result1 = rc.create_user(¶ms);
assert!(result1.is_ok());
let limit = EnforcedLimitParams::new(UserLimitTarget::MaxChannels, 500);
let result2 = rc.set_user_limit(params.name, limit);
assert!(result2.is_ok());
let result3 = rc.list_user_limits(params.name);
assert!(result3.is_ok());
let vec = result3.unwrap();
let key1 = UserLimitTarget::MaxChannels;
assert!(
vec.iter()
.any(|it| it.username == params.name && it.limits.get(key1.as_ref()).is_some())
);
let key2 = UserLimitTarget::MaxConnections;
assert!(
!vec.iter()
.any(|it| it.username == params.name && it.limits.get(key2.as_ref()).is_some())
);
rc.delete_user(params.name, false).unwrap();
}