Split documentation into three folders: Architecture, Testing and Installation. Rework and expand architecture.md alongside interfaces.md Split all parts to do with testing from Architecture md's into Test md's Add parameter to ExamResultGenerator node documentation
2.3 KiB
Unit Tests
Unit tests for ConfigManager are implemented in src/g2_2025_grade_calculator_pkg/test/ConfigManager.test.cpp using Google Test and ROS2 test utilities. The tests use temporary TOML files to validate configuration loading and parsing functionality.
Test Cases
1. ConstructorTest
Description: Verifies that ConfigManager can be created with a ROS2 logger without crashing.
- Test Action: Create ConfigManager instance with ROS2 logger
- Expected Result: Instance created successfully without exceptions
2. LoadValidConfigTest
Description: Tests loading of valid TOML configuration files with proper parsing.
- Test Action:
- Create temporary TOML file with valid configuration
- Call
load_config()with file path
- Expected Result:
- Returns
true is_loaded()returnstrue
- Returns
3. LoadInvalidFileTest
Description: Tests error handling when attempting to load non-existent configuration files.
- Test Action: Call
load_config()with non-existent file path - Expected Result:
- Returns
false is_loaded()returnsfalse
- Returns
4. DatabaseConfigParsingTest
Description: Tests complete database configuration parsing with all parameters.
- Test Configuration:
[database] host = "test_host" port = 1234 dbname = "test_db" user = "test_user" password = "test_password" timeout = 60 ssl = true [database.pool] min_connections = 2 max_connections = 20 - Expected Result: All configuration values parsed correctly with proper types
5. DatabaseConfigWithoutPoolTest
Description: Tests default values when optional pool section is missing from configuration.
- Test Configuration:
[database] host = "localhost" port = 5432 dbname = "grades" user = "postgres" password = "postgres" - Expected Result:
- Main database config parsed correctly
- Default pool values:
min_connections = 1,max_connections = 10
6. GetConfigWithoutLoadingTest
Description: Tests behavior when attempting to access configuration before loading any file.
- Test Action: Call
get_database_config()without loading configuration - Expected Result:
- Returns
std::nullopt is_loaded()returnsfalse
- Returns