create ruby test cases

This commit is contained in:
Gang Peng 2018-09-12 13:52:51 -07:00
parent f12a63f03b
commit 550af04e84

View File

@ -1,12 +1,222 @@
require File.join(File.dirname(__FILE__), 'gilded_rose') require File.join(File.dirname(__FILE__), 'gilded_rose')
require 'test/unit' require 'test/unit'
class TestUntitled < Test::Unit::TestCase class GildedRoseTest < Test::Unit::TestCase
def test_foo def test_update_plus_5_dexterity_vest_once
items = [Item.new("foo", 0, 0)] items = [Item.new(name="+5 Dexterity Vest", sell_in=10, quality=20)]
GildedRose.new(items).update_quality() 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 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 end