From 4e9edb7696c0f05c0e526735b8db431f00622810 Mon Sep 17 00:00:00 2001 From: Ibrahim Dogrusoz Date: Sun, 28 May 2023 16:25:39 +0200 Subject: [PATCH] Expired Items degrade twice faster --- Java/src/main/java/com/gildedrose/model/BaseItem.java | 6 +++++- Java/src/test/java/com/gildedrose/model/BaseItemTest.java | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Java/src/main/java/com/gildedrose/model/BaseItem.java b/Java/src/main/java/com/gildedrose/model/BaseItem.java index a19c1561..0ca5b7dd 100644 --- a/Java/src/main/java/com/gildedrose/model/BaseItem.java +++ b/Java/src/main/java/com/gildedrose/model/BaseItem.java @@ -34,10 +34,14 @@ public class BaseItem { } private void updateQuality() { - setQuality(getQuality() - 1); + setQuality(getQuality() + qualityChange()); } protected boolean isExpired() { return item.sellIn < 0; } + + private int qualityChange() { + return isExpired() ? -2 : -1; + } } diff --git a/Java/src/test/java/com/gildedrose/model/BaseItemTest.java b/Java/src/test/java/com/gildedrose/model/BaseItemTest.java index 881e245d..ad7c0581 100644 --- a/Java/src/test/java/com/gildedrose/model/BaseItemTest.java +++ b/Java/src/test/java/com/gildedrose/model/BaseItemTest.java @@ -52,4 +52,11 @@ class BaseItemTest { assertTrue(testItem.isExpired()); } + @Test + void givenAnExpiredBaseItem_whenUpdated_thenQualityDecrementsByTwo() { + BaseItem testItem = new BaseItem(new Item("test_item", 0, 10)); + testItem.update(); + assertEquals(8, testItem.getQuality()); + } + }