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

            CompositeItem items = new CompositeItem();

            items.Add(EditableItem.Create(name: "+5 Dexterity Vest", sellIn: 10, quality: 20));
            items.Add(AgedBrie.Create(sellIn: 2, quality: 0));
            items.Add(EditableItem.Create(name: "Elixir of the Mongoose", sellIn: 5, quality: 7));
            items.Add(Sulfuras.Create(sellIn: 0, quality: 80));
            items.Add(Sulfuras.Create(sellIn: -1, quality: 80));
            items.Add(ConcertBackstagePass.Create(concertName: "TAFKAL80ETC", sellIn: 15, quality: 20));
            items.Add(ConcertBackstagePass.Create(concertName: "TAFKAL80ETC", sellIn: 10, quality: 49));
            items.Add(ConcertBackstagePass.Create(concertName: "TAFKAL80ETC", sellIn: 5, quality: 49));
            items.Add(Conjured.Create(name: "Conjured Mana Cake", sellIn: 3, quality: 6));

            GildedRose app = new GildedRose(items);


            for (var i = 0; i < 31; i++)
            {
                Console.WriteLine("-------- day " + i + " --------");
                Console.WriteLine("name, sellIn, quality");

                items.DisplayItems();

                app.UpdateItemsQualityAfterADay();
            }
        }
        public void incrementConcertPassQualityThriceAfterADayWhenSellInDaysLessThan10()
        {
            ConcertBackstagePass item =
                ConcertBackstagePass.Create(concertName: "Backstage Pass", sellIn: 5, quality: 20);
            GildedRose app = new GildedRose(item);

            app.UpdateItemsQualityAfterADay();

            Assert.AreEqual(23, item.Quality);
            Assert.AreEqual(4, item.SellIn);
        }
        public void zeroOutConcertPassQualityAfterADayWhenExceededSellInDays()
        {
            ConcertBackstagePass item =
                ConcertBackstagePass.Create(concertName: "Backstage Pass", sellIn: -1, quality: 0);
            GildedRose app = new GildedRose(item);

            app.UpdateItemsQualityAfterADay();

            Assert.AreEqual(0, item.Quality);
            Assert.AreEqual(-2, item.SellIn);
        }
        public void itemQualityNeverExceedsMaxWhenIncrementingPerDay()
        {
            EditableItem agedBrie      = AgedBrie.Create(sellIn: 3, quality: MAX_QUANTITY);
            EditableItem backstagePass =
                ConcertBackstagePass.Create(concertName: "TaylorFast", sellIn: 3, quality: MAX_QUANTITY);

            items.Add(agedBrie);
            items.Add(backstagePass);

            GildedRose app = new GildedRose(items);

            app.UpdateItemsQualityAfterADay();

            Assert.AreEqual(MAX_QUANTITY, agedBrie.Quality);
            Assert.AreEqual(MAX_QUANTITY, backstagePass.Quality);
        }
        public void itemQualityNeverNegative()
        {
            EditableItem item1         = EditableItem.Create("Syomay", sellIn: 5, quality: 0);
            EditableItem backstagePass = ConcertBackstagePass.Create("TaylorFast", sellIn: 0, quality: 0);
            EditableItem conjured      = Conjured.Create("Conjured", sellIn: 0, quality: 2);

            items.Add(item1);
            items.Add(backstagePass);
            items.Add(conjured);

            GildedRose app = new GildedRose(items);

            app.UpdateItemsQualityAfterADay();

            Assert.AreEqual(0, item1.Quality);
            Assert.AreEqual(0, backstagePass.Quality);
            Assert.AreEqual(0, conjured.Quality);
        }