Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

53 řádky
2.0KB

  1. using Campaign_Tracker.Server.Municipalities;
  2. namespace Campaign_Tracker.Server.Tests;
  3. public sealed class MunicipalityPriorCycleDefaultsRepositoryTests
  4. {
  5. [Fact]
  6. public async Task GetByJCodeAsync_ReturnsMostRecentCompletedCycleFirst_AC1()
  7. {
  8. var sut = new InMemoryMunicipalityPriorCycleDefaultsRepository([
  9. new MunicipalityPriorCycleDefaults(
  10. CycleId: "fair-2024-general",
  11. JCode: "FAIR01",
  12. CycleName: "2024 General",
  13. CompletedAt: new DateTimeOffset(2024, 11, 20, 0, 0, 0, TimeSpan.Zero),
  14. Services:
  15. [
  16. new MunicipalityPriorCycleServiceDefault(
  17. ServiceType: "Addressing",
  18. Summary: "Standard addressing run",
  19. Values: new Dictionary<string, string> { ["Quantity"] = "1200" }),
  20. ]),
  21. new MunicipalityPriorCycleDefaults(
  22. CycleId: "fair-2026-primary",
  23. JCode: "FAIR01",
  24. CycleName: "2026 Primary",
  25. CompletedAt: new DateTimeOffset(2026, 5, 1, 0, 0, 0, TimeSpan.Zero),
  26. Services:
  27. [
  28. new MunicipalityPriorCycleServiceDefault(
  29. ServiceType: "Sorting",
  30. Summary: "Daily sort enabled",
  31. Values: new Dictionary<string, string> { ["Daily Sort"] = "Yes" }),
  32. ]),
  33. ]);
  34. var cycles = await sut.GetByJCodeAsync("fair01");
  35. Assert.Equal(["fair-2026-primary", "fair-2024-general"], cycles.Select(c => c.CycleId).ToArray());
  36. Assert.Equal("Sorting", cycles[0].Services[0].ServiceType);
  37. }
  38. [Fact]
  39. public async Task GetByJCodeAsync_WhenNoCyclesExist_ReturnsEmptyReadOnlyResult_AC3()
  40. {
  41. var sut = new InMemoryMunicipalityPriorCycleDefaultsRepository([]);
  42. var cycles = await sut.GetByJCodeAsync("PINE03");
  43. Assert.Empty(cycles);
  44. }
  45. }

Powered by TurnKey Linux.