public void Test_CalculateShopDiscount_ReturnsCorrectValue_WhenCalledWithAnInt(int reputation, int expectedResult) { //Arrange //Act var ret = itemService.CalculateShopDiscount(reputation); //Assert Assert.AreEqual(expectedResult, ret); }
public IActionResult Shop(int partyId, int characterId, bool insufficentFunds = false) { if (insufficentFunds) { ViewData["InsufficentFunds"] = "Character doesn't have enough gold"; } using (var gloomhavenTrackerContext = (GloomhavenTrackerContext)provider.GetService(typeof(GloomhavenTrackerContext))) { var reputation = gloomhavenTrackerContext.Characters.Include(x => x.Party).Single(x => x.Id == characterId && x.PartyId == partyId).Party.Reputation; var listOfAvailableItemsForCharacter = gloomhavenTrackerContext.Items.Include(x => x.CharacterItems) .Include(x => x.PartyItems) .Where(x => (x.CharacterItems.Any(x => x.CharacterId != characterId) || x.CharacterItems.Count == 0) && x.Available) .ToList(); var viewModel = new ShopViewModel() { CharacterId = characterId, Items = itemService.GetItemsWithAdjustedAmounts(listOfAvailableItemsForCharacter, partyId), PartyDiscount = itemService.CalculateShopDiscount(reputation) }; return(View(viewModel)); } }