configbuilder-pattern-builder 0.1.0

configbuilder-pattern: builder domain (ConfigBuilder/BuilderFinalizer), trait contract + tech-agnostic reference implementation.
Documentation
//! Integration test for `ApplicationConfig`, exercising its `serde::Deserialize`
//! derive through the public API.

use configbuilder_pattern_builder::ApplicationConfig;

fn must<T, E>(result: Result<T, E>) -> T {
    result.unwrap_or_else(|_| std::process::abort())
}

/// @covers: ApplicationConfig
#[test]
fn test_application_config_deserializes_from_real_toml() {
    let raw = "config_dir = \"/etc/my-app\"";
    let cfg: ApplicationConfig = must(toml::from_str(raw));
    assert_eq!(cfg.config_dir.as_deref(), Some("/etc/my-app"));
}

/// @covers: ApplicationConfig
#[test]
fn test_application_config_defaults_when_empty() {
    let cfg: ApplicationConfig = must(toml::from_str(""));
    assert!(cfg.config_dir.is_none());
}