From 550af04e848fcd7f1f4340b3b68e24b4fc8639e7 Mon Sep 17 00:00:00 2001 From: Gang Peng Date: Wed, 12 Sep 2018 13:52:51 -0700 Subject: [PATCH] create ruby test cases --- ruby/gilded_rose_tests.rb | 218 +++++++++++++++++++++++++++++++++++++- 1 file changed, 214 insertions(+), 4 deletions(-) diff --git a/ruby/gilded_rose_tests.rb b/ruby/gilded_rose_tests.rb index 2e1b70d1..38a1f893 100644 --- a/ruby/gilded_rose_tests.rb +++ b/ruby/gilded_rose_tests.rb @@ -1,12 +1,222 @@ require File.join(File.dirname(__FILE__), 'gilded_rose') require 'test/unit' -class TestUntitled < Test::Unit::TestCase +class GildedRoseTest < Test::Unit::TestCase - def test_foo - items = [Item.new("foo", 0, 0)] + def test_update_plus_5_dexterity_vest_once + items = [Item.new(name="+5 Dexterity Vest", sell_in=10, quality=20)] GildedRose.new(items).update_quality() - assert_equal items[0].name, "fixme" + assert_equal items[0].sell_in, 9 + assert_equal items[0].quality, 19 end + def test_update_plus_5_dexterity_vest_twice + items = [Item.new(name="+5 Dexterity Vest", sell_in=10, quality=20)] + 2.times { GildedRose.new(items).update_quality() } + assert_equal items[0].sell_in, 8 + assert_equal items[0].quality, 18 + end + + def test_update_plus_5_dexterity_vest_thrice + items = [Item.new(name="+5 Dexterity Vest", sell_in=10, quality=20)] + 3.times { GildedRose.new(items).update_quality() } + assert_equal items[0].sell_in, 7 + assert_equal items[0].quality, 17 + end + + def test_update_plus_5_dexterity_vest_four_times + items = [Item.new(name="+5 Dexterity Vest", sell_in=10, quality=20)] + 4.times { GildedRose.new(items).update_quality() } + assert_equal items[0].sell_in, 6 + assert_equal items[0].quality, 16 + end + + def test_update_aged_brie_once + items = [Item.new(name="Aged Brie", sell_in=2, quality=0)] + GildedRose.new(items).update_quality() + assert_equal items[0].sell_in, 1 + assert_equal items[0].quality, 1 + end + + def test_update_aged_brie_twice + items = [Item.new(name="Aged Brie", sell_in=2, quality=0)] + 2.times { GildedRose.new(items).update_quality() } + assert_equal items[0].sell_in, 0 + assert_equal items[0].quality, 2 + end + + def test_update_aged_brie_thrice + items = [Item.new(name="Aged Brie", sell_in=2, quality=0)] + 3.times { GildedRose.new(items).update_quality() } + assert_equal items[0].sell_in, -1 + assert_equal items[0].quality, 4 + end + + def test_update_aged_brie_four_times + items = [Item.new(name="Aged Brie", sell_in=2, quality=0)] + 4.times { GildedRose.new(items).update_quality() } + assert_equal items[0].sell_in, -2 + assert_equal items[0].quality, 6 + end + + def test_elixir_of_the_mongoose_once + items = [Item.new(name="Elixir of the Mongoose", sell_in=5, quality=7)] + GildedRose.new(items).update_quality() + assert_equal items[0].sell_in, 4 + assert_equal items[0].quality, 6 + end + + def test_elixir_of_the_mongoose_twice + items = [Item.new(name="Elixir of the Mongoose", sell_in=5, quality=7)] + 2.times { GildedRose.new(items).update_quality() } + assert_equal items[0].sell_in, 3 + assert_equal items[0].quality, 5 + end + + def test_elixir_of_the_mongoose_thrice + items = [Item.new(name="Elixir of the Mongoose", sell_in=5, quality=7)] + 3.times { GildedRose.new(items).update_quality() } + assert_equal items[0].sell_in, 2 + assert_equal items[0].quality, 4 + end + + def test_elixir_of_the_mongoose_four_times + items = [Item.new(name="Elixir of the Mongoose", sell_in=5, quality=7)] + 4.times { GildedRose.new(items).update_quality() } + assert_equal items[0].sell_in, 1 + assert_equal items[0].quality, 3 + end + + def test_elixir_of_the_mongoose_six_times + items = [Item.new(name="Elixir of the Mongoose", sell_in=5, quality=7)] + 6.times { GildedRose.new(items).update_quality() } + assert_equal items[0].sell_in, -1 + assert_equal items[0].quality, 0 + end + + def test_elixir_of_the_mongoose_seven_times + items = [Item.new(name="Elixir of the Mongoose", sell_in=5, quality=7)] + 7.times { GildedRose.new(items).update_quality() } + assert_equal items[0].sell_in, -2 + assert_equal items[0].quality, 0 + end + + def test_sulfuras_hand_of_ragnaros_once + items = [Item.new(name="Sulfuras, Hand of Ragnaros", sell_in=0, quality=80)] + GildedRose.new(items).update_quality() + assert_equal items[0].sell_in, 0 + assert_equal items[0].quality, 80 + end + + def test_sulfuras_hand_of_ragnaros_twice + items = [Item.new(name="Sulfuras, Hand of Ragnaros", sell_in=0, quality=80)] + 2.times { GildedRose.new(items).update_quality() } + assert_equal items[0].sell_in, 0 + assert_equal items[0].quality, 80 + end + + def test_sulfuras_hand_of_ragnaros_thrice + items = [Item.new(name="Sulfuras, Hand of Ragnaros", sell_in=-1, quality=80)] + 3.times { GildedRose.new(items).update_quality() } + assert_equal items[0].sell_in, -1 + assert_equal items[0].quality, 80 + end + + def test_sulfuras_hand_of_ragnaros_six_times + items = [Item.new(name="Sulfuras, Hand of Ragnaros", sell_in=-1, quality=80)] + 6.times { GildedRose.new(items).update_quality() } + assert_equal items[0].sell_in, -1 + assert_equal items[0].quality, 80 + end + + def test_backstage_passes_to_concert_once + items = [Item.new(name="Backstage passes to a TAFKAL80ETC concert", sell_in=15, quality=20)] + GildedRose.new(items).update_quality() + assert_equal items[0].sell_in, 14 + assert_equal items[0].quality, 21 + end + + def test_backstage_passes_to_concert_thrice + items = [Item.new(name="Backstage passes to a TAFKAL80ETC concert", sell_in=15, quality=20)] + 3.times { GildedRose.new(items).update_quality() } + assert_equal items[0].sell_in, 12 + assert_equal items[0].quality, 23 + end + + def test_backstage_passes_to_concert_six_times + items = [Item.new(name="Backstage passes to a TAFKAL80ETC concert", sell_in=15, quality=20)] + 6.times { GildedRose.new(items).update_quality() } + assert_equal items[0].sell_in, 9 + assert_equal items[0].quality, 27 + end + + def test_backstage_passes_to_concert_lower_sellin_once + items = [Item.new(name="Backstage passes to a TAFKAL80ETC concert", sell_in=10, quality=49)] + GildedRose.new(items).update_quality() + assert_equal items[0].sell_in, 9 + assert_equal items[0].quality, 50 + end + + def test_backstage_passes_to_concert_lower_sell_in_thrice + items = [Item.new(name="Backstage passes to a TAFKAL80ETC concert", sell_in=10, quality=40)] + 3.times { GildedRose.new(items).update_quality() } + assert_equal items[0].sell_in, 7 + assert_equal items[0].quality, 46 + end + + def test_backstage_passes_to_concert_lower_sell_in_six_times + items = [Item.new(name="Backstage passes to a TAFKAL80ETC concert", sell_in=10, quality=49)] + 6.times { GildedRose.new(items).update_quality() } + assert_equal items[0].sell_in, 4 + assert_equal items[0].quality, 50 + end + + def test_backstage_passes_to_concert_lowest_sellin_once + items = [Item.new(name="Backstage passes to a TAFKAL80ETC concert", sell_in=5, quality=49)] + GildedRose.new(items).update_quality() + assert_equal items[0].sell_in, 4 + assert_equal items[0].quality, 50 + end + + def test_backstage_passes_to_concert_lowest_sell_in_thrice + items = [Item.new(name="Backstage passes to a TAFKAL80ETC concert", sell_in=5, quality=40)] + 3.times { GildedRose.new(items).update_quality() } + assert_equal items[0].sell_in, 2 + assert_equal items[0].quality, 49 + end + + def test_backstage_passes_to_concert_lowest_sell_in_six_times + items = [Item.new(name="Backstage passes to a TAFKAL80ETC concert", sell_in=5, quality=49)] + 6.times { GildedRose.new(items).update_quality() } + assert_equal items[0].sell_in, -1 + assert_equal items[0].quality, 0 + end + + def test_conjure_once + items = [Item.new(name="Conjured Mana Cake", sell_in=3, quality=6)] + GildedRose.new(items).update_quality() + assert_equal items[0].sell_in, 2 + assert_equal items[0].quality, 5 + end + + def test_conjure_thrice + items = [Item.new(name="Conjured Mana Cake", sell_in=3, quality=6)] + 3.times { GildedRose.new(items).update_quality() } + assert_equal items[0].sell_in, 0 + assert_equal items[0].quality, 3 + end + + def test_conjure_four_times + items = [Item.new(name="Conjured Mana Cake", sell_in=3, quality=6)] + 4.times { GildedRose.new(items).update_quality() } + assert_equal items[0].sell_in, -1 + assert_equal items[0].quality, 1 + end + + def test_conjure_six_times + items = [Item.new(name="Conjured Mana Cake", sell_in=3, quality=6)] + 6.times { GildedRose.new(items).update_quality() } + assert_equal items[0].sell_in, -3 + assert_equal items[0].quality, 0 + end end \ No newline at end of file