mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-04 09:11:39 +00:00
refactor: limits of quality belong to their setter methods
This commit is contained in:
parent
254d42fa1a
commit
b7493ce188
@ -30,33 +30,29 @@ public class Item {
|
||||
case AgedBrie -> updateAgedBrieItem();
|
||||
case BackstagePass -> updateBackstagePassItem();
|
||||
case Sulfuras -> {}
|
||||
case Normal -> updateUnknownItem();
|
||||
case Normal -> updateNormalItem();
|
||||
}
|
||||
}
|
||||
|
||||
private void updateUnknownItem() {
|
||||
private void updateNormalItem() {
|
||||
sellIn--;
|
||||
|
||||
if (quality > 0) {
|
||||
quality--;
|
||||
}
|
||||
subtractQuality(1);
|
||||
|
||||
if (sellIn < 0 && quality > 0) {
|
||||
quality--;
|
||||
if (sellIn < 0) {
|
||||
subtractQuality(1);
|
||||
}
|
||||
}
|
||||
|
||||
private void updateBackstagePassItem() {
|
||||
if (quality < 50) {
|
||||
quality++;
|
||||
addQuality(1);
|
||||
|
||||
if (sellIn < 11) {
|
||||
addQuality(1);
|
||||
}
|
||||
|
||||
if (sellIn < 11 && quality < 50) {
|
||||
quality++;
|
||||
}
|
||||
|
||||
if (sellIn < 6 && quality < 50) {
|
||||
quality++;
|
||||
if (sellIn < 6) {
|
||||
addQuality(1);
|
||||
}
|
||||
|
||||
sellIn--;
|
||||
@ -67,14 +63,24 @@ public class Item {
|
||||
}
|
||||
|
||||
private void updateAgedBrieItem() {
|
||||
if (quality < 50) {
|
||||
quality++;
|
||||
}
|
||||
addQuality(1);
|
||||
|
||||
sellIn--;
|
||||
|
||||
if (sellIn < 0 && quality < 50) {
|
||||
quality++;
|
||||
if (sellIn < 0) {
|
||||
addQuality(1);
|
||||
}
|
||||
}
|
||||
|
||||
private void addQuality(int addition) {
|
||||
if ((quality + addition) <= 50) {
|
||||
quality += addition;
|
||||
}
|
||||
}
|
||||
|
||||
private void subtractQuality(int subtraction) {
|
||||
if ((quality - subtraction) >= 0) {
|
||||
quality -= subtraction;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -43,17 +43,20 @@ class ItemTest {
|
||||
of(new Item(Sulfuras.getName(), 4, 20), new Item(Sulfuras.getName(), 4, 20), 10),
|
||||
|
||||
// Backstagepass
|
||||
of(new Item(BackstagePass.getName(), -1, 0), new Item(BackstagePass.getName(), -2, 0), 1),
|
||||
of(new Item(BackstagePass.getName(), 8, 40), new Item(BackstagePass.getName(), 7, 42), 1),
|
||||
of(new Item(BackstagePass.getName(), 8, 40), new Item(BackstagePass.getName(), -2, 0), 10),
|
||||
of(new Item(BackstagePass.getName(), 4, 40), new Item(BackstagePass.getName(), -6, 0), 10),
|
||||
of(new Item(BackstagePass.getName(), 0, 40), new Item(BackstagePass.getName(), -10, 0), 10),
|
||||
of(new Item(BackstagePass.getName(), -1, 40), new Item(BackstagePass.getName(), -11, 0), 10),
|
||||
|
||||
// Other
|
||||
// Normal
|
||||
of(new Item(Normal.getName(), -1, 0), new Item(Normal.getName(), -11, 0), 10),
|
||||
of(new Item(Normal.getName(), 0, 40), new Item(Normal.getName(), -10, 20), 10),
|
||||
of(new Item(Normal.getName(), -1, 40), new Item(Normal.getName(), -11, 20), 10),
|
||||
of(new Item(Normal.getName(), -5, 80), new Item(Normal.getName(), -25, 40), 20)
|
||||
|
||||
of(new Item(Normal.getName(), 10, 49), new Item(Normal.getName(), -10, 19), 20),
|
||||
of(new Item(Normal.getName(), 10, 49), new Item(Normal.getName(), -10, 19), 20),
|
||||
of(new Item(Normal.getName(), 11, 50), new Item(Normal.getName(), -9, 21), 20)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user