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);
+ }
+
}