mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-16 06:51:27 +00:00
調整GildedRose.updateQuality()和test case
This commit is contained in:
parent
56c16eaa70
commit
64149da564
@ -9,70 +9,7 @@ class GildedRose {
|
|||||||
|
|
||||||
public void updateQuality() {
|
public void updateQuality() {
|
||||||
for (Item item : items) {
|
for (Item item : items) {
|
||||||
updateItem(item);
|
item.update();
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void updateItem(Item item) {
|
|
||||||
if (item.name.equals("Sulfuras, Hand of Ragnaros")) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (item.name.equals("Aged Brie")) {
|
|
||||||
updateAgedBrie(item);
|
|
||||||
} else if (item.name.equals("Backstage passes to a TAFKAL80ETC concert")) {
|
|
||||||
updateBackstagePasses(item);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
updateNormal(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void updateBackstagePasses(Item item) {
|
|
||||||
item.sellIn = item.sellIn - 1;
|
|
||||||
|
|
||||||
increaseQuality(item);
|
|
||||||
|
|
||||||
if (item.sellIn < 10) {
|
|
||||||
increaseQuality(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (item.sellIn < 5) {
|
|
||||||
increaseQuality(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (item.sellIn < 0) {
|
|
||||||
item.quality = item.quality - item.quality;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void updateNormal(Item item) {
|
|
||||||
item.sellIn = item.sellIn - 1;
|
|
||||||
|
|
||||||
decreaseQuality(item);
|
|
||||||
if (item.sellIn < 0) {
|
|
||||||
decreaseQuality(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void updateAgedBrie(Item item) {
|
|
||||||
item.sellIn = item.sellIn - 1;
|
|
||||||
|
|
||||||
increaseQuality(item);
|
|
||||||
if (item.sellIn < 0) {
|
|
||||||
increaseQuality(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void decreaseQuality(Item item) {
|
|
||||||
if (item.quality > 0) {
|
|
||||||
item.quality = item.quality - 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void increaseQuality(Item item) {
|
|
||||||
if (item.quality < 50) {
|
|
||||||
item.quality = item.quality + 1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,14 +1,13 @@
|
|||||||
package com.gildedrose;
|
package com.gildedrose;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
class GildedRoseTest {
|
class GildedRoseTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void foo() {
|
void foo() {
|
||||||
Item[] items = new Item[] { new Item("foo", 0, 0) };
|
Item[] items = new Item[] { new NormalItem("foo", 0, 0) };
|
||||||
GildedRose app = new GildedRose(items);
|
GildedRose app = new GildedRose(items);
|
||||||
app.updateQuality();
|
app.updateQuality();
|
||||||
assertEquals("foo", app.items[0].name);
|
assertEquals("foo", app.items[0].name);
|
||||||
@ -17,7 +16,7 @@ class GildedRoseTest {
|
|||||||
// copy-paste from https://gist.github.com/adelatorrefoss/ebc658b3e0054913dced80c8fe384de0
|
// copy-paste from https://gist.github.com/adelatorrefoss/ebc658b3e0054913dced80c8fe384de0
|
||||||
@Test
|
@Test
|
||||||
public void quality_never_is_negative() {
|
public void quality_never_is_negative() {
|
||||||
Item[] items = new Item[]{new Item("foo", 0, 0)};
|
Item[] items = new Item[]{new NormalItem("foo", 0, 0)};
|
||||||
GildedRose app = new GildedRose(items);
|
GildedRose app = new GildedRose(items);
|
||||||
|
|
||||||
app.updateQuality();
|
app.updateQuality();
|
||||||
@ -27,7 +26,7 @@ class GildedRoseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void sulfuras_could_not_be_sold() {
|
public void sulfuras_could_not_be_sold() {
|
||||||
Item[] items = new Item[]{new Item("Sulfuras, Hand of Ragnaros", 10, 0)};
|
Item[] items = new Item[]{new SulfurasItem("Sulfuras, Hand of Ragnaros", 10, 0)};
|
||||||
GildedRose app = new GildedRose(items);
|
GildedRose app = new GildedRose(items);
|
||||||
|
|
||||||
app.updateQuality();
|
app.updateQuality();
|
||||||
@ -37,7 +36,7 @@ class GildedRoseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void sulfuras_could_not_decrease_quality() {
|
public void sulfuras_could_not_decrease_quality() {
|
||||||
Item[] items = new Item[]{new Item("Sulfuras, Hand of Ragnaros", 10, 10)};
|
Item[] items = new Item[]{new SulfurasItem("Sulfuras, Hand of Ragnaros", 10, 10)};
|
||||||
GildedRose app = new GildedRose(items);
|
GildedRose app = new GildedRose(items);
|
||||||
|
|
||||||
app.updateQuality();
|
app.updateQuality();
|
||||||
@ -47,7 +46,7 @@ class GildedRoseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void quality_could_not_be_more_than_fifty() {
|
public void quality_could_not_be_more_than_fifty() {
|
||||||
Item[] items = new Item[]{new Item("Aged Brie", 10, 50)};
|
Item[] items = new Item[]{new AgedBrieItem("Aged Brie", 10, 50)};
|
||||||
GildedRose app = new GildedRose(items);
|
GildedRose app = new GildedRose(items);
|
||||||
|
|
||||||
app.updateQuality();
|
app.updateQuality();
|
||||||
@ -57,7 +56,7 @@ class GildedRoseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void item_with_date_passed_quality_decrease_by_twice() {
|
public void item_with_date_passed_quality_decrease_by_twice() {
|
||||||
Item[] items = new Item[]{new Item("foo", -1, 40)};
|
Item[] items = new Item[]{new NormalItem("foo", -1, 40)};
|
||||||
GildedRose app = new GildedRose(items);
|
GildedRose app = new GildedRose(items);
|
||||||
|
|
||||||
app.updateQuality();
|
app.updateQuality();
|
||||||
@ -67,7 +66,7 @@ class GildedRoseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void aged_brie_increase_quality_when_it_gets_older() {
|
public void aged_brie_increase_quality_when_it_gets_older() {
|
||||||
Item[] items = new Item[]{new Item("Aged Brie", 1, 40)};
|
Item[] items = new Item[]{new AgedBrieItem("Aged Brie", 1, 40)};
|
||||||
GildedRose app = new GildedRose(items);
|
GildedRose app = new GildedRose(items);
|
||||||
|
|
||||||
app.updateQuality();
|
app.updateQuality();
|
||||||
@ -77,7 +76,7 @@ class GildedRoseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void aged_brie_increase_by_two_quality_when_date_passed() {
|
public void aged_brie_increase_by_two_quality_when_date_passed() {
|
||||||
Item[] items = new Item[]{new Item("Aged Brie", -1, 40)};
|
Item[] items = new Item[]{new AgedBrieItem("Aged Brie", -1, 40)};
|
||||||
GildedRose app = new GildedRose(items);
|
GildedRose app = new GildedRose(items);
|
||||||
|
|
||||||
app.updateQuality();
|
app.updateQuality();
|
||||||
@ -87,7 +86,7 @@ class GildedRoseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void aged_brie_increase_by_two_quality_when_date_passed_and_not_more_than_fifty() {
|
public void aged_brie_increase_by_two_quality_when_date_passed_and_not_more_than_fifty() {
|
||||||
Item[] items = new Item[]{new Item("Aged Brie", -1, 50)};
|
Item[] items = new Item[]{new AgedBrieItem("Aged Brie", -1, 50)};
|
||||||
GildedRose app = new GildedRose(items);
|
GildedRose app = new GildedRose(items);
|
||||||
|
|
||||||
app.updateQuality();
|
app.updateQuality();
|
||||||
@ -97,7 +96,7 @@ class GildedRoseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void backstage_passes_increase_quality_by_two_when_sellin_less_than_ten() {
|
public void backstage_passes_increase_quality_by_two_when_sellin_less_than_ten() {
|
||||||
Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 10, 40)};
|
Item[] items = new Item[]{new BackstagePassesItem("Backstage passes to a TAFKAL80ETC concert", 10, 40)};
|
||||||
GildedRose app = new GildedRose(items);
|
GildedRose app = new GildedRose(items);
|
||||||
|
|
||||||
app.updateQuality();
|
app.updateQuality();
|
||||||
@ -107,7 +106,7 @@ class GildedRoseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void backstage_passes_increase_quality_by_two_when_sellin_less_than_six() {
|
public void backstage_passes_increase_quality_by_two_when_sellin_less_than_six() {
|
||||||
Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 6, 40)};
|
Item[] items = new Item[]{new BackstagePassesItem("Backstage passes to a TAFKAL80ETC concert", 6, 40)};
|
||||||
GildedRose app = new GildedRose(items);
|
GildedRose app = new GildedRose(items);
|
||||||
|
|
||||||
app.updateQuality();
|
app.updateQuality();
|
||||||
@ -117,7 +116,7 @@ class GildedRoseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void backstage_passes_increase_quality_by_three_when_sellin_less_than_five() {
|
public void backstage_passes_increase_quality_by_three_when_sellin_less_than_five() {
|
||||||
Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 5, 40)};
|
Item[] items = new Item[]{new BackstagePassesItem("Backstage passes to a TAFKAL80ETC concert", 5, 40)};
|
||||||
GildedRose app = new GildedRose(items);
|
GildedRose app = new GildedRose(items);
|
||||||
|
|
||||||
app.updateQuality();
|
app.updateQuality();
|
||||||
@ -127,7 +126,7 @@ class GildedRoseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void backstage_passes_increase_quality_by_two_when_sellin_less_than_six_and_not_more_than_fifty() {
|
public void backstage_passes_increase_quality_by_two_when_sellin_less_than_six_and_not_more_than_fifty() {
|
||||||
Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 6, 49)};
|
Item[] items = new Item[]{new BackstagePassesItem("Backstage passes to a TAFKAL80ETC concert", 6, 49)};
|
||||||
GildedRose app = new GildedRose(items);
|
GildedRose app = new GildedRose(items);
|
||||||
|
|
||||||
app.updateQuality();
|
app.updateQuality();
|
||||||
@ -137,7 +136,7 @@ class GildedRoseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void backstage_passes_increase_quality_by_three_when_sellin_less_than_five_and_not_more_than_fifty() {
|
public void backstage_passes_increase_quality_by_three_when_sellin_less_than_five_and_not_more_than_fifty() {
|
||||||
Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 5, 48)};
|
Item[] items = new Item[]{new BackstagePassesItem("Backstage passes to a TAFKAL80ETC concert", 5, 48)};
|
||||||
GildedRose app = new GildedRose(items);
|
GildedRose app = new GildedRose(items);
|
||||||
|
|
||||||
app.updateQuality();
|
app.updateQuality();
|
||||||
@ -147,7 +146,7 @@ class GildedRoseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void backstage_passes_quality_drops_to_zero_after_concert() {
|
public void backstage_passes_quality_drops_to_zero_after_concert() {
|
||||||
Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 0, 40)};
|
Item[] items = new Item[]{new BackstagePassesItem("Backstage passes to a TAFKAL80ETC concert", 0, 40)};
|
||||||
GildedRose app = new GildedRose(items);
|
GildedRose app = new GildedRose(items);
|
||||||
|
|
||||||
app.updateQuality();
|
app.updateQuality();
|
||||||
@ -157,7 +156,7 @@ class GildedRoseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void backstage_passes_quality_increase_quality_by_one_when_date_is_more_than_10() {
|
public void backstage_passes_quality_increase_quality_by_one_when_date_is_more_than_10() {
|
||||||
Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 11, 40)};
|
Item[] items = new Item[]{new BackstagePassesItem("Backstage passes to a TAFKAL80ETC concert", 11, 40)};
|
||||||
GildedRose app = new GildedRose(items);
|
GildedRose app = new GildedRose(items);
|
||||||
|
|
||||||
app.updateQuality();
|
app.updateQuality();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user