public void BackstagePassQualityIsZeroAfterConcert()
        {
            ItemManager.InitializeInventory();
            updateQuantityNTimes(16);

            backstagePass = new BackstagePass("Backstage passes to a TAFKAL80ETC concert", -1, 0);

            Assert.IsNotNull(ItemManager.Items.FirstOrDefault(i => i.Equals(backstagePass)));
        }
Пример #2
0
        public void Age_WhenQualityIsFifty_ShouldNotIncreaseQuality()
        {
            // Arrange
            var item = new BackstagePass("", 4, 50);

            // Act
            item.Age();
            // Assert
            item.Quality.ShouldBe(50);
        }
Пример #3
0
        public void Age_WhenCalled_ShouldDecreaseSellInByOne(int sellIn)
        {
            // Arrange
            var item = new BackstagePass("", sellIn, 0);

            // Act
            item.Age();
            // Assert
            item.SellIn.ShouldBe(sellIn - 1);
        }
Пример #4
0
        public void BackstagePassesQualityShouldBe0AfterSellInDate(string name, int sellIn, int quality)
        {
            var ItemWrapper = new BackstagePass {
                Name = name, SellIn = sellIn, Quality = quality
            };

            ItemWrapper.UpdateItem();

            Assert.That(ItemWrapper.Quality == 0);
        }
Пример #5
0
        public void BackstagePassesQualityShouldIncreaseBy3WhenSellInIsLessThan5(string name, int sellIn, int quality)
        {
            var ItemWrapper = new BackstagePass {
                Name = name, SellIn = sellIn, Quality = quality
            };

            ItemWrapper.UpdateItem();

            Assert.That(ItemWrapper.Quality == quality + 3);
        }
        public void SellInForBackstagePassDecreasesByOne()
        {
            var backstagePass = new BackstagePass {
                Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 3, Quality = 0
            };

            updater = new InventoryUpdater(new[] { backstagePass });
            ProcessMany(10);

            Assert.AreEqual(-7, backstagePass.SellIn);
        }
        public void BackstagePassQualityDropsToZeroAfterTheConcert()
        {
            var backstagePass = new BackstagePass {
                Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 5, Quality = 10
            };

            updater = new InventoryUpdater(new[] { backstagePass });
            ProcessMany(5);

            Assert.AreEqual(0, backstagePass.Quality);
        }
        public void BackstagePassQualityIncreasesByThreeWhenSellInReachesBetweenFiveAndZeroDays()
        {
            var backstagePass = new BackstagePass {
                Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 6, Quality = 10
            };

            updater = new InventoryUpdater(new[] { backstagePass });
            ProcessMany(4);

            Assert.AreEqual(22, backstagePass.Quality);
        }
        public void BackstagePassQualityIncreasesByTwoWhenSellInReachesBetweenSixAndTenDays()
        {
            var backstagePass = new BackstagePass {
                Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 11, Quality = 10
            };

            updater = new InventoryUpdater(new[] { backstagePass });
            ProcessMany(5);

            Assert.AreEqual(20, backstagePass.Quality);
        }
        public void Initialize()
        {
            ItemManager.InitializeInventory();

            dexterityVest    = new DexterityVest("+5 Dexterity Vest", 10, 20);
            agedBri          = new AgedBrie("Aged Brie", 2, 0);
            elixirOfMongoose = new MongooseElixir("Elixir of the Mongoose", 5, 7);
            handOfRagnaros   = new Sulfuras("Sulfuras, Hand of Ragnaros", 0, 80);
            backstagePass    = new BackstagePass("Backstage passes to a TAFKAL80ETC concert", 15, 20);
            manaCake         = new ManaCake("Conjured Mana Cake", 3, 6);
        }
        public void BackstagePassQualityIncreasesByOneTenDays()
        {
            var backstagePass = new BackstagePass {
                Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 20, Quality = 10
            };

            updater = new InventoryUpdater(new[] { backstagePass });
            ProcessMany(9);

            Assert.AreEqual(19, backstagePass.Quality);
        }
Пример #12
0
        public void Age_WhenSellInIsZeroOrNegative_ShouldSetDegradationRateAndQualityToZero(int sellIn)
        {
            // Arrange
            var item = new BackstagePass("", sellIn, 10);

            // Act
            item.Age();
            // Assert
            item.Quality.ShouldBe(0);
            item.DegradationRate.ShouldBe(0);
        }
Пример #13
0
        public void Ctor_WhenCalled_ShouldSetUpPropertiesCorrectly(string name, int sellIn, int quality)
        {
            // Arrange, Act
            var item = new BackstagePass(name, sellIn, quality);

            // Assert
            item.Name.ShouldBe(name);
            item.SellIn.ShouldBe(sellIn);
            item.Quality.ShouldBe(quality);
            item.DegradationRate.ShouldBe(-1);
        }
Пример #14
0
        public void Age_WhenSellInIsAboveTen_ShouldIncreaseQualityByOne(int sellIn)
        {
            // Arrange
            var initialQuality = 10;
            var item           = new BackstagePass("", sellIn, initialQuality);

            // Act
            item.Age();
            // Assert
            item.Quality.ShouldBe(initialQuality + 1);
            item.DegradationRate.ShouldBe(-1);
        }
Пример #15
0
        public void Age_WhenSellInIsBetweenOneAndFive_ShouldIncreaseQualityByThree(int sellIn)
        {
            // Arrange
            var initialQuality = 10;
            var item           = new BackstagePass("", sellIn, initialQuality);

            // Act
            item.Age();
            // Assert
            item.Quality.ShouldBe(initialQuality + 3);
            item.DegradationRate.ShouldBe(-3);
        }
Пример #16
0
        public void ShouldBeWorthlessAfterSellBy()
        {
            Item expiredPass = new BackstagePass()
            {
                Quality = _quality,
                SellIn  = -1
            };

            _rule.Apply(expiredPass);

            Assert.That(expiredPass.Quality, Is.EqualTo(0));
        }
Пример #17
0
        public void ShouldGetTripleQualityIncreaseLessThan5DaysFromSellBy()
        {
            Item backStagePass = new BackstagePass()
            {
                Quality = _quality,
                SellIn  = 4
            };

            _rule.Apply(backStagePass);

            Assert.That(backStagePass.Quality, Is.EqualTo(_quality + 3));
        }
Пример #18
0
        public void ShouldGetNormalQualityInceaseMoreThan10DaysFromSellBy()
        {
            Item backStagePass = new BackstagePass()
            {
                Quality = _quality,
                SellIn  = 20
            };

            _rule.Apply(backStagePass);

            Assert.That(backStagePass.Quality, Is.EqualTo(_quality + 1));
        }
        public void SingleRunOfUpdateQuantity()
        {
            ItemManager.UpdateQuality();

            dexterityVest    = new DexterityVest("+5 Dexterity Vest", 9, 19);
            agedBri          = new AgedBrie("Aged Brie", 1, 1);
            elixirOfMongoose = new MongooseElixir("Elixir of the Mongoose", 4, 6);
            handOfRagnaros   = new Sulfuras("Sulfuras, Hand of Ragnaros", 0, 80);
            backstagePass    = new BackstagePass("Backstage passes to a TAFKAL80ETC concert", 14, 21);
            manaCake         = new ManaCake("Conjured Mana Cake", 2, 5);

            Assert.AreEqual(6, ItemManager.Items.Count());
            Assert.IsNotNull(ItemManager.Items.FirstOrDefault(i => i.Equals(dexterityVest)));
            Assert.IsNotNull(ItemManager.Items.FirstOrDefault(i => i.Equals(agedBri)));
            Assert.IsNotNull(ItemManager.Items.FirstOrDefault(i => i.Equals(elixirOfMongoose)));
            Assert.IsNotNull(ItemManager.Items.FirstOrDefault(i => i.Equals(handOfRagnaros)));
            Assert.IsNotNull(ItemManager.Items.FirstOrDefault(i => i.Equals(backstagePass)));
            Assert.IsNotNull(ItemManager.Items.FirstOrDefault(i => i.Equals(manaCake)));
        }
        public void ThreeRunsOfUpdateQuantity()
        {
            ItemManager.InitializeInventory();
            updateQuantityNTimes(3);

            dexterityVest    = new DexterityVest("+5 Dexterity Vest", 7, 17);
            agedBri          = new AgedBrie("Aged Brie", -1, 4);
            elixirOfMongoose = new MongooseElixir("Elixir of the Mongoose", 2, 4);
            handOfRagnaros   = new Sulfuras("Sulfuras, Hand of Ragnaros", 0, 80);
            backstagePass    = new BackstagePass("Backstage passes to a TAFKAL80ETC concert", 12, 23);
            manaCake         = new ManaCake("Conjured Mana Cake", 0, 3);

            Assert.AreEqual(6, ItemManager.Items.Count());
            Assert.IsNotNull(ItemManager.Items.FirstOrDefault(i => i.Equals(dexterityVest)));
            Assert.IsNotNull(ItemManager.Items.FirstOrDefault(i => i.Equals(agedBri)));
            Assert.IsNotNull(ItemManager.Items.FirstOrDefault(i => i.Equals(elixirOfMongoose)));
            Assert.IsNotNull(ItemManager.Items.FirstOrDefault(i => i.Equals(handOfRagnaros)));
            Assert.IsNotNull(ItemManager.Items.FirstOrDefault(i => i.Equals(backstagePass)));
            Assert.IsNotNull(ItemManager.Items.FirstOrDefault(i => i.Equals(manaCake)));
        }
        public void BackstagePassIncreasesInValueByThreeFiveDaysBeforeEvent()
        {
            ItemManager.InitializeInventory();
            updateQuantityNTimes(11);

            backstagePass = new BackstagePass("Backstage passes to a TAFKAL80ETC concert", 4, 38);

            Assert.IsNotNull(ItemManager.Items.FirstOrDefault(i => i.Equals(backstagePass)));

            updateQuantityNTimes(1);
            backstagePass.Quality += 3;
            backstagePass.SellIn  -= 1;

            Assert.IsNotNull(ItemManager.Items.FirstOrDefault(i => i.Equals(backstagePass)));

            updateQuantityNTimes(1);
            backstagePass.Quality += 3;
            backstagePass.SellIn  -= 1;

            Assert.IsNotNull(ItemManager.Items.FirstOrDefault(i => i.Equals(backstagePass)));
        }