コード例 #1
0
ファイル: ItemTests.cs プロジェクト: darrenkwilliams/grajb
        public void AgedBrieTestQuality()
        {
            var agedBrie = new AgedBrie();

            agedBrie.EndOfDayUpdate(4, 5);
            agedBrie.Quality.ShouldBe(6);
        }
コード例 #2
0
    public static IList <Item> UpdateItensType(IList <Item> Items)
    {
        IList <Item> updatedItemListWithClasses = Items;

        for (var i = 0; i < Items.Count; i++)
        {
            if (Items[i].Name == "Backstage passes to a TAFKAL80ETC concert")
            {
                updatedItemListWithClasses[i] = new Backstage {
                    Name = Items[i].Name, SellIn = Items[i].SellIn, Quality = Items[i].Quality
                };
            }
            else if (Items[i].Name == "Aged Brie")
            {
                updatedItemListWithClasses[i] = new AgedBrie {
                    Name = Items[i].Name, SellIn = Items[i].SellIn, Quality = Items[i].Quality
                };;
            }
            else if (Items[i].Name == "Sulfuras, Hand of Ragnaros")
            {
                updatedItemListWithClasses[i] = new Sulfuras {
                    Name = Items[i].Name, SellIn = Items[i].SellIn, Quality = Items[i].Quality
                };;
            }
            else
            {
                updatedItemListWithClasses[i] = new Common {
                    Name = Items[i].Name, SellIn = Items[i].SellIn, Quality = Items[i].Quality
                };;
            }
        }

        return(updatedItemListWithClasses);
    }
コード例 #3
0
        public void ValidateQuality(int inputQuality, int expectedResult)
        {
            AgedBrie agedBrie = new AgedBrie();
            int      actual   = agedBrie.ValidateQuality(inputQuality);

            Assert.That(actual, Is.EqualTo(expectedResult));
        }
コード例 #4
0
        private Item GetItem(string category)
        {
            Item item;

            switch (category)
            {
            case AGEDBRIE_NAME:
                item = new AgedBrie();
                break;

            case BACKSTAGEPASSES_CATEGORY:
                item = new BackstagePasses();
                break;

            case CONJURED_CATEGORY:
                item = new Conjured();
                break;

            case SULFURAS_CATEGORY:
                item = new Sulfuras();
                break;

            default:
                item = new Item();
                break;
            }
            item.Category = category;
            return(item);
        }
コード例 #5
0
ファイル: ItemTests.cs プロジェクト: darrenkwilliams/grajb
        public void AgedBrieTestMaximumQuality()
        {
            var agedBrie = new AgedBrie();

            agedBrie.EndOfDayUpdate(4, 50);
            agedBrie.Quality.ShouldBe(50);
        }
コード例 #6
0
        public static ItemObjects ItemObjects(Item item)
        {
            ItemObjects inheritedItem = null;

            switch (item.Name)
            {
            case "+5 Dexterity Vest":
                inheritedItem = new DexterityVest(item);
                break;

            case "Aged Brie":
                inheritedItem = new AgedBrie(item);
                break;

            case "Elixir of the Mongoose":
                inheritedItem = new ElixirOfTheMongoose(item);
                break;

            case "Sulfuras, Hand of Ragnaros":
                inheritedItem = new Sulfuras(item);
                break;

            case "Backstage passes to a TAFKAL80ETC concert":
                inheritedItem = new BackstagePasses(item);
                break;

            case "Conjured Mana Cake":
                inheritedItem = new Conjured(item);
                break;
            }
            return(inheritedItem);
        }
コード例 #7
0
        public void UpdateQuality_GreaterThan50_ReturnsFifty()
        {
            Item item = new AgedBrie();

            item.Quality = 50;
            item.UpdateQuality();
            Assert.AreEqual(50, item.Quality);
        }
コード例 #8
0
        public void QualityIncreasesByOne()
        {
            var item = new AgedBrie();
            item.Quality = 49;

            strategy.UpdateQuality(item);

            Assert.AreEqual(50, item.Quality);
        }
コード例 #9
0
        public void QualityIncresesWithTime()
        {
            var brie = new AgedBrie(10, 10);

            brie.Update();

            brie.SellIn.Should().Be(9);
            brie.Quality.Should().Be(11);
        }
コード例 #10
0
        public void QualityCanBeGreaterThanMax()
        {
            var brie = new AgedBrie(1, 50);

            brie.Update();

            brie.SellIn.Should().Be(0);
            brie.Quality.Should().Be(50);
        }
コード例 #11
0
        public void UpdateQuality_AgedBrie()
        {
            Item item = new AgedBrie();

            item.SellIn  = 0;
            item.Quality = 1;
            item.UpdateQuality();
            Assert.AreEqual(2, item.Quality);
        }
コード例 #12
0
ファイル: AgedBrieTests.cs プロジェクト: Kodnot/GildedRose
        public void Age_WhenQualityIsFifty_ShouldNotIncreaseQuality()
        {
            // Arrange
            var item = new AgedBrie("", 4, 50);

            // Act
            item.Age();
            // Assert
            item.Quality.ShouldBe(50);
        }
コード例 #13
0
        public void QualityIncreasesByOne()
        {
            var item = new AgedBrie();

            item.Quality = 49;

            strategy.UpdateQuality(item);

            Assert.AreEqual(50, item.Quality);
        }
コード例 #14
0
ファイル: ItemTests.cs プロジェクト: darrenkwilliams/grajb
        public void AgedBrieTestMaximumQualityMessage()
        {
            var agedBrie = new AgedBrie();

            agedBrie.EndOfDayUpdate(4, 50);
            agedBrie.Quality.ShouldBe(50);
            var message = agedBrie.GetEndOfDayValues();

            message.ShouldContain("50");
        }
コード例 #15
0
        public void incrementAgedBrieQualityTwiceAfterADayWhenExceededSellInDays()
        {
            AgedBrie   item = AgedBrie.Create(sellIn: -1, quality: 10);
            GildedRose app  = new GildedRose(item);

            app.UpdateItemsQualityAfterADay();

            Assert.AreEqual(12, item.Quality);
            Assert.AreEqual(-2, item.SellIn);
        }
コード例 #16
0
        public void UpdateQualityShouldIncreaseAgedBrieItemQuality(string name, int sellIn, int quality)
        {
            var ItemWrapper = new AgedBrie {
                Name = name, SellIn = sellIn, Quality = quality
            };

            ItemWrapper.UpdateItem();

            Assert.That(ItemWrapper.Quality == quality + 1);
        }
コード例 #17
0
        public void Test_ItemFactory_Create_AgedBrie_ReturnOk()
        {
            // Arrange
            AgedBrie agedBrie = new AgedBrie("Aged Brie", 0, 0);

            //Act
            var itemCreated = ItemFactory.Create("Aged Brie", 0, 0);

            //Assert
            Assert.Equal(itemCreated.GetType(), agedBrie.GetType());
        }
コード例 #18
0
        public void AgedBrieShouldGoUpTwiceAsMuchAfterSellBy()
        {
            Item item = new AgedBrie()
            {
                Quality = _quality,
                SellIn  = -1
            };

            _rule.Apply(item);
            Assert.That(item.Quality, Is.EqualTo(_quality + 2));
        }
コード例 #19
0
        public void AgedBrieShouldGoUpInQuality()
        {
            Item item = new AgedBrie()
            {
                Quality = _quality,
                SellIn  = 10
            };

            _rule.Apply(item);
            Assert.That(item.Quality, Is.EqualTo(_quality + 1));
        }
コード例 #20
0
        public void QualityIncreasesForAgedBrie()
        {
            var brie = new AgedBrie {
                Name = "Aged Brie", SellIn = 5, Quality = 10
            };

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

            Assert.AreEqual(20, brie.Quality);
        }
コード例 #21
0
ファイル: AgedBrieTests.cs プロジェクト: Kodnot/GildedRose
        public void Age_WhenSellInIsNegativeOrZero_ShouldIncreaseQualityByTwo(int sellIn)
        {
            // Arrange
            var initialQuality = 10;
            var item           = new AgedBrie("", sellIn, initialQuality);

            // Act
            item.Age();
            // Assert
            item.Quality.ShouldBe(initialQuality + 2);
        }
コード例 #22
0
        public void Test_AgedBrie_Update_MinimumLimits_ReturnOk()
        {
            // Arrange
            AgedBrie agedBrie = new AgedBrie("Aged Brie", 1, -5);

            //Act
            agedBrie.Update();

            //Assert
            Assert.Equal(1, agedBrie.Quality);
        }
コード例 #23
0
        public void QualityOfAnItemIsNeverGreaterThanFifty()
        {
            var brie = new AgedBrie {
                Name = "Aged Brie", SellIn = 0, Quality = 50
            };

            updater = new InventoryUpdater(new[] { brie });
            updater.Update();

            Assert.AreEqual(50, brie.Quality);
        }
コード例 #24
0
ファイル: AgedBrieTests.cs プロジェクト: Kodnot/GildedRose
        public void Ctor_WhenCalled_ShouldSetUpPropertiesCorrectly(string name, int sellIn, int quality)
        {
            // Arrange, Act
            var item = new AgedBrie(name, sellIn, quality);

            // Assert
            item.Name.ShouldBe(name);
            item.SellIn.ShouldBe(sellIn);
            item.Quality.ShouldBe(quality);
            item.DegradationRate.ShouldBe(-1);
        }
コード例 #25
0
        public void SellInForAgedBrieDecreasesByOne()
        {
            var brie = new AgedBrie {
                Name = "Aged Brie", SellIn = 5, Quality = 0
            };

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

            Assert.AreEqual(-5, brie.SellIn);
        }
コード例 #26
0
        public void NeverHaveQualityGreaterThan50WhenProcessIsCalled()
        {
            var quality = 50;
            var sellIn  = 10;

            var agedBrie = new AgedBrie(quality, sellIn);

            agedBrie.Process();

            Assert.That(agedBrie.Quality, Is.EqualTo(quality));
        }
コード例 #27
0
        public void IncreaseInQualityWhenProcessIsCalled()
        {
            var quality = 10;
            var sellIn  = 10;

            var agedBrie = new AgedBrie(quality, sellIn);

            agedBrie.Process();

            Assert.That(agedBrie.Quality, Is.EqualTo(quality + 1));
        }
コード例 #28
0
ファイル: AgedBrieTests.cs プロジェクト: Kodnot/GildedRose
        public void Age_WhenSellInIsPositive_ShouldIncreaseQualityByOne(int sellIn)
        {
            // Arrange
            var initialQuality = 10;
            var item           = new AgedBrie("", sellIn, initialQuality);

            // Act
            item.Age();
            // Assert
            item.Quality.ShouldBe(initialQuality + 1);
        }
コード例 #29
0
        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);
        }
コード例 #30
0
        public void Test_AgedBrie_Update_MaximumLimits_ReturnOk()
        {
            // Arrange
            AgedBrie agedBrie = new AgedBrie("Aged Brie", 1, 50);

            //Act
            agedBrie.Update();

            //Assert
            Assert.Equal(50, agedBrie.Quality);
            Assert.Equal(0, agedBrie.SellIn);
        }
コード例 #31
0
        public void Test_AgedBrie_Update_MaximumMinimum_ReturnIcreaseOne()
        {
            // Arrange
            AgedBrie agedBrie = new AgedBrie("Aged Brie", 2, 0);

            //Act
            agedBrie.Update();

            //Assert
            Assert.Equal(1, agedBrie.Quality);
            Assert.Equal(1, agedBrie.SellIn);
        }
コード例 #32
0
ファイル: ItemTests.cs プロジェクト: simonrolfe/GildedRose
        public void Aged_Brie_Improves()
        {
            AbstractItem item = new AgedBrie();

            item.ProcessDay();

            Assert.Equal(1, item.Quality);
            Assert.Equal(1, item.SellIn);

            item.ProcessDay();
            Assert.Equal(2, item.Quality);
            Assert.Equal(0, item.SellIn);

            //Extra test to confirm that brie double-improves after SellIn is 0
            item.ProcessDay();
            Assert.Equal(4, item.Quality);
            Assert.Equal(-1, item.SellIn);
        }