79 lines
1.7 KiB
Rust
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);
|
|
}
|