diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..76b3e7b --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1 @@ +/fi/ diff --git a/bin/fi/oulu/tol/sqat/GildedRose.class b/bin/fi/oulu/tol/sqat/GildedRose.class index f244eba..a907fd7 100644 Binary files a/bin/fi/oulu/tol/sqat/GildedRose.class and b/bin/fi/oulu/tol/sqat/GildedRose.class differ diff --git a/bin/fi/oulu/tol/sqat/Item.class b/bin/fi/oulu/tol/sqat/Item.class index 478a739..3170f75 100644 Binary files a/bin/fi/oulu/tol/sqat/Item.class and b/bin/fi/oulu/tol/sqat/Item.class differ diff --git a/bin/fi/oulu/tol/sqat/tests/GildedRoseTest.class b/bin/fi/oulu/tol/sqat/tests/GildedRoseTest.class index e44e81c..2cbf957 100644 Binary files a/bin/fi/oulu/tol/sqat/tests/GildedRoseTest.class and b/bin/fi/oulu/tol/sqat/tests/GildedRoseTest.class differ diff --git a/src/fi/oulu/tol/sqat/GildedRose.java b/src/fi/oulu/tol/sqat/GildedRose.java index 24741c6..93b3894 100644 --- a/src/fi/oulu/tol/sqat/GildedRose.java +++ b/src/fi/oulu/tol/sqat/GildedRose.java @@ -21,78 +21,82 @@ public GildedRose() { } public static void updateEndOfDay() { - for (int i = 0; i < items.size(); i++) + for (Item item : items) { - if ((!"Aged Brie".equals(items.get(i).getName())) && !"Backstage passes to a TAFKAL80ETC concert".equals(items.get(i).getName())) + String itemName = item.getName(); + int itemSellIn = item.getSellIn(); + int itemQuality = item.getQuality(); + + + if ((!"Aged Brie".equals(itemName)) && !"Backstage passes to a TAFKAL80ETC concert".equals(itemName)) { - if (items.get(i).getQuality() > 0) + if (itemQuality > 0) { - if (!"Sulfuras, Hand of Ragnaros".equals(items.get(i).getName())) + if (!"Sulfuras, Hand of Ragnaros".equals(itemName)) { - items.get(i).setQuality(items.get(i).getQuality() - 1); + item.decreaseQuality(); } } } else { - if (items.get(i).getQuality() < 50) + if (itemQuality < 50) { - items.get(i).setQuality(items.get(i).getQuality() + 1); + item.increaseQuality(); - if ("Backstage passes to a TAFKAL80ETC concert".equals(items.get(i).getName())) + if ("Backstage passes to a TAFKAL80ETC concert".equals(itemName)) { - if (items.get(i).getSellIn() < 11) + if (itemSellIn < 11) { - if (items.get(i).getQuality() < 50) + if (itemQuality < 50) { - items.get(i).setQuality(items.get(i).getQuality() + 1); + item.increaseQuality(); } } - if (items.get(i).getSellIn() < 6) + if (itemSellIn < 6) { - if (items.get(i).getQuality() < 50) + if (itemQuality < 50) { - items.get(i).setQuality(items.get(i).getQuality() + 1); + item.increaseQuality(); } } } } } - if (!"Sulfuras, Hand of Ragnaros".equals(items.get(i).getName())) + if (!"Sulfuras, Hand of Ragnaros".equals(itemName)) { - items.get(i).setSellIn(items.get(i).getSellIn() - 1); + item.decreaseSellIn(); } - if (items.get(i).getSellIn() < 0) + if (item.getSellIn() < 0) { - if (!"Aged Brie".equals(items.get(i).getName())) + if (!"Aged Brie".equals(itemName)) { - if (!"Backstage passes to a TAFKAL80ETC concert".equals(items.get(i).getName())) + if (!"Backstage passes to a TAFKAL80ETC concert".equals(itemName)) { - if (items.get(i).getQuality() > 0) + if (itemQuality > 0) { - if (!"Sulfuras, Hand of Ragnaros".equals(items.get(i).getName())) + if (!"Sulfuras, Hand of Ragnaros".equals(itemName)) { - items.get(i).setQuality(items.get(i).getQuality() - 1); + item.decreaseQuality(); } } } else { - items.get(i).setQuality(items.get(i).getQuality() - items.get(i).getQuality()); + item.setQuality(0); } } else { - if (items.get(i).getQuality() < 50) + if (itemQuality < 50) { - items.get(i).setQuality(items.get(i).getQuality() + 1); + item.increaseQuality(); } } } } } - } diff --git a/src/fi/oulu/tol/sqat/Item.java b/src/fi/oulu/tol/sqat/Item.java index 447b7fe..54bd72a 100644 --- a/src/fi/oulu/tol/sqat/Item.java +++ b/src/fi/oulu/tol/sqat/Item.java @@ -31,5 +31,17 @@ public int getQuality() { public void setQuality(int quality) { this.quality = quality; } + public void increaseQuality(){ + this.quality = this.quality +1; + } + public void decreaseQuality(){ + this.quality = this.quality -1; + } + public void increaseSellIn(){ + this.sellIn = this.sellIn +1; + } + public void decreaseSellIn(){ + this.sellIn = this.sellIn -1; + } } diff --git a/src/fi/oulu/tol/sqat/tests/GildedRoseTest.java b/src/fi/oulu/tol/sqat/tests/GildedRoseTest.java index 7aceb2e..464ce91 100644 --- a/src/fi/oulu/tol/sqat/tests/GildedRoseTest.java +++ b/src/fi/oulu/tol/sqat/tests/GildedRoseTest.java @@ -34,9 +34,164 @@ public void testUpdateEndOfDay_AgedBrie_Quality_10_11() { Item itemBrie = items.get(0); assertEquals(11, itemBrie.getQuality()); } + + @Test + public void testUpdateEndOfDay_AgedBrie_SellIn_2_10() { + // Arrange + GildedRose store = new GildedRose(); + store.addItem(new Item("Aged Brie", 2, 10) ); + + // Act + store.updateEndOfDay(); + + // Assert + List items = store.getItems(); + Item itemBrie = items.get(0); + assertEquals(1, itemBrie.getSellIn()); + } + + @Test + public void testUpdateEndOfDay_Conjured_mana_cake_Quality_3_6() { + //Arrange + GildedRose store = new GildedRose(); + store.addItem(new Item("Conjured Mana Cake", 3, 6)); + + //Act + store.updateEndOfDay(); + + //Assert + List items = store.getItems(); + Item itemCake = items.get(0); + assertEquals(5, itemCake.getQuality()); + assertEquals(2, itemCake.getSellIn()); + } + + @Test + public void testUpdateEndOfDay_Dexterity_vest_10_20_selling_after_6_days() { + //Arrange + GildedRose store = new GildedRose(); + store.addItem(new Item("Dexterity vest", 10, 20)); + + //Act + store.updateEndOfDay(); + store.updateEndOfDay(); + store.updateEndOfDay(); + store.updateEndOfDay(); + store.updateEndOfDay(); + store.updateEndOfDay(); + + + //Assert + List items = store.getItems(); + Item itemDexVest = items.get(0); + assertEquals(14, itemDexVest.getQuality()); + assertEquals(4, itemDexVest.getSellIn()); + } + + @Test + public void testUpdateEndOfDay_Sulfuras_Hand_of_Ragnaros_0_80() { + //Arrange + GildedRose store = new GildedRose(); + store.addItem(new Item("Sulfuras, Hand of Ragnaros", 0, 80)); + + //Act + store.updateEndOfDay(); + + //Assert + List items = store.getItems(); + Item itemSulfuras = items.get(0); + assertEquals(80, itemSulfuras.getQuality()); + } + + @Test + public void testUpdateEndOfDay_AgedBrie_quality_double_degrade() { + // Arrange + GildedRose store = new GildedRose(); + store.addItem(new Item("Aged Brie", 2, 10) ); + + // Act + store.updateEndOfDay(); + store.updateEndOfDay(); + store.updateEndOfDay(); + store.updateEndOfDay(); + + + // Assert + List items = store.getItems(); + Item itemBrie = items.get(0); + assertEquals(16, itemBrie.getQuality()); + } + @Test - public void testUpdateEndOfDay() { - fail("Test not implemented"); + public void testUpdateEndOfDay_AgedBrie_quality_over_50() { + // Arrange + GildedRose store = new GildedRose(); + store.addItem(new Item("Aged Brie", 2, 50) ); + + // Act + store.updateEndOfDay(); + store.updateEndOfDay(); + store.updateEndOfDay(); + + + // Assert + List items = store.getItems(); + Item itemBrie = items.get(0); + assertEquals(50, itemBrie.getQuality()); } + + @Test + public void testUpdateEndOfDay_Conjured_mana_cake_Quality_negative() { + //Arrange + GildedRose store = new GildedRose(); + store.addItem(new Item("Conjured Mana Cake", 3, 1)); + + //Act + store.updateEndOfDay(); + store.updateEndOfDay(); + + //Assert + List items = store.getItems(); + Item itemCake = items.get(0); + assertEquals(0, itemCake.getQuality()); + } + + + @Test + public void testUpdateEndOfDay_Backstage_passes_quality_5_11() { + //Arrange + GildedRose store = new GildedRose(); + store.addItem(new Item("Backstage passes to a TAFKAL80ETC concert", 5, 11)); + + //Act + store.updateEndOfDay(); + store.updateEndOfDay(); + + //Assert + List items = store.getItems(); + Item itemPass = items.get(0); + assertEquals(17, itemPass.getQuality()); + } + + @Test + public void testUpdateEndOfDay_Backstage_passes_quality_12_11() { + //Arrange + GildedRose store = new GildedRose(); + store.addItem(new Item("Backstage passes to a TAFKAL80ETC concert", 12, 11)); + + //Act + store.updateEndOfDay(); + store.updateEndOfDay(); + + //Assert + List items = store.getItems(); + Item itemPass = items.get(0); + assertEquals(13, itemPass.getQuality()); + } + + + + + }