refactor(dotnet): normalize collection read model inputs
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Successful in 18s
Validators (Pushes and Pull Requests) / validate-core (push) Failing after 1m46s

This commit is contained in:
2026-07-13 01:17:06 +09:00
parent bea5462c5e
commit dd08e36a2b
2 changed files with 70 additions and 4 deletions
@@ -0,0 +1,44 @@
using Moq;
using QuantEngine.Application.Services;
using QuantEngine.Core.Interfaces;
namespace QuantEngine.Core.Tests;
public class CollectionReadModelServiceTests
{
[Fact]
public async Task GetRecentRunsAsync_ClampsLimitToUpperBound()
{
var repo = new Mock<ICollectionReadRepository>(MockBehavior.Strict);
repo.Setup(r => r.GetRecentRunsAsync(200)).ReturnsAsync([]);
var service = new CollectionReadModelService(repo.Object);
var result = await service.GetRecentRunsAsync(999);
Assert.Empty(result);
repo.VerifyAll();
}
[Fact]
public async Task GetLatestSnapshotsForTickerAsync_TrimsTickerAndClampsLimit()
{
var repo = new Mock<ICollectionReadRepository>(MockBehavior.Strict);
repo.Setup(r => r.GetLatestSnapshotsForTickerAsync("005930", 100)).ReturnsAsync([]);
var service = new CollectionReadModelService(repo.Object);
var result = await service.GetLatestSnapshotsForTickerAsync(" 005930 ", 999);
Assert.Empty(result);
repo.VerifyAll();
}
[Fact]
public async Task GetRunErrorsAsync_RejectsEmptyRunId()
{
var service = new CollectionReadModelService(new Mock<ICollectionReadRepository>().Object);
await Assert.ThrowsAsync<ArgumentException>(() => service.GetRunErrorsAsync(" ", 10));
}
}