/* * Tests the GetTotal<Category>Credit method. Called by specific test cases above */ private void CanGetTotalCredit(Advancement.Category category, int[] credits, int expectedTotal) { ActiveCiv testCiv = new ActiveCiv { //Convert the array of credits into a collection of mocked advancements OwnedAdvancements = PrepareMockOwnedAdvancements(credits, category) }; int actualTotal = -1; switch (category) { case Advancement.Category.Art: actualTotal = testCiv.GetTotalArtCredit(); break; case Advancement.Category.Civic: actualTotal = testCiv.GetTotalCivicCredit(); break; case Advancement.Category.Craft: actualTotal = testCiv.GetTotalCraftCredit(); break; case Advancement.Category.Religion: actualTotal = testCiv.GetTotalReligionCredit(); break; case Advancement.Category.Science: actualTotal = testCiv.GetTotalScienceCredit(); break; } Assert.Equal(expectedTotal, actualTotal); }
private int GetTotalCredit(Advancement.Category category) { int totalCredit = 0; //TODO: swap loop out for a proper map/reduce construct foreach (OwnedAdvancement ownedAdvancement in OwnedAdvancements) { switch (category) { case Advancement.Category.Art: totalCredit += ownedAdvancement.Advancement.CreditArt; break; case Advancement.Category.Civic: totalCredit += ownedAdvancement.Advancement.CreditCivic; break; case Advancement.Category.Craft: totalCredit += ownedAdvancement.Advancement.CreditCraft; break; case Advancement.Category.Religion: totalCredit += ownedAdvancement.Advancement.CreditReligion; break; case Advancement.Category.Science: totalCredit += ownedAdvancement.Advancement.CreditScience; break; } } return(totalCredit); }
/* * Generates a collection of owned advancements with the specified credit values and credit category */ private ICollection <OwnedAdvancement> PrepareMockOwnedAdvancements(int[] credits, Advancement.Category category) { ICollection <OwnedAdvancement> ownedAdvancements = new Collection <OwnedAdvancement>(); foreach (int credit in credits) { //TODO: swap these to mocked versions Advancement advancement = new Advancement(); switch (category) { case Advancement.Category.Art: advancement.CreditArt = credit; break; case Advancement.Category.Civic: advancement.CreditCivic = credit; break; case Advancement.Category.Craft: advancement.CreditCraft = credit; break; case Advancement.Category.Religion: advancement.CreditReligion = credit; break; case Advancement.Category.Science: advancement.CreditScience = credit; break; } ownedAdvancements.Add( new OwnedAdvancement { Advancement = advancement } ); } return(ownedAdvancements); }