|
|
|
|
@ -1,15 +1,17 @@
|
|
|
|
|
package com.gildedrose;
|
|
|
|
|
|
|
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
|
|
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
|
|
|
|
|
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
|
|
|
|
|
|
class GildedRoseTest {
|
|
|
|
|
private static final int SULFURAS_QUALITY = 80;
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void agedBrieIncreasesInQualityByOneEachDay() {
|
|
|
|
|
Item[] items = new Item[]{new Item(ItemType.AGED_BRIE.getDisplayName(), 2, 0)};
|
|
|
|
|
Item[] items = new Item[] {
|
|
|
|
|
new Item(ItemType.AGED_BRIE.getDisplayName(), 2, 0)
|
|
|
|
|
};
|
|
|
|
|
GildedRose app = new GildedRose(items);
|
|
|
|
|
app.updateQuality();
|
|
|
|
|
assertEquals(1, app.items.get(0).quality);
|
|
|
|
|
@ -20,7 +22,7 @@ class GildedRoseTest {
|
|
|
|
|
@Test
|
|
|
|
|
public void sulfurasSellInDateNeverChanges() {
|
|
|
|
|
int sellIn = 10;
|
|
|
|
|
Item[] items = new Item[]{
|
|
|
|
|
Item[] items = new Item[] {
|
|
|
|
|
new Item(ItemType.SULFURAS.getDisplayName(), sellIn, SULFURAS_QUALITY)
|
|
|
|
|
};
|
|
|
|
|
GildedRose app = new GildedRose(items);
|
|
|
|
|
@ -32,7 +34,7 @@ class GildedRoseTest {
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void sulfurasValueNeverChanges() {
|
|
|
|
|
Item[] items = new Item[]{
|
|
|
|
|
Item[] items = new Item[] {
|
|
|
|
|
new Item(ItemType.SULFURAS.getDisplayName(), 10, SULFURAS_QUALITY)
|
|
|
|
|
};
|
|
|
|
|
GildedRose app = new GildedRose(items);
|
|
|
|
|
@ -44,7 +46,7 @@ class GildedRoseTest {
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void sulfurasValueIsAlways80() {
|
|
|
|
|
Item[] items = new Item[]{
|
|
|
|
|
Item[] items = new Item[] {
|
|
|
|
|
new Item(ItemType.SULFURAS.getDisplayName(), 10, SULFURAS_QUALITY)
|
|
|
|
|
};
|
|
|
|
|
GildedRose app = new GildedRose(items);
|
|
|
|
|
@ -55,7 +57,7 @@ class GildedRoseTest {
|
|
|
|
|
@Test
|
|
|
|
|
public void backstagePassesQualityIncreasesByTwoWhenThereAreTenDaysOrLessBeforeTheConcert() {
|
|
|
|
|
int quality = 0;
|
|
|
|
|
Item[] items = new Item[]{
|
|
|
|
|
Item[] items = new Item[] {
|
|
|
|
|
new Item(ItemType.BACKSTAGE_PASSES.getDisplayName(), 10, quality)
|
|
|
|
|
};
|
|
|
|
|
GildedRose app = new GildedRose(items);
|
|
|
|
|
@ -68,7 +70,7 @@ class GildedRoseTest {
|
|
|
|
|
@Test
|
|
|
|
|
public void backstagePassesQualityIncreasesByThreeWhenThereAreFiveDaysOrLessBeforeTheConcert() {
|
|
|
|
|
int quality = 0;
|
|
|
|
|
Item[] items = new Item[]{
|
|
|
|
|
Item[] items = new Item[] {
|
|
|
|
|
new Item(ItemType.BACKSTAGE_PASSES.getDisplayName(), 5, quality)
|
|
|
|
|
};
|
|
|
|
|
GildedRose app = new GildedRose(items);
|
|
|
|
|
@ -83,7 +85,7 @@ class GildedRoseTest {
|
|
|
|
|
@Test
|
|
|
|
|
public void backstagePassesQualityDropsToZeroAfterTheConcert() {
|
|
|
|
|
int quality = 10;
|
|
|
|
|
Item[] items = new Item[]{
|
|
|
|
|
Item[] items = new Item[] {
|
|
|
|
|
new Item(ItemType.BACKSTAGE_PASSES.getDisplayName(), 1, quality)
|
|
|
|
|
};
|
|
|
|
|
GildedRose app = new GildedRose(items);
|
|
|
|
|
@ -97,7 +99,7 @@ class GildedRoseTest {
|
|
|
|
|
public void qualityIsNeverNegativeForGenericItems() {
|
|
|
|
|
// todo: should add a similar case for conjured
|
|
|
|
|
int quality = 1;
|
|
|
|
|
Item[] items = new Item[]{new Item("generic item", 5, quality)};
|
|
|
|
|
Item[] items = new Item[] { new Item("generic item", 5, quality) };
|
|
|
|
|
GildedRose app = new GildedRose(items);
|
|
|
|
|
app.updateQuality();
|
|
|
|
|
assertEquals(0, app.items.get(0).quality);
|
|
|
|
|
@ -109,7 +111,9 @@ class GildedRoseTest {
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void qualityIsNeverOverFiftyForAgedBrie() {
|
|
|
|
|
Item[] items = new Item[]{new Item(ItemType.AGED_BRIE.getDisplayName(), 5, 50)};
|
|
|
|
|
Item[] items = new Item[] {
|
|
|
|
|
new Item(ItemType.AGED_BRIE.getDisplayName(), 5, 50)
|
|
|
|
|
};
|
|
|
|
|
GildedRose app = new GildedRose(items);
|
|
|
|
|
app.updateQuality();
|
|
|
|
|
assertEquals(50, app.items.get(0).quality);
|
|
|
|
|
@ -121,7 +125,9 @@ class GildedRoseTest {
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void qualityIsNeverOverFiftyForBackstagePasses() {
|
|
|
|
|
Item[] items = new Item[]{new Item(ItemType.BACKSTAGE_PASSES.getDisplayName(), 5, 50)};
|
|
|
|
|
Item[] items = new Item[] {
|
|
|
|
|
new Item(ItemType.BACKSTAGE_PASSES.getDisplayName(), 5, 50)
|
|
|
|
|
};
|
|
|
|
|
GildedRose app = new GildedRose(items);
|
|
|
|
|
app.updateQuality();
|
|
|
|
|
assertEquals(50, app.items.get(0).quality);
|
|
|
|
|
@ -133,7 +139,7 @@ class GildedRoseTest {
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void qualityDecreasesByOneEachDayForGenericItems() {
|
|
|
|
|
Item[] items = new Item[]{new Item("generic item", 5, 5)};
|
|
|
|
|
Item[] items = new Item[] { new Item("generic item", 5, 5) };
|
|
|
|
|
GildedRose app = new GildedRose(items);
|
|
|
|
|
app.updateQuality();
|
|
|
|
|
assertEquals(4, app.items.get(0).quality);
|
|
|
|
|
@ -145,7 +151,7 @@ class GildedRoseTest {
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void qualityDecreasesByTwoEachDayForGenericItemsAfterSellInDate() {
|
|
|
|
|
Item[] items = new Item[]{new Item("generic item", 1, 6)};
|
|
|
|
|
Item[] items = new Item[] { new Item("generic item", 1, 6) };
|
|
|
|
|
GildedRose app = new GildedRose(items);
|
|
|
|
|
app.updateQuality();
|
|
|
|
|
assertEquals(5, app.items.get(0).quality);
|
|
|
|
|
@ -157,7 +163,9 @@ class GildedRoseTest {
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void sellInDateDecreasesByOneEachDayForAgedBrie() {
|
|
|
|
|
Item[] items = new Item[]{new Item(ItemType.AGED_BRIE.getDisplayName(), 5, 1)};
|
|
|
|
|
Item[] items = new Item[] {
|
|
|
|
|
new Item(ItemType.AGED_BRIE.getDisplayName(), 5, 1)
|
|
|
|
|
};
|
|
|
|
|
GildedRose app = new GildedRose(items);
|
|
|
|
|
app.updateQuality();
|
|
|
|
|
assertEquals(4, app.items.get(0).sellIn);
|
|
|
|
|
@ -169,7 +177,9 @@ class GildedRoseTest {
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void sellInDateDecreasesByOneEachDayForBackstagePasses() {
|
|
|
|
|
Item[] items = new Item[]{new Item(ItemType.BACKSTAGE_PASSES.getDisplayName(), 5, 1)};
|
|
|
|
|
Item[] items = new Item[] {
|
|
|
|
|
new Item(ItemType.BACKSTAGE_PASSES.getDisplayName(), 5, 1)
|
|
|
|
|
};
|
|
|
|
|
GildedRose app = new GildedRose(items);
|
|
|
|
|
app.updateQuality();
|
|
|
|
|
assertEquals(4, app.items.get(0).sellIn);
|
|
|
|
|
@ -181,7 +191,7 @@ class GildedRoseTest {
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void sellInDateDecreasesByOneEachDayForGenericItems() {
|
|
|
|
|
Item[] items = new Item[]{new Item("generic item", 5, 1)};
|
|
|
|
|
Item[] items = new Item[] { new Item("generic item", 5, 1) };
|
|
|
|
|
GildedRose app = new GildedRose(items);
|
|
|
|
|
app.updateQuality();
|
|
|
|
|
assertEquals(4, app.items.get(0).sellIn);
|
|
|
|
|
@ -193,7 +203,7 @@ class GildedRoseTest {
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void sellInDateCanBeNegativeForGenericItems() {
|
|
|
|
|
Item[] items = new Item[]{new Item("generic item", 1, 1)};
|
|
|
|
|
Item[] items = new Item[] { new Item("generic item", 1, 1) };
|
|
|
|
|
GildedRose app = new GildedRose(items);
|
|
|
|
|
app.updateQuality();
|
|
|
|
|
assertEquals(0, app.items.get(0).sellIn);
|
|
|
|
|
@ -205,7 +215,9 @@ class GildedRoseTest {
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void sellInDateCanBeNegativeForAgedBrie() {
|
|
|
|
|
Item[] items = new Item[]{new Item(ItemType.AGED_BRIE.getDisplayName(), 1, 1)};
|
|
|
|
|
Item[] items = new Item[] {
|
|
|
|
|
new Item(ItemType.AGED_BRIE.getDisplayName(), 1, 1)
|
|
|
|
|
};
|
|
|
|
|
GildedRose app = new GildedRose(items);
|
|
|
|
|
app.updateQuality();
|
|
|
|
|
assertEquals(0, app.items.get(0).sellIn);
|
|
|
|
|
@ -217,7 +229,9 @@ class GildedRoseTest {
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void sellInDateCanBeNegativeForBackStagePasses() {
|
|
|
|
|
Item[] items = new Item[]{new Item(ItemType.BACKSTAGE_PASSES.getDisplayName(), 1, 1)};
|
|
|
|
|
Item[] items = new Item[] {
|
|
|
|
|
new Item(ItemType.BACKSTAGE_PASSES.getDisplayName(), 1, 1)
|
|
|
|
|
};
|
|
|
|
|
GildedRose app = new GildedRose(items);
|
|
|
|
|
app.updateQuality();
|
|
|
|
|
assertEquals(0, app.items.get(0).sellIn);
|
|
|
|
|
@ -229,7 +243,7 @@ class GildedRoseTest {
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void itUpdatesAllItemsPassedIn() {
|
|
|
|
|
Item[] items = new Item[]{
|
|
|
|
|
Item[] items = new Item[] {
|
|
|
|
|
new Item("generic item 1", 5, 5),
|
|
|
|
|
new Item("generic item 2", 5, 10)
|
|
|
|
|
};
|
|
|
|
|
@ -247,7 +261,7 @@ class GildedRoseTest {
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void conjuredItemsDecreaseByTwoEachDayBeforeSellInDate() {
|
|
|
|
|
Item[] items = new Item[]{new Item("Conjured Mana Cake", 10, 10)};
|
|
|
|
|
Item[] items = new Item[] { new Item("Conjured Mana Cake", 10, 10) };
|
|
|
|
|
GildedRose app = new GildedRose(items);
|
|
|
|
|
app.updateQuality();
|
|
|
|
|
assertEquals(8, app.items.get(0).quality);
|
|
|
|
|
@ -259,7 +273,7 @@ class GildedRoseTest {
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void sellInDateDecreasesByOneEachDayForConjuredItem() {
|
|
|
|
|
Item[] items = new Item[]{new Item("Conjured Mana Cake", 2, 10)};
|
|
|
|
|
Item[] items = new Item[] { new Item("Conjured Mana Cake", 2, 10) };
|
|
|
|
|
GildedRose app = new GildedRose(items);
|
|
|
|
|
app.updateQuality();
|
|
|
|
|
assertEquals(1, app.items.get(0).sellIn);
|
|
|
|
|
@ -271,7 +285,7 @@ class GildedRoseTest {
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void conjuredItemsQualityDecreasesByFourEachDayAfterSellInDate() {
|
|
|
|
|
Item[] items = new Item[]{new Item("Conjured Mana Cake", 1, 10)};
|
|
|
|
|
Item[] items = new Item[] { new Item("Conjured Mana Cake", 1, 10) };
|
|
|
|
|
GildedRose app = new GildedRose(items);
|
|
|
|
|
app.updateQuality();
|
|
|
|
|
assertEquals(8, app.items.get(0).quality);
|
|
|
|
|
|