//non crud public IActionResult Stats() { Stats s = new Stats(); s.StarsWithLife = statsLogic.StarsWithLife(); s.PopulationInSectors = statsLogic.PopulationInSectors(); s.PlanetTypeGrouped = statsLogic.PlanetTypeGrouped(); return(View(s)); }
public void TestPopulationInSectors() { Mock <IRepository <Planet> > planetRepo = new Mock <IRepository <Planet> >(); Mock <IRepository <Star> > starRepo = new Mock <IRepository <Star> >(); Mock <IRepository <Models.System> > systemRepo = new Mock <IRepository <Models.System> >(); List <Planet> planets = new List <Planet>() { new Planet() { PlanetID = "#1", StarID = "#1", Population = 10 }, new Planet() { PlanetID = "#2", StarID = "#1", Population = 20 }, new Planet() { PlanetID = "#3", StarID = "#2", Population = 30 }, new Planet() { PlanetID = "#4", StarID = "#3", Population = 40 }, new Planet() { PlanetID = "#5", StarID = "#4", Population = 50 }, }; List <Star> stars = new List <Star>() { new Star() { StarID = "#1", SystemID = "#1", Planets = new Planet[] { planets[0], planets[1] } }, new Star() { StarID = "#2", SystemID = "#2", Planets = new Planet[] { planets[2] } }, new Star() { StarID = "#3", SystemID = "#2", Planets = new Planet[] { planets[3] } }, new Star() { StarID = "#4", SystemID = "#3", Planets = new Planet[] { planets[4] } }, }; List <Models.System> systems = new List <Models.System>() { new Models.System() { SystemID = "#1", SectorName = "A", Stars = new Star[] { stars[0] } }, new Models.System() { SystemID = "#2", SectorName = "A", Stars = new Star[] { stars[1], stars[2] } }, new Models.System() { SystemID = "#3", SectorName = "B", Stars = new Star[] { stars[3] } } }; planetRepo.Setup(r => r.Read()).Returns(planets.AsQueryable()); starRepo.Setup(r => r.Read()).Returns(stars.AsQueryable()); systemRepo.Setup(r => r.Read()).Returns(systems.AsQueryable()); StatsLogic logic = new StatsLogic(planetRepo.Object, starRepo.Object, systemRepo.Object); var result = logic.PopulationInSectors(); Assert.That(result.Single(x => x.SectorType == "A").Population, Is.EqualTo(100)); Assert.That(result.Single(x => x.SectorType == "B").Population, Is.EqualTo(50)); systemRepo.Verify(r => r.Read(), Times.Once); starRepo.Verify(r => r.Read(), Times.Once); planetRepo.Verify(r => r.Read(), Times.Once); }