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

            var app = new GuildedRoseManager
                          {
                              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}
                                          }

                          };

            app.UpdateQuality();

            System.Console.ReadKey();
        }
 public void ConjuredItemsDegradeTwiceAsFastAsNormalItemsWhenPastSellByDate()
 {
     var guildedRose = new GuildedRoseManager { Items = new List<Item> { new Item { Name = "Conjured ham", SellIn = 5, Quality = 20 } } };
     this.RunUpdateQualityXTimes(5, guildedRose);
     Assert.Equal(10, guildedRose.Items.First().Quality);
     this.RunUpdateQualityXTimes(1, guildedRose);
     Assert.Equal(6, guildedRose.Items.First().Quality);
 }
 public void BackstagePassesIncreaseInQualityByTwoWhen10DaysOrLessToConcert()
 {
     var guildedRose = new GuildedRoseManager { Items = new List<Item> { new Item { Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 15, Quality = 20 } } };
     this.RunUpdateQualityXTimes(5, guildedRose);
     Assert.Equal(25, guildedRose.Items.First().Quality);
     this.RunUpdateQualityXTimes(1, guildedRose);
     Assert.Equal(27, guildedRose.Items.First().Quality);
 }
 public void BackstagePassesDecreaseInQualityToZeroOnceConcertHappens()
 {
     var guildedRose = new GuildedRoseManager { Items = new List<Item> { new Item { Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 15, Quality = 20 } } };
     this.RunUpdateQualityXTimes(15, guildedRose);
     Assert.Equal(50, guildedRose.Items.First().Quality);
     this.RunUpdateQualityXTimes(1, guildedRose);
     Assert.Equal(0, guildedRose.Items.First().Quality);
 }
 public void QualityCanNeverBeNegative()
 {
     var guildedRose = new GuildedRoseManager { Items = new List<Item> { new Item { Name = "+5 Dexterity Vest", SellIn = 2, Quality = 3 } } };
     this.RunUpdateQualityXTimes(2, guildedRose);
     Assert.Equal(1, guildedRose.Items.First().Quality);
     Assert.Equal(0, guildedRose.Items.First().SellIn);
     guildedRose.UpdateQuality();
     Assert.Equal(0, guildedRose.Items.First().Quality);
 }
 public void AgedBrieIncreasesInQuality()
 {
     var guildedRose = new GuildedRoseManager { Items = new List<Item> { new Item { Name = "Aged Brie", SellIn = 5, Quality = 5 } } };
     this.RunUpdateQualityXTimes(2, guildedRose);
     Assert.True(guildedRose.Items.First().Quality == 7);
     Assert.Equal(3, guildedRose.Items.First().SellIn);
     guildedRose.UpdateQuality();
     Assert.True(guildedRose.Items.First().Quality == 8);
 }
 public void SulfurasNeverHasToBeSold()
 {
     var guildedRose = new GuildedRoseManager { Items = new List<Item> { new Item { Name = "Sulfuras, Hand of Ragnaros", SellIn = 0, Quality = 80 } } };
     this.RunUpdateQualityXTimes(51, guildedRose);
     Assert.True(guildedRose.Items.First().SellIn == 0);
 }
 public void SulfurasNeverDecreasesInQuality()
 {
     var guildedRose = new GuildedRoseManager { Items = new List<Item> { new Item { Name = "Sulfuras, Hand of Ragnaros", SellIn = 0, Quality = 80 } } };
     this.RunUpdateQualityXTimes(51, guildedRose);
     Assert.Equal(80, guildedRose.Items.First().Quality);
 }
 private void RunUpdateQualityXTimes(int timesToRun, GuildedRoseManager guildedRoseManager)
 {
     for (var i = 0; i < timesToRun; i++)
     {
         guildedRoseManager.UpdateQuality();
     }
 }
예제 #10
0
 public void TheQualityIsNeverLargerThan50()
 {
     var guildedRose = new GuildedRoseManager { Items = new List<Item> { new Item { Name = "Aged Brie", SellIn = 60, Quality = 1 } } };
     this.RunUpdateQualityXTimes(51, guildedRose);
     Assert.True(guildedRose.Items.First().Quality == 50);
     Assert.Equal(9, guildedRose.Items.First().SellIn);
 }
예제 #11
0
 public void TestWhenTheSellInDateHasPassedQualityDegradesTwiceAsFast()
 {
     var guildedRose = new GuildedRoseManager { Items = new List<Item> { new Item { Name = "+5 Dexterity Vest", SellIn = 2, Quality = 20 } } };
     this.RunUpdateQualityXTimes(2, guildedRose);
     Assert.Equal(18, guildedRose.Items.First().Quality);
     Assert.Equal(0, guildedRose.Items.First().SellIn);
     guildedRose.UpdateQuality();
     Assert.Equal(16, guildedRose.Items.First().Quality);
 }
예제 #12
0
 public void TestWhenTheSellInDateHasPassedQualityDegradesByOne()
 {
     var guildedRose = new GuildedRoseManager { Items = new List<Item> { new Item { Name = "+5 Dexterity Vest", SellIn = 2, Quality = 20 } } };
     guildedRose.UpdateQuality();
     Assert.Equal(19, guildedRose.Items.First().Quality);
     Assert.Equal(1, guildedRose.Items.First().SellIn);
 }