feat(configmanager): add ConfigFileService with tests

Add config file loading and saving service following TDD approach:
- IConfigFileService interface for loading/saving config files
- ConfigLoadException for descriptive error handling
- ConfigFileService implementation with JSON serialization
- Unit tests with mocked IFileSystem dependency
This commit is contained in:
Joseph Doherty
2026-01-19 17:38:20 -05:00
parent 4335286560
commit 54620ccb2e
4 changed files with 158 additions and 0 deletions
@@ -0,0 +1,14 @@
using JdeScoping.ConfigManager.Models;
namespace JdeScoping.ConfigManager.Services;
/// <summary>
/// Service for loading and saving configuration files.
/// </summary>
public interface IConfigFileService
{
Task<ConfigModel> LoadAppSettingsAsync(string path, CancellationToken ct = default);
Task<PipelinesConfigModel> LoadPipelinesAsync(string path, CancellationToken ct = default);
Task SaveAppSettingsAsync(string path, ConfigModel config, CancellationToken ct = default);
Task SavePipelinesAsync(string path, PipelinesConfigModel config, CancellationToken ct = default);
}