public void GetSummaries_should_return_all_results() { // given TestsClient client = Helpers.CreateTestsClient(); TestFile testFile = Helpers.CreateTestFileAndTest(client); var repository = ServiceStarter.Container.GetInstance <ITestFileResultRepository>(); var result1 = new TestFileResult() { StartTime = DateTime.Now, EndTime = DateTime.Now.AddSeconds(1), Filename = testFile.Filename }; var result2 = new TestFileResult() { StartTime = DateTime.Now, EndTime = DateTime.Now.AddSeconds(1), Filename = testFile.Filename }; repository.Add(result1).Wait(); repository.Add(result2).Wait(); // when TestFileResultSummaryCollection results = client.GetSummaries(It.IsAny <DateTime>()).Result; // then Assert.That(results.TotalFileResults, Is.EqualTo(2)); }
public async Task <ActionResult> Today(int pageNumber = 1, int noOfResults = 20, string environment = "") { ViewBag.Title = string.IsNullOrEmpty(environment) ? "All" : environment; TestFileResultSummaryCollection result = await _testsClient.GetSummaries(DateTime.Today, pageNumber, noOfResults, environment); result.Environments = _environmentsService.Get().OrderBy(x => x.Order).ThenBy(x => x.Name).Select(x => x.Name).ToArray(); result.Environment = environment; return(View("Index", result)); }
public async Task Add_should_save_session() { // Arrange var fixture = new Fixture(); var session = fixture.Create <TestFileResult>(); MongoTestFileResultRepository repository = GetTestFileResultRepository(); // Act await repository.Add(session); // Assert TestFileResultSummaryCollection summaries = await repository.GetSummaries(It.IsAny <DateTime>()); Assert.That(summaries.TotalFileResults, Is.EqualTo(1)); }
public async Task Delete_should_remove_the_session() { // Arrange var fixture = new Fixture(); var session = fixture.Create <TestFileResult>(); MongoTestFileResultRepository repository = GetTestFileResultRepository(); await repository.Add(session); // Act await repository.Delete(session.Id); // Assert TestFileResultSummaryCollection summaries = await repository.GetSummaries(It.IsAny <DateTime>()); Assert.That(summaries.PagedResults.Count(), Is.EqualTo(0)); }
public async Task <TestFileResultSummaryCollection> GetSummaries(DateTime fromDate, int pageNumber = 1, int noOfResults = 20, string environment = "") { // Ensure TestFileResult has indexes on the date it was run and the environment. // These index commands don't rebuild the index, they just send the command. await _collection.Indexes.CreateOneAsync(Builders <TestFileResult> .IndexKeys.Ascending(x => x.StartTime)); await _collection.Indexes.CreateOneAsync(Builders <TestFileResult> .IndexKeys.Ascending(x => x.Environment)); string env = environment?.ToLower(); Task <long> fileResult = _collection.CountAsync(x => x.StartTime >= fromDate && (string.IsNullOrEmpty(environment) || x.Environment.ToLower() == env)); Task <List <TestFileResult> > testFileCollection = _collection .Find(x => x.StartTime >= fromDate && (string.IsNullOrEmpty(environment) || x.Environment.ToLower() == env)) .Sort(Builders <TestFileResult> .Sort.Descending(x => x.StartTime)) .Skip((pageNumber - 1) * noOfResults) .Limit(noOfResults) .ToListAsync(); await Task.WhenAll(fileResult, testFileCollection); var collection = new TestFileResultSummaryCollection { TotalFileResults = fileResult.Result, PageNumber = pageNumber, NoOfResults = noOfResults, PageNumbers = Math.Ceiling((double)fileResult.Result / noOfResults), PagedResults = testFileCollection.Result .Select(x => new TestFileResultSummary() { Id = x.Id, DateRun = x.StartTime, FileName = x.Filename, TotalRunTime = x.TotalRunTime, TotalPassed = x.TotalTestsPassed, TotalFailed = x.TotalTestsFailed, TotalSkipped = x.TotalTestsSkipped, TotalRun = x.TotalTestsRun, Environment = x.Environment, Username = x.Username }) }; return(collection); }
public async Task GetSummaries_should_return_sessioninfo_objects_for_today_only() { // Arrange var fixture = new Fixture(); var todaySession1 = fixture.Create <TestFileResult>(); var todaySession2 = fixture.Create <TestFileResult>(); var otherSession1 = fixture.Create <TestFileResult>(); var otherSession2 = fixture.Create <TestFileResult>(); todaySession1.StartTime = DateTime.Today; todaySession1.EndTime = todaySession1.StartTime.AddMinutes(5); todaySession2.StartTime = DateTime.Today.AddHours(1); todaySession2.EndTime = todaySession2.StartTime.AddMinutes(5); otherSession1.StartTime = DateTime.Today.AddDays(-2); otherSession1.EndTime = otherSession1.StartTime.AddMinutes(10); otherSession2.StartTime = DateTime.Today.AddDays(-2); otherSession2.EndTime = otherSession2.StartTime.AddMinutes(10); MongoTestFileResultRepository repository = GetTestFileResultRepository(); await repository.Add(todaySession1); await repository.Add(todaySession2); await repository.Add(otherSession1); await repository.Add(otherSession2); // Act TestFileResultSummaryCollection summaries = await repository.GetSummaries(DateTime.Today); // Assert Assert.That(summaries.TotalFileResults, Is.EqualTo(2)); IEnumerable <Guid> ids = summaries.PagedResults.Select(x => x.Id); Assert.That(ids, Contains.Item(todaySession1.Id)); Assert.That(ids, Contains.Item(todaySession2.Id)); }
public async Task GetSummaries_should_return_sessioninfos() { // Arrange var fixture = new Fixture(); var session1 = fixture.Create <TestFileResult>(); var session2 = fixture.Create <TestFileResult>(); MongoTestFileResultRepository repository = GetTestFileResultRepository(); await repository.Add(session1); await repository.Add(session2); // Act TestFileResultSummaryCollection summaries = await repository.GetSummaries(It.IsAny <DateTime>()); // Assert Assert.That(summaries.TotalFileResults, Is.EqualTo(2)); IEnumerable <Guid> ids = summaries.PagedResults.Select(x => x.Id); Assert.That(ids, Contains.Item(session1.Id)); Assert.That(ids, Contains.Item(session2.Id)); }
public async Task DeleteBeforeDate_should_only_remove_entries_before_a_certain_date() { // Arrange MongoTestFileResultRepository repository = GetTestFileResultRepository(); var fixture = new Fixture(); var oldResult1 = fixture.Create <TestFileResult>(); oldResult1.StartTime = DateTime.Now.AddDays(-10); await repository.Add(oldResult1); var oldResult2 = fixture.Create <TestFileResult>(); oldResult2.StartTime = DateTime.Now.AddDays(-6); await repository.Add(oldResult2); var newResult1 = fixture.Create <TestFileResult>(); newResult1.StartTime = DateTime.Now.AddDays(-4); await repository.Add(newResult1); var newResult2 = fixture.Create <TestFileResult>(); newResult2.StartTime = DateTime.Now.AddDays(0); await repository.Add(newResult2); // Act await repository.DeleteBeforeDate(DateTime.Now.AddDays(-5)); // Assert TestFileResultSummaryCollection summaries = await repository.GetSummaries(DateTime.MinValue); Assert.That(summaries.PagedResults.Count(), Is.EqualTo(2)); Assert.That(summaries.PagedResults.Count(x => x.Id == newResult1.Id), Is.EqualTo(1)); Assert.That(summaries.PagedResults.Count(x => x.Id == newResult2.Id), Is.EqualTo(1)); }