Beispiel #1
0
        public static void Main(string[] args)
        {
            Console.WriteLine("OMGHAI!");

            IList <UpdatableItem> Items = new List <UpdatableItem> {
                UpdatableItemFactory.CreateItem(ItemType.STANDARD, "+5 Dexterity Vest", 10, 20),
                UpdatableItemFactory.CreateItem(ItemType.AGED, "Aged Brie", 2, 0),
                UpdatableItemFactory.CreateItem(ItemType.STANDARD, "Elixir of the Mongoose", 5, 7),
                UpdatableItemFactory.CreateItem(ItemType.LEGENDARY, "Sulfuras, Hand of Ragnaros", 0, 80),
                UpdatableItemFactory.CreateItem(ItemType.LEGENDARY, "Sulfuras, Hand of Ragnaros", -1, 80),
                UpdatableItemFactory.CreateItem(ItemType.BACKSTAGE, "Backstage passes to a TAFKAL80ETC concert", 15, 20),
                UpdatableItemFactory.CreateItem(ItemType.BACKSTAGE, "Backstage passes to a TAFKAL80ETC concert", 10, 49),
                UpdatableItemFactory.CreateItem(ItemType.BACKSTAGE, "Backstage passes to a TAFKAL80ETC concert", 5, 49),
                UpdatableItemFactory.CreateItem(ItemType.CONJURED, "Conjured Mana Cake", 3, 6)
            };

            var app = new GildedRose(Items);


            for (var i = 0; i < 31; i++)
            {
                Console.WriteLine("-------- day " + i + " --------");
                Console.WriteLine("name, sellIn, quality");
                foreach (UpdatableItem item in Items)
                {
                    System.Console.WriteLine(item);
                }
                Console.WriteLine("");
                app.UpdateQuality();
            }
        }
Beispiel #2
0
        public void QualityOfAnItemIsNeverMoreThan50()
        {
            IList <UpdatableItem> Items = new List <UpdatableItem> {
                UpdatableItemFactory.CreateItem(ItemType.AGED, "Aged Brie", 0, 50)
            };

            GildedRose app = new GildedRose(Items);

            app.UpdateQuality();
            Assert.Equal(50, Items[0].Quality());
        }
Beispiel #3
0
        public void AgedBrieIncreasesQualityTwiceAsFastWhenSellByDateHasPassed()
        {
            IList <UpdatableItem> Items = new List <UpdatableItem> {
                UpdatableItemFactory.CreateItem(ItemType.AGED, "Aged Brie", 0, 0)
            };

            GildedRose app = new GildedRose(Items);

            app.UpdateQuality();
            Assert.Equal(2, Items[0].Quality());
        }
Beispiel #4
0
        public void SellInDegradesByOneAfterOneDay()
        {
            IList <UpdatableItem> Items = new List <UpdatableItem> {
                UpdatableItemFactory.CreateItem(ItemType.STANDARD, "foo", 1, 10)
            };

            GildedRose app = new GildedRose(Items);

            app.UpdateQuality();
            Assert.Equal(0, Items[0].SellIn());
        }
Beispiel #5
0
        public void QualityOfAnItemIsNeverNegative()
        {
            IList <UpdatableItem> Items = new List <UpdatableItem> {
                UpdatableItemFactory.CreateItem(ItemType.STANDARD, "foo", 0, 0)
            };

            GildedRose app = new GildedRose(Items);

            app.UpdateQuality();
            Assert.Equal(0, Items[0].Quality());
        }
Beispiel #6
0
        public void AgedBrieIncreasesQualityTheOlderItGets()
        {
            IList <UpdatableItem> Items = new List <UpdatableItem> {
                UpdatableItemFactory.CreateItem(ItemType.AGED, "Aged Brie", 1, 0)
            };

            GildedRose app = new GildedRose(Items);

            app.UpdateQuality();
            Assert.Equal(1, Items[0].Quality());
        }
Beispiel #7
0
        public void QualityDegradesTwiceAsFastWhenSellByDateHasPassed()
        {
            IList <UpdatableItem> Items = new List <UpdatableItem> {
                UpdatableItemFactory.CreateItem(ItemType.STANDARD, "foo", 0, 10)
            };

            GildedRose app = new GildedRose(Items);

            app.UpdateQuality();
            Assert.Equal(8, Items[0].Quality());
        }
Beispiel #8
0
        public void BackstageQualityDropsToZeroAfterTheConcert()
        {
            IList <UpdatableItem> Items = new List <UpdatableItem> {
                UpdatableItemFactory.CreateItem(ItemType.BACKSTAGE, "Backstage passes to a TAFKAL80ETC concert", 0, 50)
            };

            GildedRose app = new GildedRose(Items);

            app.UpdateQuality();
            Assert.Equal(0, Items[0].Quality());
        }
Beispiel #9
0
        public void BackstageIncreasesQualityByThreeIfItHasToBeSoldInFiveDaysOrLess()
        {
            IList <UpdatableItem> Items = new List <UpdatableItem> {
                UpdatableItemFactory.CreateItem(ItemType.BACKSTAGE, "Backstage passes to a TAFKAL80ETC concert", 5, 0)
            };

            GildedRose app = new GildedRose(Items);

            app.UpdateQuality();
            Assert.Equal(3, Items[0].Quality());
        }
Beispiel #10
0
        public void BackstageIncreasesQualityByOneIfMoreThanTenDaysRemaining()
        {
            IList <UpdatableItem> Items = new List <UpdatableItem> {
                UpdatableItemFactory.CreateItem(ItemType.BACKSTAGE, "Backstage passes to a TAFKAL80ETC concert", 11, 0)
            };

            GildedRose app = new GildedRose(Items);

            app.UpdateQuality();
            Assert.Equal(1, Items[0].Quality());
        }
Beispiel #11
0
        public void SulfurasQualityAndSellInValuesAreNotAltered()
        {
            IList <UpdatableItem> Items = new List <UpdatableItem> {
                UpdatableItemFactory.CreateItem(ItemType.LEGENDARY, "Sulfuras, Hand of Ragnaros", 0, 80)
            };

            GildedRose app = new GildedRose(Items);

            app.UpdateQuality();
            Assert.Equal(80, Items[0].Quality());
            Assert.Equal(0, Items[0].SellIn());
        }
Beispiel #12
0
        public void ConjuredItemDecreaseQualityTwiceAsFastAsNormalItems()
        {
            IList <UpdatableItem> Items = new List <UpdatableItem> {
                UpdatableItemFactory.CreateItem(ItemType.CONJURED, "Conjured item", 1, 50),
                UpdatableItemFactory.CreateItem(ItemType.CONJURED, "Conjured item", 0, 50)
            };

            GildedRose app = new GildedRose(Items);

            app.UpdateQuality();
            Assert.Equal(48, Items[0].Quality());
            Assert.Equal(46, Items[1].Quality());
        }