public void TestBackstagePass() { var app = new Program(); var ticket = new Item { Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 15, Quality = 0 }; // Ticket value at day 0 // (1 * 5) + (2 * 5) + (3 * 5) var finalTicketQuality = 30; var ticketSellIn = ticket.SellIn; app.AddItems(ticket); // Update the ticket quality until SellIn = 0 for (var i = 0; i < ticketSellIn; i++) { app.UpdateQuality(); } Assert.True(ticket.Quality == finalTicketQuality, "Final backstage pass tickets do not match. Actual final quality = " + ticket.Quality); // Go past expiry date app.UpdateQuality(); Assert.True(ticket.Quality == 0, "Backstage pass quality is not 0. Actual quality = " + ticket.Quality); }
public void TestAgedBrie() { var app = new Program(); var agedBrie = new Item {Name = "Aged Brie", SellIn = 2, Quality = 0}; var expectedQuality = 1; app.AddItems(agedBrie); app.UpdateQuality(); Assert.True(agedBrie.Quality == expectedQuality, "Test #1 - Aged Brie quality is not as expected. Expected = " + expectedQuality + ". Actual quality = " + agedBrie.Quality); // Go past the expiry date and check quality again for (var i = 0; i < 3; i++) { app.UpdateQuality(); } expectedQuality = 6; Assert.True(agedBrie.Quality == expectedQuality, "Test #2 - Aged Brie quality is not as expected. Expected = " + expectedQuality + ". Actual quality = " + agedBrie.Quality); }
public void TestAgedBrieUpperLimit() { var app = new Program(); var agedBrie = new Item { Name = "Aged Brie", SellIn = 5, Quality = 49 }; var expectedQuality = 50; var sellIn = agedBrie.SellIn; app.AddItems(agedBrie); for (var i = 0; i < sellIn; i++) { app.UpdateQuality(); } Assert.True(agedBrie.Quality == expectedQuality, "Aged Brie quality is not as expected. Expected = " + expectedQuality + ". Actual quality = " + agedBrie.Quality); }
public void TestBackstagePassUpperBounds() { var app = new Program(); var ticket = new Item { Name = "Backstage passes to a TAFKAL80ETC concert", SellIn = 15, Quality = 48 }; // Ticket value at day 0 should be 50 (upper bound for the quality of items) var finalTicketQuality = 50; var ticketSellIn = ticket.SellIn; app.AddItems(ticket); // Update the ticket quality until SellIn = 0 for (var i = 0; i < ticketSellIn; i++) { app.UpdateQuality(); } Assert.True(ticket.Quality == finalTicketQuality, "Final backstage pass tickets do not match. Actual final quality = " + ticket.Quality); }
public void TestSulfuras() { var app = new Program(); var sulfuras = new Item {Name = "Sulfuras, Hand of Ragnaros", SellIn = 0, Quality = 80}; var expectedQuality = sulfuras.Quality; var expectedSellIn = sulfuras.SellIn; app.AddItems(sulfuras); app.UpdateQuality(); Assert.True(sulfuras.Quality == expectedQuality, "The quality of Sulfuras has degraded"); Assert.True(sulfuras.SellIn == expectedSellIn, "The SellIn value of Sulfuras has changed"); }
public void TestStandardItemLowerBounds() { var app = new Program(); var vest = new Item { Name = "+5 Dexterity Vest", SellIn = 10, Quality = 5 }; var sellIn = vest.SellIn; var expectedQuality = 0; app.AddItems(vest); for (var i = 0; i < sellIn; i++) { app.UpdateQuality(); } // Test value where SellIn = 0 Assert.True(vest.Quality == expectedQuality, "Vest quality incorrect. Expected = " + expectedQuality + ". Actual = " + vest.Quality); }
public void TestStandardItem() { var app = new Program(); var vest = new Item {Name = "+5 Dexterity Vest", SellIn = 10, Quality = 20}; var sellIn = vest.SellIn; var expectedQuality = 10; app.AddItems(vest); for (var i = 0; i < sellIn; i++) { app.UpdateQuality(); } // Test value where SellIn = 0 Assert.True(vest.Quality == expectedQuality, "Vest quality incorrect. Expected = " + expectedQuality + ". Actual = " + vest.Quality); // Test the item degrades twice as fast once SellIn goes below 0 expectedQuality -= 2; app.UpdateQuality(); Assert.True(vest.Quality == expectedQuality, "Vest quality incorrect. Expected = " + expectedQuality + ". Actual = " + vest.Quality); }
public void TestProgramSetup() { var app = new Program(); var count = app.GetItems().Count; var items = new List<Item>(); var vest = new Item {Name = "+5 Dexterity Vest", SellIn = 10, Quality = 20}; items.Add(vest); // Test the program with the standard constructor Assert.True(count == 0, "Intial list is not empty"); app.AddItems(vest); // Test adding an item to the Program count = app.GetItems().Count; Assert.True(count == 1, "Total items in App should be one. Actual = " + count); // Test Program with the list passed via the constructor app = new Program(items); count = app.GetItems().Count; Assert.True(count == 1, "Initial list should have one item"); }
public void TestMultipleItems() { var app = new Program(); var vest = new Item {Name = "+5 Dexterity Vest", SellIn = 10, Quality = 20}; var elixir = new Item {Name = "Elixir of the Mongoose", SellIn = 5, Quality = 7}; var expectedVestQuality = 10; var expectedElixirQuality = 0; var timesToUpdate = vest.SellIn; app.AddItems(vest, elixir); for (var i = 0; i < timesToUpdate; i++) { app.UpdateQuality(); } Assert.True(elixir.Quality == expectedElixirQuality, "Elixir quality is not correct. Expected = " + expectedElixirQuality + ". Actual = " + elixir.Quality); Assert.True(vest.Quality == expectedVestQuality, "Vest quality is not correct. Expected = " + expectedVestQuality + ". Actual = " + vest.Quality); }
public void TestConjuredItemLowerLimit() { var app = new Program(); var manaCake = new Item { Name = "Conjured Mana Cake", SellIn = 5, Quality = 6 }; var sellIn = manaCake.SellIn; app.AddItems(manaCake); for (var i = 0; i < sellIn; i++) { app.UpdateQuality(); } Assert.True(manaCake.Quality == 0, "Mana cake quality incorrect. Expected 0. Actual result = " + manaCake.Quality); }
public void TestConjuredItem() { var app = new Program(); var manaCake = new Item {Name = "Conjured Mana Cake", SellIn = 3, Quality = 7}; var sellIn = manaCake.SellIn; var expectedQuality = 1; app.AddItems(manaCake); for (var i = 0; i < sellIn; i++) { app.UpdateQuality(); } Assert.True(manaCake.Quality == expectedQuality, "Mana cake quality incorrect. Expected " + expectedQuality + ". Actual result = " + manaCake.Quality); }