public static IItem GetCustomItem(Item item) { IItem _item = new StandardItem(item); switch (item.Name) { case "Aged Brie": _item = new AgedItem(item); break; case "Sulfuras, Hand of Ragnaros": _item = new LegendaryItem(item); break; case "Backstage passes to a TAFKAL80ETC concert": _item = new PassItem(item); break; case "Conjured Mana Cake": _item = new ConjuredItem(item); break; default: break; } return(_item); }
public void ConjuredItemsQualityDecreasesTwiceAsFastWhenNotExpired() { var conjuredItem = new ConjuredItem { Quality = 4, SellIn = 1 }; conjuredItem.UpdateQuality(); Check.That(conjuredItem.Quality).IsEqualTo(2); }
public void ConjuredItemsQualityCannotDecreaseBelowZero() { var conjuredItem = new ConjuredItem { Quality = 1, SellIn = 0 }; conjuredItem.UpdateQuality(); Check.That(conjuredItem.Quality).IsZero(); }
public void QualityDoesNotGoBelowZero() { var item = new ConjuredItem(); item.Quality = 0; item.SellIn = -1; strategy.UpdateQuality(item); Assert.AreEqual(0, item.Quality); }
public void QualityDecreasesByTwoWhenSellInIsGreaterThanOrEqualToZero() { var item = new ConjuredItem(); item.Quality = 49; item.SellIn = 0; strategy.UpdateQuality(item); Assert.AreEqual(47, item.Quality); }
public void Age_WhenQualityWouldFallBelowZero_ShouldSetQualityToZero() { // Arrange var item = new ConjuredItem("", -2, 2); // Act item.Age(); // Assert item.Quality.ShouldBe(0); }
public void Age_WhenSellInIsPositive_ShouldDecreaseQualityByTwo(int sellIn) { // Arrange var initialQuality = 10; var item = new ConjuredItem("", sellIn, initialQuality); // Act item.Age(); // Assert item.Quality.ShouldBe(initialQuality - 2); }
public void QualityDecreasesByFourWhenSellInIsGreaterThanOrEqualToZero() { var item = new ConjuredItem(); item.Quality = 49; item.SellIn = -1; strategy.UpdateQuality(item); Assert.AreEqual(45, item.Quality); }
public void QualityOfAConjuredItemIsNeverNegative() { var cake = new ConjuredItem { Name = "Conjured Mana Cake", SellIn = -1, Quality = 0 }; updater = new InventoryUpdater(new[] { cake }); updater.Update(); Assert.AreEqual(0, cake.Quality); }
public void SellInForConjuredDecreasesByOne() { var conjured = new ConjuredItem { Name = "Conjured Mana Cake", SellIn = 0, Quality = 0 }; updater = new InventoryUpdater(new[] { conjured }); ProcessMany(10); Assert.AreEqual(-10, conjured.SellIn); }
public void ConjuredItemsDegradeInQualityTwiceAsFastAsNormalItems() { var conjuredItem = new ConjuredItem { Name = "Conjured Mana Cake", SellIn = 3, Quality = 6 }; updater = new InventoryUpdater(new[] { conjuredItem }); ProcessMany(3); Assert.AreEqual(0, conjuredItem.Quality); }
public void Ctor_WhenCalled_ShouldSetUpPropertiesCorrectly(string name, int sellIn, int quality) { // Arrange, Act var item = new ConjuredItem(name, sellIn, quality); // Assert item.Name.ShouldBe(name); item.SellIn.ShouldBe(sellIn); item.Quality.ShouldBe(quality); item.DegradationRate.ShouldBe(2); }
public void Age_WhenSellInIsNegativeOrZero_ShouldDecreaseQualityByFour(int sellIn) { // Arrange var initialQuality = 10; var item = new ConjuredItem("", sellIn, initialQuality); // Act item.Age(); // Assert item.Quality.ShouldBe(initialQuality - 4); }
static void Main(string[] args) { IItem normal = new Item("item1", 40, new DateTime(2018, 09, 02, 0, 0, 0), 33); normal.UpdateValues(); normal.Print(); IItem conjured = new ConjuredItem("item2", 40, new DateTime(2018, 09, 02, 0, 0, 0), 33); conjured.UpdateValues(); conjured.Print(); }
public void Conjured_Items_Should_Degrade_In_Quality_Four_Times_As_Fast_As_Normal_Items_After_Sell_Date() { // Arrange var conjuredItem = new ConjuredItem("Conjured Mana Cake", 0, 6); // Act conjuredItem.UpdateQuality(); // Assert Assert.AreEqual(conjuredItem.Quality, 2); }
public void ConjuredItemUpdateQualityTest() { var item = new ConjuredItem() { Quality = 1, SellIn = -1 }; item.UpdateQuality(); Assert.IsTrue(item.Quality == 0 && item.SellIn == -2); }
public void Conjured_Items_Should_Degrade_In_Quality_Twice_As_Fast_As_Normal_Items() { // Arrange var conjuredItem = new ConjuredItem("Conjured Mana Cake", 3, 6); // Act conjuredItem.UpdateQuality(); // Assert Assert.AreEqual(conjuredItem.Quality, 4); Assert.AreEqual(conjuredItem.SellIn, 2); }
public void ConjuredAfterDayAfterSellIn() { ConjuredItem item = new ConjuredItem { SellIn = 0, Quality = 10 }; item.AddDay(); Assert.Equal(-1, item.SellIn); Assert.Equal(6, item.Quality); }
public void CheckConjuredLoseQualityTwiceFast() { ConjuredItem conjuredItemAdapter = new ConjuredItem(30, -1); List <ItemAdapter> items = new List <ItemAdapter>(); items.Add(conjuredItemAdapter); GildedRose gildedRose = new GildedRose(items); gildedRose.UpdateItemProperties(); ItemAdapter conjuredItemAdapterUpdated = items.First(itemAdapter => itemAdapter.item.Name == "Conjured"); conjuredItemAdapterUpdated.item.Quality.Should().Be(26); }
public void CheckConjuredSellInDecrease() { ConjuredItem conjuredItemAdapter = new ConjuredItem(30, -1); List <ItemAdapter> items = new List <ItemAdapter>(); items.Add(conjuredItemAdapter); GildedRose gildedRose = new GildedRose(items); gildedRose.UpdateItemProperties(); ItemAdapter conjuredItemAdapterUpdated = items.First(itemAdapter => itemAdapter.item.Name == "Conjured"); conjuredItemAdapterUpdated.item.SellIn.Should().Be(-2); }
public void ConjuredItemQualityDecreasesByTwo() { var conjuredItem = new ConjuredItem { SellIn = 10, Quality = 10 }; var oldQuality = conjuredItem.Quality; ManageInventory.ProcessItem(conjuredItem); Assert.AreEqual(oldQuality - 2, conjuredItem.Quality); }
public void SellInValueLessThanZeroConjuredItemQualityDegradesTwiceAsFast() { var conjuredItem = new ConjuredItem { SellIn = -1, Quality = 10 }; var oldQuality = conjuredItem.Quality; ManageInventory.ProcessItem(conjuredItem); Assert.AreEqual(oldQuality - 4, conjuredItem.Quality); }
public void QualityDecreasesBy2WhenSellInNotNegative() { var startingQuality = 20; var item = new ConjuredItem("Conjured Mana Cake", 3, startingQuality); var updater = new ConjuredItemUpdater(); for (var i = 0; i < 2; i++) { updater.UpdateItem((item)); startingQuality -= 2; Assert.Equal(item.Quality, startingQuality); } }
public void Updating_The_Quality_Of_An_Item_Should_Never_Be_Negative() { // Arrange var commonItem = new CommonItem("+5 Dexterity Vest", 0, 0); var backstageItem = new BackstageItem("Backstage passes to a TAFKAL80ETC concert", 20, 0); var agedItem = new AgedItem("Aged Brie", 2, 0); var conjuredItem = new ConjuredItem("Conjured Mana Cake", 3, 0); var legendaryItem = new LegendaryItem("Sulfuras, Hand of Ragnaros", 0, 80); // Act commonItem.UpdateQuality(); backstageItem.UpdateQuality(); agedItem.UpdateQuality(); conjuredItem.UpdateQuality(); legendaryItem.UpdateQuality(); // Assert Assert.AreEqual(commonItem.Quality, 0); Assert.AreEqual(backstageItem.Quality, 1); Assert.AreEqual(agedItem.Quality, 1); Assert.AreEqual(conjuredItem.Quality, 0); Assert.AreEqual(legendaryItem.Quality, 80); }
// Run updater for conjured item public void RunUpdater(ConjuredItem item) { var updater = new ConjuredItemUpdater(); updater.UpdateItem(item); }
public ConjuredItem Build() { var conjuredItem = new ConjuredItem(); return(conjuredItem); }