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);
        }