|
- using Campaign_Tracker.Server.Municipalities;
-
- namespace Campaign_Tracker.Server.Tests;
-
- public sealed class MunicipalityPriorCycleDefaultsRepositoryTests
- {
- [Fact]
- public async Task GetByJCodeAsync_ReturnsMostRecentCompletedCycleFirst_AC1()
- {
- var sut = new InMemoryMunicipalityPriorCycleDefaultsRepository([
- new MunicipalityPriorCycleDefaults(
- CycleId: "fair-2024-general",
- JCode: "FAIR01",
- CycleName: "2024 General",
- CompletedAt: new DateTimeOffset(2024, 11, 20, 0, 0, 0, TimeSpan.Zero),
- Services:
- [
- new MunicipalityPriorCycleServiceDefault(
- ServiceType: "Addressing",
- Summary: "Standard addressing run",
- Values: new Dictionary<string, string> { ["Quantity"] = "1200" }),
- ]),
- new MunicipalityPriorCycleDefaults(
- CycleId: "fair-2026-primary",
- JCode: "FAIR01",
- CycleName: "2026 Primary",
- CompletedAt: new DateTimeOffset(2026, 5, 1, 0, 0, 0, TimeSpan.Zero),
- Services:
- [
- new MunicipalityPriorCycleServiceDefault(
- ServiceType: "Sorting",
- Summary: "Daily sort enabled",
- Values: new Dictionary<string, string> { ["Daily Sort"] = "Yes" }),
- ]),
- ]);
-
- var cycles = await sut.GetByJCodeAsync("fair01");
-
- Assert.Equal(["fair-2026-primary", "fair-2024-general"], cycles.Select(c => c.CycleId).ToArray());
- Assert.Equal("Sorting", cycles[0].Services[0].ServiceType);
- }
-
- [Fact]
- public async Task GetByJCodeAsync_WhenNoCyclesExist_ReturnsEmptyReadOnlyResult_AC3()
- {
- var sut = new InMemoryMunicipalityPriorCycleDefaultsRepository([]);
-
- var cycles = await sut.GetByJCodeAsync("PINE03");
-
- Assert.Empty(cycles);
- }
- }
|