Exemplo n.º 1
0
        public async Task UpdateNormalItemTest_UpdateNormalItem_QualityDecreaseByOne(int sellIn, int quality)
        {
            var item = new ItemForSell {
                SellIn = sellIn, Quality = quality, Type = ItemForSellType.Normal
            };
            await _inventoryUpdater.Update(item);

            var expQuality = Math.Max(quality - 1, 0);
            var expSellIn  = Math.Max(sellIn - 1, 0);

            Assert.Equal(expQuality, item.Quality);
            Assert.Equal(expSellIn, item.SellIn);
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            Console.WriteLine("OMGHAI!");

            Items = new List <Item>
            {
                new Item {
                    Name = "+5 Dexterity Vest", SellIn = 10, Quality = 20
                },
                new AgedBrie {
                    Name = "Aged Brie", SellIn = 2, Quality = 0
                },
                new Item {
                    Name = "Elixir of the Mongoose", SellIn = 5, Quality = 7
                },
                new LegendaryItem {
                    Name = "Sulfuras, Hand of Ragnaros", SellIn = 0, Quality = 80
                },
                new BackstagePass {
                    Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 15, Quality = 20
                },
                new ConjuredItem {
                    Name = "Conjured Mana Cake", SellIn = 3, Quality = 6
                }
            };

            var updater = new InventoryUpdater(Items);

            updater.Update();

            Console.ReadKey();
        }
 private void ProcessMany(Int32 numberToProcess)
 {
     for (var i = 0; i < numberToProcess; i++)
     {
         updater.Update();
     }
 }
Exemplo n.º 4
0
 public void UpdateQuality()
 {
     foreach (var item in Items)
     {
         InventoryUpdater.Update(item);
     }
 }
Exemplo n.º 5
0
        public void AgedBrieIncreaseInQualityBy2AfterSellDate()
        {
            var item = CreateAgedBrie(sellIn: 0, quality: 0);

            InventoryUpdater.Update(item);

            Assert.Equal(2, item.Quality);
            Assert.Equal(-1, item.SellIn);
        }
Exemplo n.º 6
0
        public void AgedBrieIncreaseInQualityWhenOlder()
        {
            var item = CreateAgedBrie(sellIn: 1, quality: 0);

            InventoryUpdater.Update(item);

            Assert.Equal(1, item.Quality);
            Assert.Equal(0, item.SellIn);
        }
Exemplo n.º 7
0
        public void SulFurasNeverDecreasesInQuality()
        {
            var item = CreateSulfurasItem();

            InventoryUpdater.Update(item);

            Assert.Equal(80, item.Quality);
            Assert.Equal(0, item.SellIn);
        }
Exemplo n.º 8
0
        public void BackstagePassesQualityIncreaseTest(int sellIn, int quality, int expectedSellIn, int expectedQuality)
        {
            var item = CreateBackstagePass(sellIn: sellIn, quality: quality);

            InventoryUpdater.Update(item);

            Assert.Equal(expectedQuality, item.Quality);
            Assert.Equal(expectedSellIn, item.SellIn);
        }
Exemplo n.º 9
0
        public void QualityOfItemNeverRaisedAbove50()
        {
            var item = CreateAgedBrie(quality: 50, sellIn: 2);

            InventoryUpdater.Update(item);

            Assert.Equal(50, item.Quality);
            Assert.Equal(1, item.SellIn);
        }
Exemplo n.º 10
0
        public void QualityDegradsTwiceAsFastOnceSellByHasPassed()
        {
            var item = new Item {
                SellIn = 0, Quality = 4
            };

            InventoryUpdater.Update(item);

            Assert.Equal(-1, item.SellIn);
            Assert.Equal(2, item.Quality);
        }
Exemplo n.º 11
0
        public void QuantityNeverNegative()
        {
            var item = new Item {
                SellIn = 0, Quality = 0
            };

            InventoryUpdater.Update(item);

            Assert.Equal(-1, item.SellIn);
            Assert.Equal(0, item.Quality);
        }
        public void SellInForNormalItemDecreasesByOne()
        {
            var cake = new Item {
                Name = "Conjured Mana Cake", SellIn = 0, Quality = 0
            };

            updater = new InventoryUpdater(new[] { cake });
            updater.Update();

            Assert.AreEqual(-1, cake.SellIn);
        }
Exemplo n.º 13
0
        public void ConjuredItemsDegradeTwiceAsFastAsNormalItems()
        {
            var item = new Item {
                Name = "Conjured", SellIn = 1, Quality = 2
            };

            InventoryUpdater.Update(item);

            Assert.Equal(0, item.Quality);
            Assert.Equal(0, item.SellIn);
        }
        public void QualityDegradesTwiceAsFastForNormalItem()
        {
            var cake = new Item {
                Name = "Conjured Mana Cake", SellIn = -1, Quality = 2
            };

            updater = new InventoryUpdater(new[] { cake });
            updater.Update();

            Assert.AreEqual(0, cake.Quality);
        }
        public void QualityOfAConjuredItemIsNeverNegative()
        {
            var cake = new ConjuredItem {
                Name = "Conjured Mana Cake", SellIn = -1, Quality = 0
            };

            updater = new InventoryUpdater(new[] { cake });
            updater.Update();

            Assert.AreEqual(0, cake.Quality);
        }
Exemplo n.º 16
0
        public void SellInAndQualityIsLoweredEachDay()
        {
            var item = new Item {
                Quality = 1, SellIn = 1
            };

            InventoryUpdater.Update(item);

            Assert.Equal(0, item.SellIn);
            Assert.Equal(0, item.Quality);
        }
        public void QualityOfAnItemIsNeverGreaterThanFifty()
        {
            var brie = new AgedBrie {
                Name = "Aged Brie", SellIn = 0, Quality = 50
            };

            updater = new InventoryUpdater(new[] { brie });
            updater.Update();

            Assert.AreEqual(50, brie.Quality);
        }
Exemplo n.º 18
0
        static void Main(string[] args)
        {
            Console.WriteLine("OMGHAI!");

            Items = new List<Item>
            {
                new Item { Name = "+5 Dexterity Vest", SellIn = 10, Quality = 20 },
                new AgedBrie { Name = "Aged Brie", SellIn = 2, Quality = 0 },
                new Item { Name = "Elixir of the Mongoose", SellIn = 5, Quality = 7 },
                new LegendaryItem { Name = "Sulfuras, Hand of Ragnaros", SellIn = 0, Quality = 80 },
                new BackstagePass { Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 15, Quality = 20 },
                new ConjuredItem { Name = "Conjured Mana Cake", SellIn = 3, Quality = 6 }
            };

            var updater = new InventoryUpdater(Items);
            updater.Update();

            Console.ReadKey();
        }