Ejemplo n.º 1
0
        public static void Main(string[] args)
        {
            System.Console.WriteLine("OMGHAI!");
            var app = new GildedRose(new GildedRoseWebService());

            for (var i = 0; i < 31; i++)
            {
                System.Console.WriteLine("-------- day " + i + " --------");
                app.PrintReport();
                app.UpdateQuality();
            }
        }
 public void AgeOurStandardInventoryForSeveralMonthsAndVerifyEachDaysResults()
 {
     var testSubject = new GildedRose();
     var log = new StringBuilder();
     for (var i = 0; i < 50; i++)
     {
         this.Dump(testSubject, log, i);
         testSubject.UpdateQuality();
     }
     this.Dump(testSubject, log, 50);
     Approvals.Verify(log.ToString());
 }
Ejemplo n.º 3
0
    public static void Main(string[] args)
    {
        System.Console.WriteLine("OMGHAI!");

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

            var guildedRose = new GildedRose(items);

            for (int i = 0; i < 31; i++)
            {
                System.Console.WriteLine("-------- jour       " + i + " --------");
                System.Console.WriteLine("name, sellIn, quality");
                for (int j = 0; j < items.Count; j++)
                {
                    System.Console.WriteLine(items[j].Name + ", " + items[j].SellIn + ", " + items[j].Quality);
                }
                System.Console.WriteLine("");
                guildedRose.UpdateQuality();
                System.Console.ReadKey();
            }
            System.Console.ReadKey();
    }
Ejemplo n.º 4
0
        public void updateQuality_SellinEqualsZero_QualityDecreaseByFour()
        {
            //Arrange
            Item[] items = new Item[] { new Item{Name = "Conjured Mana Cake", SellIn=0, Quality = 20} };
            GildedRose app = new GildedRose(items);

            //Act
            app.UpdateQuality();

            //Assert
            Assert.Equal("Conjured Mana Cake", items[0].Name);
            Assert.Equal(-1, items[0].SellIn);
            Assert.Equal(16, items[0].Quality);
        }
Ejemplo n.º 5
0
        public void updateQuality_SellinGreterThanZero_QualityDecreaseByTwo()
        {
            //Arrange
            Item[] items = new Item[] { new Item{Name = "Conjured Mana Cake", SellIn=10, Quality = 20} };
            GildedRose app = new GildedRose(items);

            //Act
            app.UpdateQuality();

            //Assert
            Assert.Equal("Conjured Mana Cake", items[0].Name);
            Assert.Equal(9, items[0].SellIn);
            Assert.Equal(18, items[0].Quality);
        }
Ejemplo n.º 6
0
        public void updateQuality_QualityEqualsZero_QualityUnchanged()
        {
            //Arrange
            Item[] items = new Item[] { new Item{Name = "+5 Dexterity Vest", SellIn = 10, Quality = 0} };
            GildedRose app = new GildedRose(items);

            //Act
            app.UpdateQuality();

            //Assert
            Assert.Equal("+5 Dexterity Vest", items[0].Name);
            Assert.Equal(9, items[0].SellIn);
            Assert.Equal(0, items[0].Quality);
        }
Ejemplo n.º 7
0
        public void updateQuality_SellinEvenAndLessThanZero_QualityDecreaseByFour()
        {
            //Arrange
            Item[] items = new Item[] { new Item{Name = "Suspicious Wooden shield", SellIn=-2, Quality = 20} };
            GildedRose app = new GildedRose(items);

            //Act
            app.UpdateQuality();

            //Assert
            Assert.Equal("Suspicious Wooden shield", items[0].Name);
            Assert.Equal(-3, items[0].SellIn);
            Assert.Equal(16, items[0].Quality);
        }
Ejemplo n.º 8
0
        public void updateQuality_SellinEqualsZeroAndQualityEqualsThree_QualityToZero()
        {
            //Arrange
            Item[] items = new Item[] { new Item{Name = "Suspicious Wooden shield", SellIn=0, Quality = 3} };
            GildedRose app = new GildedRose(items);

            //Act
            app.UpdateQuality();

            //Assert
            Assert.Equal("Suspicious Wooden shield", items[0].Name);
            Assert.Equal(-1, items[0].SellIn);
            Assert.Equal(0, items[0].Quality);
        }
Ejemplo n.º 9
0
        public void updateQuality_SellinGreterThanZero_QualityIncreaseByOne()
        {
            //Arrange
            Item[] items = new Item[] { new Item{Name = "Aged Brie", SellIn = 10, Quality = 20} };
            GildedRose app = new GildedRose(items);

            //Act
            app.UpdateQuality();

            //Assert
            Assert.Equal("Aged Brie", items[0].Name);
            Assert.Equal(9, items[0].SellIn);
            Assert.Equal(21, items[0].Quality);
        }
Ejemplo n.º 10
0
        public void updateQuality_QualityEqualsThree_QualityToZero()
        {
            //Arrange
            Item[] items = new Item[] { new Item{Name = "Conjured Mana Cake", SellIn=0, Quality = 3} };
            GildedRose app = new GildedRose(items);

            //Act
            app.UpdateQuality();

            //Assert
            Assert.Equal("Conjured Mana Cake", items[0].Name);
            Assert.Equal(-1, items[0].SellIn);
            Assert.Equal(0, items[0].Quality);
        }
Ejemplo n.º 11
0
        public void updateQuality_SellinLessThanZero_QualityDecreaseByTwo()
        {
            //Arrange
            Item[] items = new Item[] { new Item{Name = "+5 Dexterity Vest", SellIn = -1, Quality = 20} };
            GildedRose app = new GildedRose(items);

            //Act
            app.UpdateQuality();

            //Assert
            Assert.Equal("+5 Dexterity Vest", items[0].Name);
            Assert.Equal(-2, items[0].SellIn);
            Assert.Equal(18, items[0].Quality);
        }
Ejemplo n.º 12
0
        public void updateQuality_QualityEqualsFifty_QualityDecreaseByOne()
        {
            //Arrange
            Item[] items = new Item[] { new Item{Name = "+5 Dexterity Vest", SellIn = 10, Quality = 50} };
            GildedRose app = new GildedRose(items);

            //Act
            app.UpdateQuality();

            //Assert
            Assert.Equal("+5 Dexterity Vest", items[0].Name);
            Assert.Equal(9, items[0].SellIn);
            Assert.Equal(49, items[0].Quality);
        }
Ejemplo n.º 13
0
        public void updateQuality_SellinGreterThanZero_QualityUnchanged()
        {
            //Arrange
            Item[] items = new Item[] { new Item{Name = "Sulfuras, Hand of Ragnaros", SellIn = 10, Quality = 20} };
            GildedRose app = new GildedRose(items);

            //Act
            app.UpdateQuality();

            //Assert
            Assert.Equal("Sulfuras, Hand of Ragnaros", items[0].Name);
            Assert.Equal(10, items[0].SellIn);
            Assert.Equal(20, items[0].Quality);
        }
Ejemplo n.º 14
0
        public void updateQuality_QualityEqualsFifty_QualityUnchanged()
        {
            //Arrange
            Item[] items = new Item[] { new Item{Name = "Aged Brie", SellIn = 10, Quality = 50} };
            GildedRose app = new GildedRose(items);

            //Act
            app.UpdateQuality();

            //Assert
            Assert.Equal("Aged Brie", items[0].Name);
            Assert.Equal(9, items[0].SellIn);
            Assert.Equal(50, items[0].Quality);
        }
Ejemplo n.º 15
0
        public void updateQuality_QualityEqualsFortyNine_QualityToFifty()
        {
            //Arrange
            Item[] items = new Item[] { new Item{Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 5, Quality = 49} };
            GildedRose app = new GildedRose(items);

            //Act
            app.UpdateQuality();

            //Assert
            Assert.Equal("Backstage passes to a TAFKAL80ETC concert", items[0].Name);
            Assert.Equal(4, items[0].SellIn);
            Assert.Equal(50, items[0].Quality);
        }
Ejemplo n.º 16
0
        public void updateQuality_QualityEqualsZero_QualityIncreaseByOne()
        {
            //Arrange
            Item[] items = new Item[] { new Item{Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 11, Quality = 0} };
            GildedRose app = new GildedRose(items);

            //Act
            app.UpdateQuality();

            //Assert
            Assert.Equal("Backstage passes to a TAFKAL80ETC concert", items[0].Name);
            Assert.Equal(10, items[0].SellIn);
            Assert.Equal(1, items[0].Quality);
        }
Ejemplo n.º 17
0
        public void updateQuality_SellinBetweenSixAndTen_QualityIncreaseByTwo()
        {
            //Arrange
            Item[] items = new Item[] { new Item{Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 6,Quality = 20} };
            GildedRose app = new GildedRose(items);

            //Act
            app.UpdateQuality();

            //Assert
            Assert.Equal("Backstage passes to a TAFKAL80ETC concert", items[0].Name);
            Assert.Equal(5, items[0].SellIn);
            Assert.Equal(22, items[0].Quality);
        }
Ejemplo n.º 18
0
    public void AgedBrieItem_SellLowerThan0_QualityMoreThan50_QualityMaxAt50()
    {
        //--Arrange
        IList<Item> Items = new List<Item>
        {
           new Item {Name = "Aged Brie", SellIn = -10, Quality = 60 }
        };
        var app = new GildedRose(Items);

        //--Act
        app.UpdateQuality();

        //--Assert
        Assert.AreEqual(-11, Items[0].SellIn);
        Assert.AreEqual(60, Items[0].Quality);
    }
Ejemplo n.º 19
0
    public void AgedBrieItem_SellGreaterThan0_QualityUpgradeNormally()
    {
        //--Arrange
        IList<Item> Items = new List<Item>
        {
           new Item {Name = "Aged Brie", SellIn = 5, Quality = 10 }
        };
        var app = new GildedRose(Items);

        //--Act
        app.UpdateQuality();

        //--Assert
        Assert.AreEqual(4, Items[0].SellIn);
        Assert.AreEqual(11, Items[0].Quality);
    }
Ejemplo n.º 20
0
    public void AgedBrieItem_SellInAt0_QualityUpgradeDoubled()
    {
        //--Arrange
        IList<Item> Items = new List<Item>
        {
           new Item {Name = "Aged Brie", SellIn = 0, Quality = 10 }
        };
        var app = new GildedRose(Items);

        //--Act
        app.UpdateQuality();

        //--Assert
        Assert.AreEqual(-1, Items[0].SellIn);
        Assert.AreEqual(12, Items[0].Quality);
    }
Ejemplo n.º 21
0
        public void UpdateQuality_WhenItemIsConjured_QualityDegradesBeforeExpiryDate()
        {
            IList <Item> items = new List <Item> {
                ItemFactory.CreateItem("Conjured Mana Cake", 2, 4),
                ItemFactory.CreateItem("Conjured Mana Cake", 10, 25),
                ItemFactory.CreateItem("Conjured Mana Cake", 20, 50),
            };
            GildedRose app = new GildedRose(items);

            app.UpdateQuality();

            Assert.Equal(2, items[0].Quality);
            Assert.Equal(23, items[1].Quality);
            Assert.Equal(48, items[2].Quality);

            app.UpdateQuality();

            Assert.Equal(0, items[0].Quality);
        }
Ejemplo n.º 22
0
        public void UpdateQuality_WhenItemIsBackstagePass_QualityIncreasesBeforeExpiryDate()
        {
            IList <Item> items = new List <Item> {
                ItemFactory.CreateItem("Backstage passes to a TAFKAL80ETC concert", 11, 0),
                ItemFactory.CreateItem("Backstage passes to a TAFKAL80ETC concert", 20, 20),
                ItemFactory.CreateItem("Backstage passes to a TAFKAL80ETC concert", 30, 48),
            };
            GildedRose app = new GildedRose(items);

            app.UpdateQuality();

            Assert.Equal(1, items[0].Quality);
            Assert.Equal(21, items[1].Quality);
            Assert.Equal(49, items[2].Quality);

            app.UpdateQuality();

            Assert.Equal(50, items[2].Quality);
        }
Ejemplo n.º 23
0
        public void UpdateQuality_WhenItemIsRegular_QualityDegradesBeforeExpiryDate()
        {
            IList <Item> items = new List <Item> {
                ItemFactory.CreateItem("foo", 2, 2),
                ItemFactory.CreateItem("bar", 10, 25),
                ItemFactory.CreateItem("baz", 20, 50),
            };
            GildedRose app = new GildedRose(items);

            app.UpdateQuality();

            Assert.Equal(1, items[0].Quality);
            Assert.Equal(24, items[1].Quality);
            Assert.Equal(49, items[2].Quality);

            app.UpdateQuality();

            Assert.Equal(0, items[0].Quality);
        }
Ejemplo n.º 24
0
        public void QueijoBEnvelhecido_DecrementaPrazoDeVenda_ValidaPrazoVenda()
        {
            //Arrange
            var queijo = new QueijoBEnvelhecido();
            var Items  = new List <Item> {
                new Item {
                    Nome = Name, PrazoParaVenda = 3, Qualidade = 6
                }
            };
            GildedRose app = new GildedRose(Items);

            //Act
            for (int i = 0; i < DIAS; i++)
            {
                Item = queijo.ValidarItems(Items);
            }
            //Assert
            Assert.Equal(-21, Item.PrazoParaVenda);
        }
Ejemplo n.º 25
0
        public void UpdateQuality_WhenItemIsAgedBrie_QualityIncreasesBeforeExpiryDate()
        {
            IList <Item> items = new List <Item> {
                ItemFactory.CreateItem("Aged Brie", 2, 0),
                ItemFactory.CreateItem("Aged Brie", 10, 25),
                ItemFactory.CreateItem("Aged Brie", 20, 48),
            };
            GildedRose app = new GildedRose(items);

            app.UpdateQuality();

            Assert.Equal(1, items[0].Quality);
            Assert.Equal(26, items[1].Quality);
            Assert.Equal(49, items[2].Quality);

            app.UpdateQuality();

            Assert.Equal(50, items[2].Quality);
        }
Ejemplo n.º 26
0
        public void QueijoBEnvelhecido_QualidadeVaiAZeroCasoPrazoDeVendaEstejaPassado_ZeraQualidade()
        {
            //Arrange
            var queijo = new QueijoBEnvelhecido();
            var Items  = new List <Item> {
                new Item {
                    Nome = Name, PrazoParaVenda = 3, Qualidade = 6
                }
            };
            GildedRose app = new GildedRose(Items);

            //Act
            for (int i = 0; i < DIAS; i++)
            {
                Item = queijo.ValidarItems(Items);
            }
            //Assert
            Assert.Equal(50, Item.Qualidade);
        }
Ejemplo n.º 27
0
        public void DecreaseTheQualityOfAnItemByOne()
        {
            IList <Item> actualItems = new List <Item> {
                new Item {
                    Name = "apple", SellIn = 1, Quality = 1
                }
            };
            var qualityUpdater = new GildedRose(actualItems);

            qualityUpdater.UpdateQuality();

            var expectedItems = new List <Item> {
                new Item {
                    Name = "apple", SellIn = 0, Quality = 0
                }
            };

            Assert.AreEqual(expectedItems[0].Quality, actualItems[0].Quality);
        }
Ejemplo n.º 28
0
        public void DecreaseTheQualityTwiceAsFastWhenPastSellInDate()
        {
            IList <Item> actualItems = new List <Item> {
                new Item {
                    Name = "apple", SellIn = -1, Quality = 5
                }
            };
            var qualityUpdater = new GildedRose(actualItems);

            qualityUpdater.UpdateQuality();

            var expectedItems = new List <Item> {
                new Item {
                    Name = "apple", SellIn = -2, Quality = 3
                }
            };

            Assert.AreEqual(expectedItems[0].Quality, actualItems[0].Quality);
        }
Ejemplo n.º 29
0
        public void NotDecreaseTheQualityWhenThereIsNoQualityLeft()
        {
            IList <Item> actualItems = new List <Item> {
                new Item {
                    Name = "apple", SellIn = 0, Quality = 0
                }
            };
            var qualityUpdater = new GildedRose(actualItems);

            qualityUpdater.UpdateQuality();

            var expectedItems = new List <Item> {
                new Item {
                    Name = "apple", SellIn = 0, Quality = 0
                }
            };

            Assert.AreEqual(expectedItems[0].Quality, actualItems[0].Quality);
        }
Ejemplo n.º 30
0
        public void SulfurasDoesNotDecreaseInQualityOrSellIn()
        {
            IList <Item> Items = new List <Item> {
                new Item {
                    Name = "Sulfuras, Hand of Ragnaros", SellIn = 0, Quality = 80
                },
                new Item {
                    Name = "Sulfuras, Hand of Ragnaros", SellIn = -1, Quality = 80
                }
            };
            var gildedRose = new GildedRose(Items);

            gildedRose.UpdateQuality();

            gildedRose.Items[0].Quality.Should().Be(80);
            gildedRose.Items[0].SellIn.Should().Be(0);
            gildedRose.Items[1].Quality.Should().Be(80);
            gildedRose.Items[1].SellIn.Should().Be(-1);
        }
 public void Initialize()
 {
     dexterityVest   = new Item("+5 Dexterity Vest");
     agedBrie        = new Item("Aged Brie");
     elixir          = new Item("Elixir of the Mongoose");
     sulfuras        = new Item("Sulfuras, Hand of Ragnaros");
     backstagePasses = new Item("Backstage passes to a TAFKAL80ETC concert")
     {
         SellIn = 15, Quality = 20
     };
     conjured = new Item("Conjured Mana Cake")
     {
         SellIn = 3, Quality = 6
     };
     items = new List <Item> {
         dexterityVest, agedBrie, elixir, sulfuras, backstagePasses, conjured
     };
     sut = new GildedRose(items);
 }
Ejemplo n.º 32
0
        public void SetUp()
        {
            var items = new List <Item>()
            {
                new Item {
                    Name = "+5 Dexterity Vest", SellIn = 10, Quality = 20
                },
                new Item {
                    Name = "Aged Brie", SellIn = 2, Quality = 0
                },
                new Item {
                    Name = "Elixir of the Mongoose", SellIn = 5, Quality = 7
                },
                new Item {
                    Name = "Sulfuras, Hand of Ragnaros", SellIn = 0, Quality = 80
                },
                new Item
                {
                    Name    = "Backstage passes to a TAFKAL80ETC concert",
                    SellIn  = 15,
                    Quality = 20
                },
                new Item {
                    Name = "Conjured Mana Cake", SellIn = 3, Quality = 6
                },
                new Item {
                    Name = "Spoiled Item", Quality = 10, SellIn = 0
                },
                new Item {
                    Name = "Low Quality Item", Quality = 1, SellIn = 1
                },
                new Item {
                    Name = "Conjured Mana Cake", Quality = 5, SellIn = 5
                },
                new Item {
                    Name = "Conjured Water", Quality = 7, SellIn = 7
                }
            };

            _app   = new GildedRose(items);
            _items = _app.GetItems();
        }
Ejemplo n.º 33
0
        public void QualityDoesntGoOver50()
        {
            //Quality stops when it gets to 50

            //arrange
            IList <Item> Items = new List <Item> {
                new Item {
                    Name = "Aged Brie", SellIn = 5, Quality = 50
                }
            };
            GildedRose app = new GildedRose(Items);

            //  var Quality = new quality();


            //act
            app.UpdateQuality();
            //assert
            Assert.AreEqual(50, Items[0].Quality);
        }
Ejemplo n.º 34
0
        public void Once_sell_by_date_has_passed_Quality_degrades_twice_as_fast()
        {
            int initialQuality = 10;
            int initialSellIn  = 1;
            int numberOfDays   = 4;

            IList <Item> items = new List <Item> {
                new Item {
                    Name = "foo", SellIn = initialSellIn, Quality = initialQuality
                }
            };
            GildedRose app = new GildedRose(items);

            app.AdvanceTime(numberOfDays);

            var normalRateQualityDecrease = initialSellIn;
            var doubleRateQualityDecrease = (numberOfDays - initialSellIn) * 2;

            Assert.AreEqual(initialQuality - (normalRateQualityDecrease + doubleRateQualityDecrease), items[0].Quality);
        }
Ejemplo n.º 35
0
        public void Corselete5DEX_PrazoParaVendaPassado_QualidadePerdeMaisValor()
        {
            var corselete5DEX = new Corselete5DEX();
            var Items         = new List <Item> {
                new Item {
                    Nome = ITEM_NAME_CORSELETE_5_DEXT, PrazoParaVenda = 10, Qualidade = 20
                }
            };
            GildedRose app = new GildedRose(Items);

            //Act
            for (int i = 0; i < DIAS; i++)
            {
                //Assert.Equal(8, Items.Where(i => i.PrazoParaVenda == -1).Sum(q => q.Qualidade -= 2));
                Item = corselete5DEX.ValidarItems(Items);
            }

            //Assert
            Assert.Equal(0, Item.Qualidade);
        }
Ejemplo n.º 36
0
        public void UpdateQuality_Item_QualityDegradesTwiceAfterSellByDate([Range(2, 50)] int startQuality)
        {
            IList <Item> items = new List <Item>
            {
                new Item {
                    Name = "BEFORE_SELL_BY", SellIn = 1, Quality = startQuality
                },
                new Item {
                    Name = "AFTER_SELL_BY", SellIn = 0, Quality = startQuality
                }
            };
            var app = new GildedRose(items);

            app.UpdateQuality();

            var beforeSellByDelta = startQuality - items[0].Quality;
            var afterSellByDelta  = startQuality - items[1].Quality;

            Assert.AreEqual(beforeSellByDelta * 2, afterSellByDelta);
        }
Ejemplo n.º 37
0
        public void UpdateQuality_ConjuredItem_QualityDegradesTwice([Range(2, 50)] int startQuality)
        {
            IList <Item> items = new List <Item>
            {
                new Item {
                    Name = "DEFAULT_ITEM", SellIn = 1, Quality = startQuality
                },
                new Item {
                    Name = "Conjured Mana Cake", SellIn = 1, Quality = startQuality
                }
            };
            var app = new GildedRose(items);

            app.UpdateQuality();

            var defaultQualityDelta  = startQuality - items[0].Quality;
            var conjuredQualityDelta = startQuality - items[1].Quality;

            Assert.AreEqual(defaultQualityDelta * 2, conjuredQualityDelta);
        }
        public void UpdateQuality_QualityCannotBeNegative()
        {
            // Arrange
            IList <Item> items = new List <Item> {
                new Item {
                    Name = "foo", SellIn = 2, Quality = 2
                }
            };
            GildedRose app = new GildedRose(items);

            // Act
            app.UpdateQuality();
            app.UpdateQuality();
            app.UpdateQuality();

            // Assert
            Assert.Equal("foo", items[0].Name);
            Assert.Equal(-1, items[0].SellIn);
            Assert.Equal(0, items[0].Quality);
        }
        public void Test_Quality_Never_Negative()
        {
            IList <Item> items = new List <Item> {
                new Item {
                    Name = "+5 Dexterity Vest", SellIn = 1, Quality = 1
                }
            };

            GildedRose unitUnderTest = new GildedRose(items);

            unitUnderTest.UpdateQuality();

            Assert.Equal(0, items[0].Quality);
            Assert.Equal(0, items[0].SellIn);

            unitUnderTest.UpdateQuality();

            Assert.Equal(0, items[0].Quality);
            Assert.Equal(-1, items[0].SellIn);
        }
Ejemplo n.º 40
0
        public void QueijoBEnvelhecido_ItemValorAcimaDoPermitido_DevePararDeIncrementarAQualidade()
        {
            //Arrange
            var queijo = new QueijoBEnvelhecido();
            var Items  = new List <Item> {
                new Item {
                    Nome = Name, PrazoParaVenda = 3, Qualidade = 6
                }
            };
            GildedRose app = new GildedRose(Items);

            //Act
            for (int i = 0; i < 1; i++)
            {
                Item = queijo.ValidarItems(Items);
            }

            //Assert
            Assert.Equal(7, Item.Qualidade);
        }
Ejemplo n.º 41
0
        public void Ingressos_ValidaQualidade_DependentoDoPrazoParaVendaIncrementaQualidade()
        {
            //Arrange
            var ingresso = new Ingresso();
            var Items    = new List <Item> {
                new Item {
                    Nome = ITEM_NAME, PrazoParaVenda = 6, Qualidade = 50
                }
            };
            GildedRose app = new GildedRose(Items);

            //Act
            for (int i = 0; i <= DIAS; i++)
            {
                Item = ingresso.ValidarItems(Items);
            }

            //Assert
            Assert.Equal(0, Item.Qualidade);
        }
        public void Test_Quality_Degrades_Twice_SellIn_Negative()
        {
            IList <Item> items = new List <Item> {
                new Item {
                    Name = "+5 Dexterity Vest", SellIn = -1, Quality = 10
                }
            };

            GildedRose unitUnderTest = new GildedRose(items);

            unitUnderTest.UpdateQuality();

            Assert.Equal(8, items[0].Quality);
            Assert.Equal(-2, items[0].SellIn);

            unitUnderTest.UpdateQuality();

            Assert.Equal(6, items[0].Quality);
            Assert.Equal(-3, items[0].SellIn);
        }
Ejemplo n.º 43
0
        public void AgedBrieNoSellInDate()
        {
            //Should increase by 2 if there is no SellIn Date

            //arrange
            IList <Item> Items = new List <Item> {
                new Item {
                    Name = "Aged Brie", SellIn = 0, Quality = 5
                }
            };
            GildedRose app = new GildedRose(Items);

            //  var Quality = new quality();


            //act
            app.UpdateQuality();
            //assert
            Assert.AreEqual(7, Items[0].Quality);
        }
        public void UpdateQuality_BackstagePasses_5DaysToConcert()
        {
            //Arrange
            IList <Item> backstagePass = new List <Item>()
            {
                new Item
                {
                    Name    = "Backstage passes to a TAFKAL80ETC concert",
                    SellIn  = 15,
                    Quality = 20
                }
            };
            GildedRose app = new GildedRose(backstagePass);

            //Action
            app.UpdateQuality(10);

            //Assert
            Assert.IsTrue(backstagePass[0].Quality == 23);
        }
Ejemplo n.º 45
0
        public void Corselete5DEX_ValidaValorMaximoDaQualidade_DeveParardeIncrementarAQualidade()
        {
            //Arrange
            var corselete5DEX = new Corselete5DEX();
            var Items         = new List <Item> {
                new Item {
                    Nome = ITEM_NAME_CORSELETE_5_DEXT, PrazoParaVenda = 10, Qualidade = 20
                }
            };
            GildedRose app = new GildedRose(Items);

            //Act
            for (int i = 0; i < DIAS; i++)
            {
                Item = corselete5DEX.ValidarItems(Items);
            }
            //Assert
            Assert.Equal(-20, Item.PrazoParaVenda);
            Assert.Equal(0, Item.Qualidade);
        }
Ejemplo n.º 46
0
        public void Given_ConjuredItemAndSellInIsZero_When_NextDay_Then_QualityDropsWithFourAndSellInDropsWithOne()
        {
            IList <Item> Items = new List <Item>
            {
                new Item
                {
                    Name    = "Conjured Mana Cake",
                    SellIn  = 0,
                    Quality = 20
                },
            };

            GildedRose app = new GildedRose(Items);

            app.UpdateQuality();


            Assert.AreEqual("Conjured Mana Cake", Items[0].Name);
            Assert.AreEqual(-1, Items[0].SellIn);
            Assert.AreEqual(16, Items[0].Quality);
        }
Ejemplo n.º 47
0
        public void Ingressos_ZeraQualidadeSePrazoDeVendaIgualAZero_ValidaQualidade()
        {
            //Arrange
            var ingresso = new Ingresso();
            var Items    = new List <Item> {
                new Item {
                    Nome = ITEM_NAME, PrazoParaVenda = 15, Qualidade = 20
                }
            };
            GildedRose app = new GildedRose(Items);

            //Act
            for (int i = 1; i <= 16; i++)
            {
                Item = ingresso.ValidarItems(Items);
            }

            //Assert
            Assert.Equal(-1, Item.PrazoParaVenda);
            Assert.Equal(0, Item.Qualidade);
        }
Ejemplo n.º 48
0
        public void Given_BackstagePassesItemAndSellInIsZero_When_NextDay_Then_QualityEqualsZeroAndSellInDropsWithOne()
        {
            IList <Item> Items = new List <Item>
            {
                new Item
                {
                    Name    = "Backstage passes to a TAFKAL80ETC concert",
                    SellIn  = 0,
                    Quality = 20
                },
            };

            GildedRose app = new GildedRose(Items);

            app.UpdateQuality();


            Assert.AreEqual("Backstage passes to a TAFKAL80ETC concert", Items[0].Name);
            Assert.AreEqual(-1, Items[0].SellIn);
            Assert.AreEqual(0, Items[0].Quality);
        }
Ejemplo n.º 49
0
        public void ShouldNot_UpdateItem()
        {
            // Arrange
            var sellIn   = 20;
            var quality  = 5;
            var testItem = new Item {
                Name = "TestItem", ItemTypeId = (int)ItemTypeEnum.Legendary, Quality = quality, SellIn = sellIn
            };

            GildedRose.AddItem(testItem);

            // Act
            for (int i = 0; i < 31; i++)
            {
                GildedRose.UpdateQuality();
            }

            // Assert
            testItem.Quality.ShouldBe(quality);
            testItem.SellIn.ShouldBe(sellIn);
        }
        public void ShouldNot_AllowQualityGoBelowZero()
        {
            // Arrange
            var sellIn   = 30;
            var quality  = 1;
            var testItem = new Item {
                Name = "TestItem", ItemTypeId = (int)ItemTypeEnum.AgedGetsWorse, Quality = quality, SellIn = sellIn
            };

            GildedRose.AddItem(testItem);

            // Act
            for (int i = 0; i < 31; i++)
            {
                GildedRose.UpdateQuality();
            }

            // Assert
            testItem.Quality.ShouldBeGreaterThanOrEqualTo(0);
            testItem.SellIn.ShouldBe(-1);
        }
Ejemplo n.º 51
0
        public void updateQuality_SellinEqualsFive_QualityIncreaseByThree()
        {
            //Arrange
            Item[] items = new Item[] { new Item{Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 5, Quality = 20} };
            GildedRose app = new GildedRose(items);

            //Act
            app.UpdateQuality();

            //Assert
            Assert.Equal("Backstage passes to a TAFKAL80ETC concert", items[0].Name);
            Assert.Equal(4, items[0].SellIn);
            Assert.Equal(23, items[0].Quality);
        }
Ejemplo n.º 52
0
    public void RegularItem_SellInGreaterThan0_QualityDegradeNormally()
    {
        //--Arrange
        IList<Item> Items = new List<Item>
        {
           new Item {Name = "+5 Dexterity Vest", SellIn = 10, Quality = 20 }
        };
        var app = new GildedRose(Items);

        //--Act
        app.UpdateQuality();

        //--Assert
        Assert.AreEqual(9, Items[0].SellIn);
        Assert.AreEqual(19, Items[0].Quality);
    }
 private void Dump(GildedRose testSubject, StringBuilder log, int iteration)
 {
     log.AppendFormat("After Iteration {0}", iteration);
     testSubject.DumpDebugInfo(log);
     log.AppendLine();
 }
Ejemplo n.º 54
0
    public void RegularItem_SellInArriveAt0_QualityDegradeDoubled()
    {
        //--Arrange
        IList<Item> Items = new List<Item>
        {
           new Item {Name = "+5 Dexterity Vest", SellIn = 0, Quality = 10 }
        };
        var app = new GildedRose(Items);

        //--Act
        app.UpdateQuality();

        //--Assert
        Assert.AreEqual(-1, Items[0].SellIn);
        Assert.AreEqual(8, Items[0].Quality);
    }
Ejemplo n.º 55
0
 public void setup()
 {
     gildedRose = new GildedRose();
     items = gildedRose.makeItems();
 }
Ejemplo n.º 56
0
    public void LegendaryItem_SellInAt0_QualityDontChange()
    {
        //--Arrange
        IList<Item> Items = new List<Item>
        {
           new Item {Name = "Sulfuras, Hand of Ragnaros", SellIn = 0, Quality = 80 }
        };
        var app = new GildedRose(Items);

        //--Act
        app.UpdateQuality();

        //--Assert
        Assert.AreEqual(0, Items[0].SellIn);
        Assert.AreEqual(80, Items[0].Quality);
    }
Ejemplo n.º 57
0
 public void Setup()
 {
     webService = new Mock<IGildedRoseWebService>();
     subject = new GildedRose(webService.Object);
 }
Ejemplo n.º 58
0
        public void updateQuality_SellinEqualsZero_QualityToZero()
        {
            //Arrange
            Item[] items = new Item[] { new Item{Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 0, Quality = 20} };
            GildedRose app = new GildedRose(items);

            //Act
            app.UpdateQuality();

            //Assert
            Assert.Equal("Backstage passes to a TAFKAL80ETC concert", items[0].Name);
            Assert.Equal(-1, items[0].SellIn);
            Assert.Equal(0, items[0].Quality);
        }
Ejemplo n.º 59
0
    public void BackstagePass_SellInAt0_QualityUpgradeThrice()
    {
        //--Arrange
        IList<Item> Items = new List<Item>
        {
           new Item {Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 1, Quality = 10 }
        };
        var app = new GildedRose(Items);

        //--Act
        app.UpdateQuality();

        //--Assert
        Assert.AreEqual(0, Items[0].SellIn);
        Assert.AreEqual(13, Items[0].Quality);
    }
Ejemplo n.º 60
0
    public void RegularItem_SellInLower0_QualityDegradeMinAt0()
    {
        //--Arrange
        IList<Item> Items = new List<Item>
        {
           new Item {Name = "+5 Dexterity Vest", SellIn = -5, Quality = 0 }
        };
        var app = new GildedRose(Items);

        //--Act
        app.UpdateQuality();

        //--Assert
        Assert.AreEqual(-6, Items[0].SellIn);
        Assert.AreEqual(0, Items[0].Quality);
    }