Пример #1
0
        public void ItemQualityCannotDecreaseBelowMinValue()
        {
            var normalItem = new NormalItem
            {
                SellIn  = 10,
                Quality = 0
            };

            ManageInventory.ProcessItem(normalItem);

            Assert.AreEqual(normalItem.MinQuality, normalItem.Quality);
        }
Пример #2
0
        public void ItemQualityCannotExceedMaxValue()
        {
            var normalItem = new NormalItem
            {
                SellIn  = 10,
                Quality = 100
            };

            ManageInventory.ProcessItem(normalItem);

            Assert.AreEqual(normalItem.MaxQuality, normalItem.Quality);
        }
Пример #3
0
        public void CheeseItemQualityCannotExceedMaxQuality()
        {
            var cheeseItem = new CheeseItem
            {
                Name    = "AgedBrie",
                SellIn  = 10,
                Quality = 50
            };

            ManageInventory.ProcessItem(cheeseItem);

            Assert.AreEqual(cheeseItem.MaxQuality, cheeseItem.Quality);
        }
Пример #4
0
        public void TicketItemQualityDecreasesToZeroWhenSellInIsZero()
        {
            var ticketItem = new TicketItem
            {
                Name    = "BackstagePass",
                SellIn  = 0,
                Quality = 10
            };

            ManageInventory.ProcessItem(ticketItem);

            Assert.AreEqual(0, ticketItem.Quality);
        }
Пример #5
0
        public void SellInValueLessThanZeroNormalItemQualityDegradesTwiceAsFast()
        {
            var normalItem = new NormalItem
            {
                SellIn  = -1,
                Quality = 10
            };

            var oldQuality = normalItem.Quality;

            ManageInventory.ProcessItem(normalItem);

            Assert.AreEqual(oldQuality - 2, normalItem.Quality);
        }
Пример #6
0
        public void NormalItemQualityDecreasesByOne()
        {
            var normalItem = new NormalItem
            {
                SellIn  = 10,
                Quality = 10
            };

            var oldQuality = normalItem.Quality;

            ManageInventory.ProcessItem(normalItem);

            Assert.AreEqual(oldQuality - 1, normalItem.Quality);
        }
Пример #7
0
        public void ConjuredItemQualityDecreasesByTwo()
        {
            var conjuredItem = new ConjuredItem
            {
                SellIn  = 10,
                Quality = 10
            };

            var oldQuality = conjuredItem.Quality;

            ManageInventory.ProcessItem(conjuredItem);

            Assert.AreEqual(oldQuality - 2, conjuredItem.Quality);
        }
Пример #8
0
        public void SellInValueLessThanZeroConjuredItemQualityDegradesTwiceAsFast()
        {
            var conjuredItem = new ConjuredItem
            {
                SellIn  = -1,
                Quality = 10
            };

            var oldQuality = conjuredItem.Quality;

            ManageInventory.ProcessItem(conjuredItem);

            Assert.AreEqual(oldQuality - 4, conjuredItem.Quality);
        }
Пример #9
0
        public void CheeseItemQualityIncreasesAsSellInDecreases()
        {
            var cheeseItem = new CheeseItem
            {
                Name    = "AgedBrie",
                SellIn  = 10,
                Quality = 10
            };

            var oldQuality = cheeseItem.Quality;

            ManageInventory.ProcessItem(cheeseItem);

            Assert.AreEqual(oldQuality + 1, cheeseItem.Quality);
        }
Пример #10
0
        public void LegendaryItemsQualityDoesNotDegrade()
        {
            var legendaryItem = new LegendaryItem
            {
                Name    = "Sulfuras",
                SellIn  = 10,
                Quality = 10
            };

            var oldQuality = legendaryItem.Quality;

            ManageInventory.ProcessItem(legendaryItem);

            Assert.AreEqual(oldQuality, legendaryItem.Quality);
        }
Пример #11
0
        public void LegendaryItemsSellInDoesNotDecrease()
        {
            var legendaryItem = new LegendaryItem
            {
                Name    = "Sulfuras",
                SellIn  = 10,
                Quality = 10
            };

            var oldSellIn = legendaryItem.SellIn;

            ManageInventory.ProcessItem(legendaryItem);

            Assert.AreEqual(oldSellIn, legendaryItem.SellIn);
        }
Пример #12
0
        public void TicketItemQualityIncreasesByOneWhenSellInDecreasesAndIsAboveTen()
        {
            var ticketItem = new TicketItem
            {
                Name    = "BackstagePass",
                SellIn  = 20,
                Quality = 10
            };

            var oldQuality = ticketItem.Quality;

            ManageInventory.ProcessItem(ticketItem);

            Assert.AreEqual(oldQuality + 1, ticketItem.Quality);
        }
Пример #13
0
        public void TicketItemQualityIncreasesByThreeWhenSellInIsFiveDaysOrLess()
        {
            var ticketItem = new TicketItem
            {
                Name    = "BackstagePass",
                SellIn  = 5,
                Quality = 10
            };

            var oldQuality = ticketItem.Quality;

            ManageInventory.ProcessItem(ticketItem);

            Assert.AreEqual(oldQuality + 3, ticketItem.Quality);
        }
Пример #14
0
        public void InvalidItemIsInvalidatedWhenProcessed()
        {
            var invalidItem = new InvalidItem
            {
                SellIn  = 10,
                Quality = 10
            };

            Assert.IsTrue(invalidItem.IsValid);

            ManageInventory.ProcessItem(invalidItem);

            Assert.IsFalse(invalidItem.IsValid);
            Assert.AreEqual(0, invalidItem.SellIn);
            Assert.AreEqual(0, invalidItem.Quality);
        }