pub mod country_region;
pub mod models;
pub mod user_auth_data_relation;
use crate::{
core::config::Config,
service::mdm::{
country_region::CountryRegionService, user_auth_data_relation::UserAuthDataRelationService,
},
};
pub struct MdmService {
pub country_region: CountryRegionService,
pub user_auth_data_relation: UserAuthDataRelationService,
}
impl MdmService {
pub fn new(config: Config) -> Self {
Self {
country_region: CountryRegionService::new(config.clone()),
user_auth_data_relation: UserAuthDataRelationService::new(config),
}
}
}
#[cfg(test)]
#[allow(unused_variables, unused_unsafe)]
mod tests {
use super::*;
use crate::core::config::Config;
fn create_test_config() -> Config {
Config::default()
}
#[test]
fn test_mdm_service_creation() {
let config = create_test_config();
let mdm_service = MdmService::new(config);
}
#[test]
fn test_mdm_service_debug_trait() {
let config = create_test_config();
let mdm_service = MdmService::new(config);
}
#[test]
fn test_mdm_service_with_different_configs() {
let configs = vec![
Config::builder()
.app_id("app1")
.app_secret("secret1")
.build(),
Config::builder()
.app_id("app2")
.app_secret("secret2")
.req_timeout(std::time::Duration::from_millis(5000))
.build(),
Config::builder()
.app_id("app3")
.app_secret("secret3")
.base_url("https://custom.api.com")
.build(),
];
for config in configs {
let mdm_service = MdmService::new(config);
}
}
#[test]
fn test_mdm_service_module_independence() {
let config = create_test_config();
let mdm_service = MdmService::new(config);
let country_ptr = std::ptr::addr_of!(mdm_service.country_region) as *const _;
let user_auth_ptr = std::ptr::addr_of!(mdm_service.user_auth_data_relation) as *const _;
assert_ne!(country_ptr, user_auth_ptr);
}
}