From 172ba212f698abf3c6854a3cea0a802733e43347 Mon Sep 17 00:00:00 2001 From: Sallah Kokaina Date: Fri, 1 Nov 2019 14:40:07 +0100 Subject: [PATCH] The Quality of an item is never negative --- Java/README.md | 2 +- Java/pom.xml | 17 ++++++++++--- .../java/com/gildedrose/GildedRoseTest.java | 24 +++++++++++++++---- 3 files changed, 35 insertions(+), 8 deletions(-) diff --git a/Java/README.md b/Java/README.md index 7e7e0c38..15cddb93 100644 --- a/Java/README.md +++ b/Java/README.md @@ -11,7 +11,7 @@ # unit tests -[x] At the end of each day our system lowers both values for every item -[x] Once the sell by date has passed, Quality degrades twice as fast --[ ] The Quality of an item is never negative +-[x] 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 -[ ] "Sulfuras", being a legendary item, never has to be sold or decreases in Quality diff --git a/Java/pom.xml b/Java/pom.xml index 6add3690..2282fe2b 100644 --- a/Java/pom.xml +++ b/Java/pom.xml @@ -11,13 +11,15 @@ 1.8 + 5.5.2 + UTF-8 - junit - junit - 4.12 + org.junit.jupiter + junit-jupiter-engine + ${junit-jupiter.version} test @@ -31,6 +33,15 @@ ${java.version} + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.0.0-M3 + + diff --git a/Java/src/test/java/com/gildedrose/GildedRoseTest.java b/Java/src/test/java/com/gildedrose/GildedRoseTest.java index faecbfde..ccb430a8 100644 --- a/Java/src/test/java/com/gildedrose/GildedRoseTest.java +++ b/Java/src/test/java/com/gildedrose/GildedRoseTest.java @@ -1,8 +1,9 @@ package com.gildedrose; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; -import org.junit.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; public class GildedRoseTest { @@ -14,8 +15,8 @@ public class GildedRoseTest { assertEquals("foo", app.items[0].name); } - //At the end of each day our system lowers both values for every item @Test + @DisplayName("At the end of each day our system lowers both values for every item") public void shouldLowerBothValues(){ Item[] items = new Item[] { TestHelper.getItem("foobar", 2, 2) }; GildedRose app = new GildedRose(items); @@ -24,8 +25,8 @@ public class GildedRoseTest { assertEquals(1, app.items[0].sellIn); } - //Once the sell by date has passed (<=0), Quality degrades twice as fast @Test + @DisplayName("Once the sell by date has passed (<=0), Quality degrades twice as fast") public void shouldDowngradeTwiceAsFastAfterSellDate(){ Item[] items = new Item[] { TestHelper.getItem("foobar", 1, 5) }; GildedRose app = new GildedRose(items); @@ -41,4 +42,19 @@ public class GildedRoseTest { assertEquals(-1, app.items[0].sellIn); } + @Test + @DisplayName("The Quality of an item is never negative") + public void shouldNeverHaveANegativeQuality() { + Item[] items = new Item[]{TestHelper.getItem("foobar", 0, 0)}; + GildedRose app = new GildedRose(items); + + //day 1, drop by 1 + app.updateQuality(); + assertEquals(0, app.items[0].quality); + + //day 2, drop by 1 => quality is still 0 + app.updateQuality(); + assertEquals(0, app.items[0].quality); + } + }