cfgmatic-source 5.0.1

Configuration sources (file, env, memory) for cfgmatic framework
Documentation
//! Tests for [`MemorySource`].
//!
//! Test coverage:
//! - Source creation
//! - Content loading
//! - Metadata handling
//! - Trait implementation

use cfgmatic_source::prelude::*;

#[test]
fn test_memory_source_creation() {
    // Arrange & Act
    let source = MemorySource::new();

    // Assert
    assert!(source.metadata().name == "memory");
}

#[test]
fn test_memory_source_load_returns_content() {
    // Arrange
    let value = serde_json::json!({
        "name": "test",
        "value": 42
    });
    let source = MemorySource::from_json(value);

    // Act
    let raw = source
        .load_raw()
        .expect("Failed to load from memory source");

    // Assert
    let content = raw.as_str().expect("Failed to get string");
    assert!(!content.is_empty());
    assert_eq!(source.detect_format(), Some(Format::Json));
}

#[test]
fn test_memory_source_metadata() {
    // Arrange
    let source = MemorySource::builder().name("test-source").build();

    // Act
    let metadata = source.metadata();

    // Assert
    assert_eq!(source.kind(), SourceKind::Memory);
    assert_eq!(metadata.name, "test-source");
}