public void GetByGroupTest() { //Arrange. matchService.Setup(s => s.GetAllEncounter()).Returns(GetFakeEncounters()); //Act. IActionResult result = controller.Get(true); OkObjectResult okResult = result as OkObjectResult; ICollection <EncounterCalendarModelOut> matches = okResult.Value as ICollection <EncounterCalendarModelOut>; EncounterCalendarModelOut cal1 = ((List <EncounterCalendarModelOut>)matches)[0]; EncountersGroupedByDate cal1Date = cal1.EncountersByDate.ToList()[0]; EncounterCalendarModelOut cal2 = ((List <EncounterCalendarModelOut>)matches)[1]; //Assert. matchService.Verify(s => s.GetAllEncounter(), Times.Once); Assert.IsNotNull(result); Assert.IsNotNull(okResult); Assert.IsNotNull(matches); Assert.AreEqual(matches.Count, 2); Assert.AreEqual(1, cal1.EncountersByDate.Count); Assert.AreEqual("Basketball", cal1.SportName); Assert.AreEqual(2, cal2.EncountersByDate.Count); Assert.AreEqual("Football", cal2.SportName); Assert.AreEqual(new DateTime(2018, 6, 27), cal1Date.Date); Assert.AreEqual(1, cal1Date.Encounters.Count); }
private EncounterCalendarModelOut CreateSportCalendar(IGrouping <string, EncounterModelOut> sportGroup) { EncounterCalendarModelOut calendar = new EncounterCalendarModelOut(); calendar.SportName = sportGroup.Key; calendar.EncountersByDate = new List <EncountersGroupedByDate>(); IEnumerable <EncounterModelOut> sportEncounters = sportGroup; IEnumerable <IGrouping <DateTime, EncounterModelOut> > encountersByDate = sportEncounters .OrderBy(e => e.Date) .GroupBy(e => e.Date); foreach (IGrouping <DateTime, EncounterModelOut> dateEncounters in encountersByDate) { EncountersGroupedByDate groupByDate = new EncountersGroupedByDate(); groupByDate.Date = dateEncounters.Key; groupByDate.Encounters = dateEncounters.ToList(); calendar.EncountersByDate.Add(groupByDate); } return(calendar); }