diff --git a/Java/src/main/java/com/gildedrose/GildedRose.java b/Java/src/main/java/com/gildedrose/GildedRose.java index d8a8d883..5bb2e0fd 100644 --- a/Java/src/main/java/com/gildedrose/GildedRose.java +++ b/Java/src/main/java/com/gildedrose/GildedRose.java @@ -2,7 +2,10 @@ package com.gildedrose; class GildedRose { - public static final String SULFURAS_HAND_OF_RAGNAROS = "Sulfuras, Hand of Ragnaros"; + private static final int MIN_QUALITY = 0; + private static final int MAX_QUALITY = 50; + public static final String AGED_BRIE = "Aged Brie"; + public static final String SULFURAS_HAND_OF_RAGNAROS = "Sulfuras, Hand of Ragnaros"; public static final String BACKSTAGE_PASSES = "Backstage passes to a TAFKAL80ETC concert"; Item[] items; @@ -26,14 +29,14 @@ class GildedRose { updateSellInValue(item); if (item.sellIn < 0) { - if (!item.name.equals("Aged Brie")) { + if (!item.name.equals(AGED_BRIE)) { if (!item.name.equals(BACKSTAGE_PASSES)) { degradeItem(item); } else { - item.quality = 0; + item.quality = MIN_QUALITY; } } else { - item.quality = Integer.min(item.quality + 1,50); + item.quality = Integer.min(item.quality + 1, MAX_QUALITY); } } } @@ -43,7 +46,7 @@ class GildedRose { * @param item */ private void degradeItem(Item item) { - item.quality = Integer.max(0, item.quality - 1); + item.quality = Integer.max(MIN_QUALITY, item.quality - 1); } /** @@ -59,26 +62,23 @@ class GildedRose { * @return */ private boolean isEnhancingItem(Item item) { - return item.name.equals("Aged Brie") || item.name.equals(BACKSTAGE_PASSES); + return item.name.equals(GildedRose.AGED_BRIE) || item.name.equals(BACKSTAGE_PASSES); } - + /** * @param item */ private void enhanceItem(Item item) { - if (item.quality < 50) { - item.quality = item.quality + 1; + if (item.name.equals(BACKSTAGE_PASSES)) { + if (isExperingSale(item)) { + item.quality = item.quality + 1; + } - if (item.name.equals(BACKSTAGE_PASSES)) { - if (isExperingSale(item)) { - item.quality = item.quality + 1; - } - - if (isUrgentSale(item)) { - item.quality = item.quality + 1; - } - } + if (isUrgentSale(item)) { + item.quality = item.quality + 1; + } } + item.quality = Integer.min(item.quality + 1, MAX_QUALITY); } /** @@ -86,7 +86,7 @@ class GildedRose { * @return */ private boolean isUrgentSale(Item item) { - return item.sellIn < 6 && item.quality < 50; + return item.sellIn < 6; } /** @@ -94,12 +94,11 @@ class GildedRose { * @return */ private boolean isExperingSale(Item item) { - return item.sellIn < 11 && item.quality < 50; + return item.sellIn < 11; } /** - * @param item the item of which the sell in value is updated Only if the item - * is legendary, do not update this value + * @param item the item of which the sell in value is updated */ private void updateSellInValue(Item item) { item.sellIn = item.sellIn - 1; diff --git a/Java/src/test/java/com/gildedrose/GildedRoseTest.java b/Java/src/test/java/com/gildedrose/GildedRoseTest.java index 82ed3042..e142ffab 100644 --- a/Java/src/test/java/com/gildedrose/GildedRoseTest.java +++ b/Java/src/test/java/com/gildedrose/GildedRoseTest.java @@ -73,8 +73,8 @@ class GildedRoseTest { @Test void testAgedBrie() { - Item agedBrie = new Item("Aged Brie", 2, 0); - Item qualityBrie = new Item("Aged Brie", 2, 48); + Item agedBrie = new Item(GildedRose.AGED_BRIE, 2, 0); + Item qualityBrie = new Item(GildedRose.AGED_BRIE, 2, 48); Item[] items = new Item[] { agedBrie, qualityBrie }; GildedRose gildedRose = new GildedRose(items); // day one