core services and tests
This commit is contained in:
@@ -1,10 +1,85 @@
|
||||
namespace QuantEngine.Core.Tests;
|
||||
namespace QuantEngine.Core.Tests;
|
||||
|
||||
public class UnitTest1
|
||||
{
|
||||
[Fact]
|
||||
public void Test1()
|
||||
public void OperationalReportLoader_ParsesCanonicalTempReport()
|
||||
{
|
||||
var path = Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, "..", "..", "..", "..", "..", "..", "Temp", "operational_report.json"));
|
||||
var report = QuantEngine.Core.Infrastructure.OperationalReportLoader.Load(path);
|
||||
|
||||
Assert.Equal("2026-05-24-operational-report-v1", report.SchemaVersion);
|
||||
Assert.Equal("GatherTradingData.json", report.SourceJson);
|
||||
Assert.Equal(38, report.SectionCount);
|
||||
Assert.True(report.Sections.Count >= 4);
|
||||
Assert.Equal("exec_safety_declaration", report.Sections[0].Name);
|
||||
Assert.Contains("source: .NET operational report builder", report.Sections[0].Preview);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void OperationalReportLoader_ReturnsSafeDefaultsWhenFileIsMissing()
|
||||
{
|
||||
var path = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString("N"), "operational_report.json");
|
||||
var report = QuantEngine.Core.Infrastructure.OperationalReportLoader.Load(path);
|
||||
|
||||
Assert.Equal("n/a", report.SchemaVersion);
|
||||
Assert.Equal("n/a", report.SourceJson);
|
||||
Assert.Equal("n/a", report.GeneratedAt);
|
||||
Assert.Equal(0, report.SectionCount);
|
||||
Assert.Empty(report.Sections);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void OperationalReportLoader_UsesSectionCountFromPayloadWhenPresent()
|
||||
{
|
||||
var tempDir = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString("N"));
|
||||
Directory.CreateDirectory(tempDir);
|
||||
var path = Path.Combine(tempDir, "operational_report.json");
|
||||
|
||||
File.WriteAllText(path, """
|
||||
{
|
||||
"schema_version": "test-schema",
|
||||
"source_json": "fixture.json",
|
||||
"generated_at": "2026-06-26T00:00:00+00:00",
|
||||
"section_count": 2,
|
||||
"sections": [
|
||||
{ "name": "alpha", "title": "Alpha", "markdown": "alpha body" },
|
||||
{ "name": "beta", "title": "Beta", "markdown": "beta body" }
|
||||
]
|
||||
}
|
||||
""");
|
||||
|
||||
var report = QuantEngine.Core.Infrastructure.OperationalReportLoader.Load(path);
|
||||
|
||||
Assert.Equal("test-schema", report.SchemaVersion);
|
||||
Assert.Equal("fixture.json", report.SourceJson);
|
||||
Assert.Equal(2, report.SectionCount);
|
||||
Assert.Equal(2, report.Sections.Count);
|
||||
Assert.Equal("alpha", report.Sections[0].Name);
|
||||
Assert.Equal("alpha body", report.Sections[0].Preview);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void OperationalReportLoader_PreservesEmptySectionsWithoutThrowing()
|
||||
{
|
||||
var tempDir = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString("N"));
|
||||
Directory.CreateDirectory(tempDir);
|
||||
var path = Path.Combine(tempDir, "operational_report.json");
|
||||
|
||||
File.WriteAllText(path, """
|
||||
{
|
||||
"schema_version": "empty-schema",
|
||||
"source_json": "fixture.json",
|
||||
"generated_at": "2026-06-26T00:00:00+00:00",
|
||||
"section_count": 0,
|
||||
"sections": []
|
||||
}
|
||||
""");
|
||||
|
||||
var report = QuantEngine.Core.Infrastructure.OperationalReportLoader.Load(path);
|
||||
|
||||
Assert.Equal(0, report.SectionCount);
|
||||
Assert.Empty(report.Sections);
|
||||
Assert.Equal("empty-schema", report.SchemaVersion);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user