From 5f4dffb5e3047d4b697154f97b651c300ee99426 Mon Sep 17 00:00:00 2001 From: Richard Xu Date: Thu, 22 Dec 2022 12:32:57 -0500 Subject: [PATCH] Refactor handleBackstagePasses --- .../main/java/com/gildedrose/GildedRose.java | 16 +++++------- .../java/com/gildedrose/GildedRoseTest.java | 26 ++++++++++++++++++- 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/Java/src/main/java/com/gildedrose/GildedRose.java b/Java/src/main/java/com/gildedrose/GildedRose.java index c53427f9..21c59b4a 100644 --- a/Java/src/main/java/com/gildedrose/GildedRose.java +++ b/Java/src/main/java/com/gildedrose/GildedRose.java @@ -82,19 +82,15 @@ class GildedRose { private static void handleBackstagePasses(Item item) { // todo: make it so these items can't be initialized with over 50 - if (item.sellIn == 0) { - item.quality = 0; - return; - } if (item.quality == 50) { return; } - if (item.sellIn <= 10) { - if (item.sellIn <= 5) { - item.quality += 3; - } else { - item.quality += 2; - } + if (item.sellIn == 0) { + item.quality = 0; + } else if (item.sellIn <= 5) { + item.quality += 3; + } else if (item.sellIn <= 10) { + item.quality += 2; } item.sellIn -= 1; } diff --git a/Java/src/test/java/com/gildedrose/GildedRoseTest.java b/Java/src/test/java/com/gildedrose/GildedRoseTest.java index 46fc8370..ff85e615 100644 --- a/Java/src/test/java/com/gildedrose/GildedRoseTest.java +++ b/Java/src/test/java/com/gildedrose/GildedRoseTest.java @@ -179,7 +179,7 @@ class GildedRoseTest { } @Test - public void sellInDateCanBeNegative() { + public void sellInDateCanBeNegativeForGenericItems() { Item[] items = new Item[] { new Item("generic item", 1, 1) }; GildedRose app = new GildedRose(items); app.updateQuality(); @@ -190,6 +190,30 @@ class GildedRoseTest { assertEquals(app.items.get(0).sellIn, -2); } + @Test + public void sellInDateCanBeNegativeForAgedBrie() { + Item[] items = new Item[] { new Item(GildedRose.AGED_BRIE, 1, 1) }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals(app.items.get(0).sellIn, 0); + app.updateQuality(); + assertEquals(app.items.get(0).sellIn, -1); + app.updateQuality(); + assertEquals(app.items.get(0).sellIn, -2); + } + + @Test + public void sellInDateCanBeNegativeForBackStagePasses() { + Item[] items = new Item[] { new Item(GildedRose.BACKSTAGE_PASSES, 1, 1) }; + GildedRose app = new GildedRose(items); + app.updateQuality(); + assertEquals(app.items.get(0).sellIn, 0); + app.updateQuality(); + assertEquals(app.items.get(0).sellIn, -1); + app.updateQuality(); + assertEquals(app.items.get(0).sellIn, -2); + } + @Test public void itUpdatesAllItemsPassedIn() { Item[] items = new Item[] {