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);
        }
Esempio n. 2
0
        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);
        }