From 0458a9adb25cac775b6353af450b10bbb2263436 Mon Sep 17 00:00:00 2001 From: Kadir Sirimsi Date: Tue, 11 Feb 2025 14:37:58 +0100 Subject: [PATCH] refactor: simplify using gildedrose --- .../main/java/com/gildedrose/GildedRose.java | 12 ++++----- .../java/com/gildedrose/GildedRoseTest.java | 25 ++++++++++++------- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/Java/src/main/java/com/gildedrose/GildedRose.java b/Java/src/main/java/com/gildedrose/GildedRose.java index 6ed8cd11..9ea9be42 100644 --- a/Java/src/main/java/com/gildedrose/GildedRose.java +++ b/Java/src/main/java/com/gildedrose/GildedRose.java @@ -1,15 +1,15 @@ package com.gildedrose; +import java.util.List; + class GildedRose { - Item[] items; + private final List items; public GildedRose(Item[] items) { - this.items = items; + this.items = List.of(items); } - public void updateQuality() { - for (Item item : items) { - item.updateItem(); - } + public void degradeItems() { + items.forEach(Item::degrade); } } diff --git a/Java/src/test/java/com/gildedrose/GildedRoseTest.java b/Java/src/test/java/com/gildedrose/GildedRoseTest.java index a91c55a7..004de6e1 100644 --- a/Java/src/test/java/com/gildedrose/GildedRoseTest.java +++ b/Java/src/test/java/com/gildedrose/GildedRoseTest.java @@ -7,16 +7,23 @@ import static org.junit.jupiter.api.Assertions.assertEquals; class GildedRoseTest { @Test - void givenListOfItems_whenUpdateQuality_thenNameRemainsUnchanged() { - final var name = "foo"; - - var items = new Item[] { new Item(name, 0, 0) }; + void givenMultipleItems_whenDegradeItems_thenAllItemsDegradeCorrectly() { + Item[] items = { + new NormalItem("Normal Item", 10, 20), + new AgedBrieItem("Aged Brie", 5, 10), + new BackstagePassItem("Backstage Pass", 15, 30), + new SulfurasItem("Sulfuras, Hand of Ragnaros", 0, 80) + }; var app = new GildedRose(items); + app.degradeItems(); - app.updateQuality(); - - assertEquals(name, app.items[0].getName()); + assertEquals(9, items[0].sellIn); + assertEquals(19, items[0].quality); + assertEquals(4, items[1].sellIn); + assertEquals(11, items[1].quality); + assertEquals(14, items[2].sellIn); + assertEquals(31, items[2].quality); + assertEquals(0, items[3].sellIn); + assertEquals(80, items[3].quality); } - - }