public void Provide_ItemQualityMultipliableQualityCalculator(ItemQualityMultipliable item) { //Arrange var provider = new ItemQualityCalculatorProvider(); //Act var calculator = provider.Provide(item); //Assert Assert.Equal(typeof(ItemQualityMultipliableQualityCalculator), calculator.GetType()); }
private void UpdateItemQuality(ItemQualityMultipliable item, int tick) { var changedTick = tick; var multiplier = item.QualityMultipliers .Where(e => e.OnSellInReached == null || e.OnSellInReached >= item.SellIn) .OrderByDescending(e => e.OnSellInReached.HasValue) .ThenBy(e => e.OnSellInReached) .FirstOrDefault(); if (multiplier != null) { changedTick *= multiplier.Multiplier; } item.Quality += changedTick; }
public void UpdateQuality_ItemQualityMultipliable_IncreasesByTwo() { //Arrange var item = new ItemQualityMultipliable(new QualityTickMultiplier(null, -1)) { Name = "", Quality = 10, SellIn = -1 }; var qualityCalculator = new ItemQualityMultipliableQualityCalculator(); //Act qualityCalculator.UpdateQuality(item); //Assert Assert.Equal(12, item.Quality); }