Files
gps-denied-onboard/_docs/03_tests/15_configuration_manager_integration_spec.md
T
Oleksandr Bezdieniezhnykh abc26d5c20 initial structure implemented
docs -> _docs
2025-12-01 14:20:56 +02:00

2.3 KiB

Integration Test: Configuration Manager

Summary

Validate the Configuration Manager responsible for loading, validating, and providing system configuration parameters.

Component Under Test

Component: Configuration Manager Location: gps_denied_16_configuration_manager Dependencies: File system, Environment variables

Detailed Description

Tests that Configuration Manager can:

  1. Load configuration from files (YAML/JSON)
  2. Override with environment variables
  3. Validate configuration parameters
  4. Provide default values
  5. Support configuration hot-reload
  6. Handle invalid configurations gracefully
  7. Manage sensitive data (API keys)

Input Data

Test Case 1: Load Default Configuration

  • File: config/default.yaml
  • Expected: All default parameters loaded

Test Case 2: Environment Variable Override

  • Env: GOOGLE_MAPS_API_KEY=test_key_123
  • Expected: Overrides config file value

Test Case 3: Invalid Configuration

  • File: Invalid YAML syntax
  • Expected: Load fails with clear error

Test Case 4: Missing Required Parameter

  • File: Missing altitude parameter
  • Expected: Validation fails, uses default or errors

Test Case 5: Parameter Validation

  • Config: altitude_m = -100 (invalid)
  • Expected: Validation rejects negative altitude

Test Case 6: Configuration Hot-Reload

  • Scenario: Modify config file while system running
  • Expected: Changes detected and applied

Test Case 7: Sensitive Data Handling

  • Config: API keys, passwords
  • Expected: Not logged, encrypted at rest

Expected Output

{
  "config_loaded": true,
  "config_source": "file|env|default",
  "parameters": {
    "altitude_m": 400,
    "google_maps_zoom": 19,
    "gpu_device_id": 0,
    "processing_timeout_s": 300
  },
  "validation_errors": [],
  "load_time_ms": <float>
}

Success Criteria

  • All test cases load or fail appropriately
  • Validation catches invalid parameters
  • Sensitive data protected
  • Load time < 500ms

Maximum Expected Time

  • Load configuration: < 500ms
  • Validate: < 100ms
  • Hot-reload: < 1 second
  • Total test suite: < 30 seconds

Pass/Fail Criteria

Passes If: All configurations load/validate correctly, overrides work, sensitive data protected Fails If: Invalid configs not detected, sensitive data exposed, overrides don't work