//! Config parsing unit scaffolding using mock sources. #[path = "../support/mod.rs"] mod support; mod helpers; use helpers::*; use niom_turn::config::Config; use support::mocks; #[test] fn config_source_mock_serves_payload() { let mut source = mocks::MockConfigSource::new(); source .expect_load() .returning(|| Ok(minimal_config_json())); let body = source.load().expect("config payload"); assert!(body.contains("niom-turn.test")); } #[test] fn parsing_minimal_config_populates_defaults() { let json = minimal_config_json(); let cfg: Config = serde_json::from_str(&json).expect("config parse"); assert_eq!(cfg.server.bind, "127.0.0.1:0"); assert_eq!(cfg.auth.realm, "niom-turn.test"); assert_eq!(cfg.auth.nonce_ttl_seconds, 300); } #[test] fn malformed_config_fails_to_parse() { let json = malformed_config_json(); let parsed: Result = serde_json::from_str(&json); assert!(parsed.is_err()); }