Refactor handleBackstagePasses

This commit is contained in:
Richard Xu 2022-12-22 12:32:57 -05:00
parent 069708dce9
commit 5f4dffb5e3
2 changed files with 31 additions and 11 deletions

View File

@ -82,19 +82,15 @@ class GildedRose {
private static void handleBackstagePasses(Item item) {
// todo: make it so these items can't be initialized with over 50
if (item.sellIn == 0) {
item.quality = 0;
return;
}
if (item.quality == 50) {
return;
}
if (item.sellIn <= 10) {
if (item.sellIn <= 5) {
item.quality += 3;
} else {
item.quality += 2;
}
if (item.sellIn == 0) {
item.quality = 0;
} else if (item.sellIn <= 5) {
item.quality += 3;
} else if (item.sellIn <= 10) {
item.quality += 2;
}
item.sellIn -= 1;
}

View File

@ -179,7 +179,7 @@ class GildedRoseTest {
}
@Test
public void sellInDateCanBeNegative() {
public void sellInDateCanBeNegativeForGenericItems() {
Item[] items = new Item[] { new Item("generic item", 1, 1) };
GildedRose app = new GildedRose(items);
app.updateQuality();
@ -190,6 +190,30 @@ class GildedRoseTest {
assertEquals(app.items.get(0).sellIn, -2);
}
@Test
public void sellInDateCanBeNegativeForAgedBrie() {
Item[] items = new Item[] { new Item(GildedRose.AGED_BRIE, 1, 1) };
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals(app.items.get(0).sellIn, 0);
app.updateQuality();
assertEquals(app.items.get(0).sellIn, -1);
app.updateQuality();
assertEquals(app.items.get(0).sellIn, -2);
}
@Test
public void sellInDateCanBeNegativeForBackStagePasses() {
Item[] items = new Item[] { new Item(GildedRose.BACKSTAGE_PASSES, 1, 1) };
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals(app.items.get(0).sellIn, 0);
app.updateQuality();
assertEquals(app.items.get(0).sellIn, -1);
app.updateQuality();
assertEquals(app.items.get(0).sellIn, -2);
}
@Test
public void itUpdatesAllItemsPassedIn() {
Item[] items = new Item[] {