From d278d9b389f9c4b8940d171c779c0960f106703a Mon Sep 17 00:00:00 2001 From: Sallah Kokaina Date: Fri, 1 Nov 2019 11:30:49 +0100 Subject: [PATCH] Once the sell by date has passed (<=0), Quality degrades twice as fast --- Java/README.md | 2 +- .../java/com/gildedrose/GildedRoseTest.java | 21 +++++++++++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/Java/README.md b/Java/README.md index 1c6dde5d..7e7e0c38 100644 --- a/Java/README.md +++ b/Java/README.md @@ -10,7 +10,7 @@ # unit tests -[x] At the end of each day our system lowers both values for every item --[ ] Once the sell by date has passed, Quality degrades twice as fast +-[x] Once the sell by date has passed, Quality degrades twice as fast -[ ] The Quality of an item is never negative -[ ] "Aged Brie" actually increases in Quality the older it gets -[ ] The Quality of an item is never more than 50 diff --git a/Java/src/test/java/com/gildedrose/GildedRoseTest.java b/Java/src/test/java/com/gildedrose/GildedRoseTest.java index 1b3f8eb0..faecbfde 100644 --- a/Java/src/test/java/com/gildedrose/GildedRoseTest.java +++ b/Java/src/test/java/com/gildedrose/GildedRoseTest.java @@ -17,11 +17,28 @@ public class GildedRoseTest { //At the end of each day our system lowers both values for every item @Test public void shouldLowerBothValues(){ - Item[] items = new Item[] { TestHelper.getItem("foobar", 1, 1) }; + Item[] items = new Item[] { TestHelper.getItem("foobar", 2, 2) }; GildedRose app = new GildedRose(items); app.updateQuality(); - assertEquals(0, app.items[0].quality); + assertEquals(1, app.items[0].quality); + assertEquals(1, app.items[0].sellIn); + } + + //Once the sell by date has passed (<=0), Quality degrades twice as fast + @Test + public void shouldDowngradeTwiceAsFastAfterSellDate(){ + Item[] items = new Item[] { TestHelper.getItem("foobar", 1, 5) }; + GildedRose app = new GildedRose(items); + + //day 1, drop by 1 + app.updateQuality(); + assertEquals(4, app.items[0].quality); assertEquals(0, app.items[0].sellIn); + + //day 2, drop by 2 + app.updateQuality(); + assertEquals(2, app.items[0].quality); + assertEquals(-1, app.items[0].sellIn); } }