コード例 #1
0
        public void Should_IncreaseQualityByThree_When_LessThanFiveDaysRemaining()
        {
            // Arrange
            var sellIn   = 4;
            var quality  = 47;
            var testItem = new Item {
                Name = "TestItem", ItemTypeId = (int)ItemTypeEnum.BackStage, Quality = quality, SellIn = sellIn
            };

            GildedRose.AddItem(testItem);

            // Act
            GildedRose.UpdateQuality();

            // Assert
            testItem.Quality.ShouldBe(50);
            testItem.SellIn.ShouldBe(3);
        }
コード例 #2
0
        public void ShouldNot_ExceedQualityLimit()
        {
            // Arrange
            var sellIn   = 4;
            var quality  = 49;
            var testItem = new Item {
                Name = "TestItem", ItemTypeId = (int)ItemTypeEnum.BackStage, Quality = quality, SellIn = sellIn
            };

            GildedRose.AddItem(testItem);

            // Act
            GildedRose.UpdateQuality();

            // Assert
            testItem.Quality.ShouldBe(50);
            testItem.SellIn.ShouldBe(3);
        }
コード例 #3
0
        public void Should_SetQualityToZero_When_DateIsPassed()
        {
            // Arrange
            var sellIn   = 0;
            var quality  = 50;
            var testItem = new Item {
                Name = "TestItem", ItemTypeId = (int)ItemTypeEnum.BackStage, Quality = quality, SellIn = sellIn
            };

            GildedRose.AddItem(testItem);

            // Act
            GildedRose.UpdateQuality();

            // Assert
            testItem.Quality.ShouldBe(0);
            testItem.SellIn.ShouldBe(-1);
        }
コード例 #4
0
        public void Should_DegrateTwiceAsNormal()
        {
            // Arrange
            var sellIn   = 0;
            var quality  = 6;
            var testItem = new Item {
                Name = "TestItem", ItemTypeId = (int)ItemTypeEnum.Conjured, Quality = quality, SellIn = sellIn
            };

            GildedRose.AddItem(testItem);

            // Act
            GildedRose.UpdateQuality(); // should substract quality by two
            GildedRose.UpdateQuality(); // here by 4

            // Assert
            testItem.Quality.ShouldBe(0);
            testItem.SellIn.ShouldBe(-2);
        }
コード例 #5
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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        public void ShouldNot_ExceedQualityLimit()
        {
            // Arrange
            var sellIn   = 20;
            var quality  = 49;
            var testItem = new Item {
                Name = "TestItem", ItemTypeId = (int)ItemTypeEnum.AgedGetsBetter, Quality = quality, SellIn = sellIn
            };

            GildedRose.AddItem(testItem);

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

            // Assert
            testItem.Quality.ShouldBeLessThanOrEqualTo(50);
            testItem.SellIn.ShouldBe(0);
        }