public override void UpdateQuality(HamaraBasketItem item) { if (item.Quality >= 50) { return; } item.Quality += 1; }
public void QualityShouldDecreaseByOne() { var item = new HamaraBasketItem(10, 10, ItemType.Expiring); var checker = new QualityChecker(); checker.UpdateQuality(item); Assert.AreEqual(9, item.Quality); }
public void QualityShouldNotBeNegative() { var item = new HamaraBasketItem(1, 0, ItemType.Expiring); var checker = new QualityChecker(); checker.UpdateQuality(item); Assert.AreEqual(0, item.Quality); }
public void QualityShouldDecreaseByOneWhenSellByIsZeroAndQualtiyIsOne() { var item = new HamaraBasketItem(0, 1, ItemType.Expiring); var checker = new QualityChecker(); checker.UpdateQuality(item); Assert.AreEqual(0, item.Quality); }
public void ForestHoneyQualityRemainsSame() { var item = new HamaraBasketItem(10, 10, ItemType.Legendary); var checker = new LegengaryItemQualityChecker(); checker.UpdateQuality(item); Assert.AreEqual(10, item.Quality); }
public void IndianWineQualityShouldNeverBeMoreThan50() { var item = new HamaraBasketItem(10, 50, ItemType.NonExpiry); var checker = new NonExpiryItemQualityChecker(); checker.UpdateQuality(item); Assert.AreEqual(50, item.Quality); }
public void QualityIncreasesAsSellByValueApproaches() { var item = new HamaraBasketItem(20, 10, ItemType.MovieTicket); var checker = new MovieTicketsQualityChecker(); checker.UpdateQuality(item); Assert.AreEqual(11, item.Quality); }
public void QualityIncreasesByThreeWhenSellByValueIsLessThan10() { var item = new HamaraBasketItem(3, 10, ItemType.MovieTicket); var checker = new MovieTicketsQualityChecker(); checker.UpdateQuality(item); Assert.AreEqual(13, item.Quality); }
public void QualityDropsToZeroWhenSellByHasPassed() { var item = new HamaraBasketItem(0, 10, ItemType.MovieTicket); var checker = new MovieTicketsQualityChecker(); checker.UpdateQuality(item); Assert.AreEqual(0, item.Quality); }
public void UpdateSellByAndQuality() { var item = new HamaraBasketItem(10, 20, ItemType.Legendary); var qualityChecker = QualityCheckProvider.GetChecker(item.ItemType); var sellByUpdater = new SellByUpdater(); sellByUpdater.UpdateSellBy(item); qualityChecker.UpdateQuality(item); }
public void SellByShouldDecreaseByOne() { var item = new HamaraBasketItem(10, 10, ItemType.Expiring); var checker = new SellByUpdater(); checker.UpdateSellBy(item); Assert.AreEqual(9, item.SellBy); }
public void IndianWineQualityShouldIncreaseByOne() { var item = new HamaraBasketItem(10, 10, ItemType.NonExpiry); var checker = new NonExpiryItemQualityChecker(); checker.UpdateQuality(item); Assert.AreEqual(11, item.Quality); }
public void QualityShouldDecreaseTwiceWhenSellByPassed() { var item = new HamaraBasketItem(0, 10, ItemType.Expiring); var checker = new QualityChecker(); checker.UpdateQuality(item); Assert.AreEqual(8, item.Quality); }
public virtual void UpdateQuality(HamaraBasketItem item) { if (item.SellBy <= 0 && item.Quality > 1) { item.Quality -= 2; return; } if (item.Quality == 0) { return; } item.Quality -= 1; }
public override void UpdateQuality(HamaraBasketItem item) { if (item.SellBy <= 0) { item.Quality = 0; return; } if (item.SellBy <= 5) { item.Quality += 3; return; } if (item.SellBy <= 10) { item.Quality += 2; return; } item.Quality += 1; }
public void UpdateSellBy(HamaraBasketItem item) { item.SellBy -= 1; }
public override void UpdateQuality(HamaraBasketItem item) { return; }