refactor(dotnet): centralize runtime audit trail
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Successful in 16s
Validators (Pushes and Pull Requests) / validate-core (push) Has been cancelled

This commit is contained in:
2026-07-13 00:52:32 +09:00
parent aa61465ce0
commit 99377e9ca9
7 changed files with 68 additions and 89 deletions
@@ -3,6 +3,8 @@ using Moq;
using System.Reflection;
using System.Text.Json;
using Microsoft.Extensions.Logging;
using QuantEngine.Application.Interfaces;
using QuantEngine.Application.Models;
using QuantEngine.Core.Interfaces;
using QuantEngine.Application.Services;
@@ -13,6 +15,7 @@ public class KisDataCollectionOrchestratorTests
private readonly Mock<IKisApiClient> _kisApiClientMock;
private readonly Mock<ICollectionRepository> _repositoryMock;
private readonly Mock<ILogger<KisDataCollectionOrchestrator>> _loggerMock;
private readonly Mock<IRuntimeAuditTrailService> _auditTrailMock;
private readonly PriceDataNormalizer _normalizer;
private readonly SourcePriorityResolver _priorityResolver;
private readonly KisDataCollectionOrchestrator _orchestrator;
@@ -22,6 +25,7 @@ public class KisDataCollectionOrchestratorTests
_kisApiClientMock = new Mock<IKisApiClient>();
_repositoryMock = new Mock<ICollectionRepository>();
_loggerMock = new Mock<ILogger<KisDataCollectionOrchestrator>>();
_auditTrailMock = new Mock<IRuntimeAuditTrailService>();
_priorityResolver = new SourcePriorityResolver();
_normalizer = new PriceDataNormalizer(_priorityResolver);
@@ -30,7 +34,8 @@ public class KisDataCollectionOrchestratorTests
_repositoryMock.Object,
_normalizer,
_priorityResolver,
_loggerMock.Object
_loggerMock.Object,
_auditTrailMock.Object
);
}
@@ -93,12 +98,6 @@ public class KisDataCollectionOrchestratorTests
var runId = "test-run-002";
var ticker = "005930";
var account = "mock";
var auditPath = Path.Combine(FindRepoRoot(), "Temp", "collection_audit", $"{runId}.jsonl");
if (File.Exists(auditPath))
{
File.Delete(auditPath);
}
_repositoryMock
.Setup(r => r.GetLatestSnapshotsForTickerAsync(ticker, It.IsAny<int>()))
.ReturnsAsync(new List<CollectionSnapshotRecord>());
@@ -133,8 +132,7 @@ public class KisDataCollectionOrchestratorTests
Assert.NotNull(result);
Assert.Equal("COMPLETED", result.Status);
Assert.Equal(1, result.SuccessCount);
Assert.True(File.Exists(auditPath));
Assert.Contains("COMPLETED", File.ReadAllText(auditPath));
_auditTrailMock.Verify(a => a.Append("collection_audit", runId, It.IsAny<CollectionExecutionAudit>()), Times.Exactly(2));
_kisApiClientMock.Verify(
k => k.GetCurrentPriceAsync(ticker, account),