From eb0e2bad02abd143a41b7c23a1c009c6482d1df1 Mon Sep 17 00:00:00 2001 From: Remus Decea Date: Mon, 13 Nov 2023 11:39:22 +0200 Subject: [PATCH] Refactor to unique changeQuality --- .../main/java/com/gildedrose/GildedRose.java | 25 +++++++------------ .../java/com/gildedrose/GildedRoseTest.java | 13 ++++------ 2 files changed, 14 insertions(+), 24 deletions(-) diff --git a/Java/src/main/java/com/gildedrose/GildedRose.java b/Java/src/main/java/com/gildedrose/GildedRose.java index 06347458..3c8062bd 100644 --- a/Java/src/main/java/com/gildedrose/GildedRose.java +++ b/Java/src/main/java/com/gildedrose/GildedRose.java @@ -32,32 +32,25 @@ class GildedRose { } } - private int getDecreasedQuality(int oldQuality, int factor){ - return Math.max(oldQuality - factor, 0); + private void changeQuality(Item item, int factor) { + item.quality = Math.min(Math.max(item.quality + factor, 0), 50); } - - private int getIncreasedQuality(Item item, int factor) { - return Math.min(item.quality + factor, 50); - } - private void changeQualityOfStandardItems(Item item) { - int decreaseFactor = (item.sellIn > 0) ? 1 : 2; - item.quality = getDecreasedQuality(item.quality, decreaseFactor); + final int decreaseFactor = (item.sellIn > 0) ? -1 : -2; + changeQuality(item, decreaseFactor); } - private void changeQualityOfBries(Item item) { - int increaseFactor = (item.sellIn > 0) ? 1 : 2; - item.quality = getIncreasedQuality(item, increaseFactor); + final int increaseFactor = (item.sellIn > 0) ? 1 : 2; + changeQuality(item, increaseFactor); } - private void changeQualityOfPasses(Item item) { if (item.sellIn < 0) { item.quality = 0; } else if (item.sellIn < 5) { - item.quality = getIncreasedQuality(item, 3); + changeQuality(item, 3); } else if (item.sellIn < 10) { - item.quality = getIncreasedQuality(item, 2); + changeQuality(item, 2); } else - item.quality = getIncreasedQuality(item, 1); + changeQuality(item, 1); } } diff --git a/Java/src/test/java/com/gildedrose/GildedRoseTest.java b/Java/src/test/java/com/gildedrose/GildedRoseTest.java index 408d910e..07dc2111 100644 --- a/Java/src/test/java/com/gildedrose/GildedRoseTest.java +++ b/Java/src/test/java/com/gildedrose/GildedRoseTest.java @@ -17,23 +17,20 @@ class GildedRoseTest { @Test void standardItems(){ Item[] items = new Item[]{ - new Item("item1", 100, 100), - new Item("item2", 50, 50) + new Item("item1", 40, 40) }; GildedRose app = new GildedRose(items); app.updateQuality(); - assertEquals(app.items[0].quality, 99); - assertEquals(app.items[1].quality, 49); - assertEquals(app.items[0].sellIn, 99); - assertEquals(app.items[1].sellIn, 49); + assertEquals(app.items[0].quality, 39); + assertEquals(app.items[0].sellIn, 39); } @Test void qualityDegradationForExpired(){ - Item[] items = new Item[]{new Item("item1", 0, 100)}; + Item[] items = new Item[]{new Item("item1", 0, 40)}; GildedRose app = new GildedRose(items); app.updateQuality(); - assertEquals(app.items[0].quality, 98); + assertEquals(app.items[0].quality, 38); } @Test