From e07bca923b7ffc2c692479979fdd6e2e9da0092a Mon Sep 17 00:00:00 2001 From: Remus Decea Date: Mon, 13 Nov 2023 12:13:02 +0200 Subject: [PATCH] Generalize backstage --- .../main/java/com/gildedrose/GildedRose.java | 10 +++++++--- .../java/com/gildedrose/GildedRoseTest.java | 17 ++++++++--------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/Java/src/main/java/com/gildedrose/GildedRose.java b/Java/src/main/java/com/gildedrose/GildedRose.java index f2273ee9..f6744ab3 100644 --- a/Java/src/main/java/com/gildedrose/GildedRose.java +++ b/Java/src/main/java/com/gildedrose/GildedRose.java @@ -6,7 +6,6 @@ import java.util.stream.Stream; class GildedRose { Item[] items; - public static String backStagePasses = "Backstage passes to a TAFKAL80ETC concert"; public static String agedBrie = "Aged Brie"; public GildedRose(Item[] items) { this.items = items; @@ -15,8 +14,8 @@ class GildedRose { public void updateQuality() { Item[] agingItems = Arrays.stream(items).filter(i -> !i.name.toLowerCase().contains("sulfuras")).toArray(Item[]::new); Stream bries = Arrays.stream(agingItems).filter(i -> i.name.equals(agedBrie)); - Stream backstagePasses = Arrays.stream(agingItems).filter(i -> i.name.equals(backStagePasses)); - Stream standardItems = Arrays.stream(agingItems).filter(i -> !i.name.equals(backStagePasses) && !i.name.equals(agedBrie)); + Stream backstagePasses = Arrays.stream(agingItems).filter(this::isBackstagePass); + Stream standardItems = Arrays.stream(agingItems).filter(i -> !isBackstagePass(i) && !i.name.equals(agedBrie)); for (Item item : agingItems) { item.sellIn--; } @@ -44,4 +43,9 @@ class GildedRose { } else changeQuality(item, 1); } + + private boolean isBackstagePass(Item i) { + return i.name.toLowerCase().contains("backstage"); + } + } diff --git a/Java/src/test/java/com/gildedrose/GildedRoseTest.java b/Java/src/test/java/com/gildedrose/GildedRoseTest.java index 0daff754..4851f9aa 100644 --- a/Java/src/test/java/com/gildedrose/GildedRoseTest.java +++ b/Java/src/test/java/com/gildedrose/GildedRoseTest.java @@ -90,16 +90,15 @@ class GildedRoseTest { @Test void backStagePassesIncrease() { - String backstage = GildedRose.backStagePasses; Item[] items = new Item[]{ - new Item(backstage, 100, 0), - new Item(backstage, 11, 0), - new Item(backstage, 10, 0), - new Item(backstage, 6, 0), - new Item(backstage, 5, 0), - new Item(backstage, 1, 0), - new Item(backstage, 0, 50), - new Item(backstage, -1, 50), + new Item("Backstage passes to a TAFKAL80ETC concert", 100, 0), + new Item("Backstage passes to a TAFKAL80ETC concert", 11, 0), + new Item("Backstage passes to a TAFKAL80ETC concert", 10, 0), + new Item("Backstage passes to a TAFKAL80ETC concert", 6, 0), + new Item("Backstage passes to a TAFKAL80ETC concert", 5, 0), + new Item("Backstage passes to a IDK concert", 1, 0), + new Item("Backstage passes to a Robbie Williams concert", 0, 50), + new Item("Backstage passes to a Hank Williams concert", -1, 50), }; GildedRose app = new GildedRose(items); app.updateQuality();