Files
nano_metrics/agent/tests/config_test.rs
T
2026-05-31 14:01:28 +02:00

79 lines
1.7 KiB
Rust

use std::io::Write;
use tempfile::NamedTempFile;
#[test]
fn test_config_parse_complet() {
let mut f = NamedTempFile::new().unwrap();
write!(f, r#"
[server]
ip = "10.0.0.82"
port = 9999
[protocols.udp]
enabled = true
[protocols.mqtt]
enabled = true
host = "10.0.0.3"
port = 1883
topic_base = "nanometrics/agents"
auto_discovery = true
birth_message = true
last_will = true
[metrics.cpu]
udp = true
mqtt = false
"#).unwrap();
let cfg = nanometrics_agent::config::load(f.path()).unwrap();
assert_eq!(cfg.server.ip, "10.0.0.82");
assert_eq!(cfg.server.port, 9999);
assert!(cfg.protocols.udp.enabled);
assert!(cfg.protocols.mqtt.enabled);
assert_eq!(cfg.protocols.mqtt.host, "10.0.0.3");
assert!(cfg.metrics.cpu.udp);
assert!(!cfg.metrics.cpu.mqtt);
}
#[test]
fn test_config_mqtt_absent() {
let mut f = NamedTempFile::new().unwrap();
write!(f, r#"
[server]
ip = "10.0.0.82"
port = 9999
[protocols.udp]
enabled = true
[protocols.mqtt]
enabled = false
"#).unwrap();
let cfg = nanometrics_agent::config::load(f.path()).unwrap();
assert!(!cfg.protocols.mqtt.enabled);
// Les valeurs par défaut MQTT doivent être définies
assert_eq!(cfg.protocols.mqtt.host, "10.0.0.3");
assert_eq!(cfg.protocols.mqtt.port, 1883);
assert_eq!(cfg.protocols.mqtt.topic_base, "nanometrics/agents");
}
#[test]
fn test_config_metrics_par_defaut() {
let mut f = NamedTempFile::new().unwrap();
write!(f, r#"
[server]
ip = "10.0.0.1"
port = 9999
[protocols.udp]
enabled = true
[protocols.mqtt]
enabled = false
"#).unwrap();
let cfg = nanometrics_agent::config::load(f.path()).unwrap();
// Metrics absentes => false par défaut
assert!(!cfg.metrics.cpu.udp);
assert!(!cfg.metrics.disk.mqtt);
}