public async Task CanGetDetails() { int testAdvancementId = 2; //Get a test controller GameContext gameContext = GetTestContext("test_details"); foreach (Ability ability in Iteration1Seeder.GetSeedAbilities()) { gameContext.Abilities.Add(ability); } gameContext.SaveChanges(); AdvancementsController testController = new AdvancementsController(gameContext); //Run the controller's Details() IActionResult result = await testController.Details(testAdvancementId); //Assert that... //...we got a view back ViewResult viewResult = Assert.IsType <ViewResult>(result); //...the view is an advancement Advancement model = Assert.IsAssignableFrom <Advancement>(viewResult.ViewData.Model); //...the abilities for the advancement are present Assert.Equal(gameContext.Abilities.Where(a => a.AdvancementId == testAdvancementId).Count(), model.Abilities.Count()); }
protected override void OnModelCreating(ModelBuilder modelBuilder) { //Database Seeding - Civilizations, Advancements, and Abilities modelBuilder.Entity <Civ>().HasData(Iteration1Seeder.GetSeedCivilizations()); modelBuilder.Entity <Advancement>().HasData(Iteration1Seeder.GetSeedAdvancements()); modelBuilder.Entity <Ability>().HasData(Iteration1Seeder.GetSeedAbilities()); }
private GameContext GetTestContext(string testDb) { //Prep a context and controller GameContext gameContext = new GameContext(InMemoryContextFactory.GetContextOptions(testDb)); foreach (Advancement advancement in Iteration1Seeder.GetSeedAdvancements()) { gameContext.Advancements.Add(advancement); } gameContext.SaveChanges(); return(gameContext); }
private GameContext GetTestContext(string testDb) { //Prep a context and controller GameContext gameContext = new GameContext(InMemoryContextFactory.GetContextOptions(testDb)); //Add the civilization seed data foreach (Civ civ in Iteration1Seeder.GetSeedCivilizations()) { gameContext.Civs.Add(civ); } //Add a sample activeCiv gameContext.ActiveCivs.Add(new ActiveCiv { Id = 1, CivId = 4, GameName = "controller unit test" }); gameContext.SaveChanges(); return(gameContext); }