public void CanCalculateTop3AllTimeAsync() { // Arrange var expectedResults = new[] { new { AlpacaName = "Pablo", Date = new DateTime(2014, 7, 11), Yield = 2488 }, new { AlpacaName = "Juanita", Date = new DateTime(2009, 7, 19), Yield = 2487 }, new { AlpacaName = "Gertrude", Date = new DateTime(2014, 7, 13), Yield = 2486 }, }; const int expectedDbOperations = 1; var statsService = new ShearingStatsService(TestContext.DbContextFactory); // Act TestContext.StartCollect(); // ---------------------------------------------------------------------------------------- ShearingStatsService.TopShearingResult[] actualResults = statsService.GetTop3AllTimeAsync() .GetAwaiter().GetResult(); // ---------------------------------------------------------------------------------------- var log = TestContext.EndCollect(); TestContext.Attach(log); // Assert Assert.Equal(3, actualResults.Length); for (int i = 0; i < expectedResults.Length; i++) { Assert.Equal(expectedResults[i].AlpacaName, actualResults[i].AlpacaName); Assert.Equal(expectedResults[i].Date, actualResults[i].Date); Assert.Equal(expectedResults[i].Yield, actualResults[i].Yield); } Assert.Equal(expectedDbOperations, GetLogEntryCount(log, LogCategories.EfDbCommand)); }
public void CanInitializeService() { // Arrange ShearingStatsService service; // Act // -------------------------------------------------------------- service = new ShearingStatsService(TestContext.DbContextFactory); // -------------------------------------------------------------- // Assert Assert.NotNull(service); }
[InlineData(2001, new string[] { })] // edge case - no shearings for that year public void CanCalculateTop3ForYear(int year, string[] expected) { // Arrange ShearingStatsService sut = new ShearingStatsService(TestContext.DbContextFactory); const int expectedDbOperations = 1; // Act TestContext.StartCollect(); // ------------------------------------------------------------------------------- ShearingStatsService.TopShearingResult[] actualResults = sut.GetTop3ForYear(year); // ------------------------------------------------------------------------------- var log = TestContext.EndCollect(); TestContext.Attach(log); // Assert Assert.Equal(expected, actualResults.Select(a => a.AlpacaName).ToArray()); Assert.Equal(expectedDbOperations, GetLogEntryCount(log, LogCategories.EfDbCommand)); }