From 5564010b7b5535480394432bdd4b6df1300d1215 Mon Sep 17 00:00:00 2001 From: liaolizhen Date: Thu, 13 Aug 2020 15:17:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5test=20case=20&=20=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gildedrose/GildedRoseTest.java | 151 ++++++++++++++++++ 1 file changed, 151 insertions(+) diff --git a/Java/src/test/java/com/gildedrose/GildedRoseTest.java b/Java/src/test/java/com/gildedrose/GildedRoseTest.java index 8ae29eec..dcffcfac 100644 --- a/Java/src/test/java/com/gildedrose/GildedRoseTest.java +++ b/Java/src/test/java/com/gildedrose/GildedRoseTest.java @@ -13,5 +13,156 @@ class GildedRoseTest { app.updateQuality(); assertEquals("fixme", app.items[0].name); } + + // copy-paste from https://gist.github.com/adelatorrefoss/ebc658b3e0054913dced80c8fe384de0 + @Test + public void quality_never_is_negative() { + Item[] items = new Item[]{new Item("foo", 0, 0)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(0, app.items[0].quality); + } + + @Test + public void sulfuras_could_not_be_sold() { + Item[] items = new Item[]{new Item("Sulfuras, Hand of Ragnaros", 10, 0)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(10, app.items[0].sellIn); + } + + @Test + public void sulfuras_could_not_decrease_quality() { + Item[] items = new Item[]{new Item("Sulfuras, Hand of Ragnaros", 10, 10)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(10, app.items[0].quality); + } + + @Test + public void quality_could_not_be_more_than_fifty() { + Item[] items = new Item[]{new Item("Aged Brie", 10, 50)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(50, app.items[0].quality); + } + + @Test + public void item_with_date_passed_quality_decrease_by_twice() { + Item[] items = new Item[]{new Item("foo", -1, 40)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(38, app.items[0].quality); + } + + @Test + public void aged_brie_increase_quality_when_it_gets_older() { + Item[] items = new Item[]{new Item("Aged Brie", 1, 40)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(41, app.items[0].quality); + } + + @Test + public void aged_brie_increase_by_two_quality_when_date_passed() { + Item[] items = new Item[]{new Item("Aged Brie", -1, 40)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(42, app.items[0].quality); + } + + @Test + 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)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(50, app.items[0].quality); + } + + @Test + 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)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(42, app.items[0].quality); + } + + @Test + 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)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(42, app.items[0].quality); + } + + @Test + 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)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(43, app.items[0].quality); + } + + @Test + 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)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(50, app.items[0].quality); + } + + @Test + 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)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(50, app.items[0].quality); + } + + @Test + public void backstage_passes_quality_drops_to_zero_after_concert() { + Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 0, 40)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(0, app.items[0].quality); + } + + @Test + 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)}; + GildedRose app = new GildedRose(items); + + app.updateQuality(); + + assertEquals(41, app.items[0].quality); + } }