Пример #1
0
 public override void UpdateQuality(HamaraBasketItem item)
 {
     if (item.Quality >= 50)
     {
         return;
     }
     item.Quality += 1;
 }
Пример #2
0
        public void QualityShouldDecreaseByOne()
        {
            var item    = new HamaraBasketItem(10, 10, ItemType.Expiring);
            var checker = new QualityChecker();

            checker.UpdateQuality(item);

            Assert.AreEqual(9, item.Quality);
        }
Пример #3
0
        public void QualityShouldNotBeNegative()
        {
            var item    = new HamaraBasketItem(1, 0, ItemType.Expiring);
            var checker = new QualityChecker();

            checker.UpdateQuality(item);

            Assert.AreEqual(0, item.Quality);
        }
Пример #4
0
        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);
        }
Пример #6
0
        public void IndianWineQualityShouldNeverBeMoreThan50()
        {
            var item    = new HamaraBasketItem(10, 50, ItemType.NonExpiry);
            var checker = new NonExpiryItemQualityChecker();

            checker.UpdateQuality(item);

            Assert.AreEqual(50, item.Quality);
        }
Пример #7
0
        public void QualityIncreasesAsSellByValueApproaches()
        {
            var item    = new HamaraBasketItem(20, 10, ItemType.MovieTicket);
            var checker = new MovieTicketsQualityChecker();

            checker.UpdateQuality(item);

            Assert.AreEqual(11, item.Quality);
        }
Пример #8
0
        public void QualityIncreasesByThreeWhenSellByValueIsLessThan10()
        {
            var item    = new HamaraBasketItem(3, 10, ItemType.MovieTicket);
            var checker = new MovieTicketsQualityChecker();

            checker.UpdateQuality(item);

            Assert.AreEqual(13, item.Quality);
        }
Пример #9
0
        public void QualityDropsToZeroWhenSellByHasPassed()
        {
            var item    = new HamaraBasketItem(0, 10, ItemType.MovieTicket);
            var checker = new MovieTicketsQualityChecker();

            checker.UpdateQuality(item);

            Assert.AreEqual(0, item.Quality);
        }
Пример #10
0
        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);
        }
Пример #11
0
        public void SellByShouldDecreaseByOne()
        {
            var item    = new HamaraBasketItem(10, 10, ItemType.Expiring);
            var checker = new SellByUpdater();

            checker.UpdateSellBy(item);

            Assert.AreEqual(9, item.SellBy);
        }
Пример #12
0
        public void IndianWineQualityShouldIncreaseByOne()
        {
            var item    = new HamaraBasketItem(10, 10, ItemType.NonExpiry);
            var checker = new NonExpiryItemQualityChecker();

            checker.UpdateQuality(item);

            Assert.AreEqual(11, item.Quality);
        }
Пример #13
0
        public void QualityShouldDecreaseTwiceWhenSellByPassed()
        {
            var item    = new HamaraBasketItem(0, 10, ItemType.Expiring);
            var checker = new QualityChecker();

            checker.UpdateQuality(item);

            Assert.AreEqual(8, item.Quality);
        }
Пример #14
0
 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;
 }
Пример #16
0
 public void UpdateSellBy(HamaraBasketItem item)
 {
     item.SellBy -= 1;
 }
 public override void UpdateQuality(HamaraBasketItem item)
 {
     return;
 }