mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-10 12:11:20 +00:00
Added unit test cases for gilded roses.
This commit is contained in:
parent
cdfb5bad01
commit
09572af775
@ -1,16 +1,117 @@
|
|||||||
# -*- coding: utf-8 -*-
|
from python.gilded_rose import (
|
||||||
import unittest
|
GildedRose,
|
||||||
|
Item,
|
||||||
from gilded_rose import Item, GildedRose
|
NormalItem,
|
||||||
|
AgedBrieItem,
|
||||||
|
SulfurasItem,
|
||||||
|
BackstagePassItem,
|
||||||
|
ConjuredItem,
|
||||||
|
)
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
|
||||||
class GildedRoseTest(unittest.TestCase):
|
# --- Tests for NormalItem ---
|
||||||
def test_foo(self):
|
def test_normal_item_quality_decreases_by_1():
|
||||||
items = [Item("foo", 0, 0)]
|
item = NormalItem("Westin", 10, 20)
|
||||||
gilded_rose = GildedRose(items)
|
item.update_quality()
|
||||||
gilded_rose.update_quality()
|
assert item.quality == 19
|
||||||
self.assertEqual("fixme", items[0].name)
|
assert item.sell_in == 9
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
def test_normal_item_quality_decreases_by_2_after_sell_in():
|
||||||
unittest.main()
|
item = NormalItem("Westin", 0, 20)
|
||||||
|
item.update_quality()
|
||||||
|
assert item.quality == 18
|
||||||
|
assert item.sell_in == -1
|
||||||
|
|
||||||
|
|
||||||
|
def test_normal_item_quality_never_negative():
|
||||||
|
item = NormalItem("Westin", 10, 0)
|
||||||
|
item.update_quality()
|
||||||
|
assert item.quality == 0
|
||||||
|
assert item.sell_in == 9
|
||||||
|
|
||||||
|
|
||||||
|
def test_aged_brie_quality_increases():
|
||||||
|
item = AgedBrieItem("Aged Brie", 10, 20)
|
||||||
|
item.update_quality()
|
||||||
|
assert item.quality == 21
|
||||||
|
assert item.sell_in == 9
|
||||||
|
|
||||||
|
|
||||||
|
def test_aged_brie_quality_increases_twice_after_sell_in():
|
||||||
|
item = AgedBrieItem("Aged Brie", 0, 20)
|
||||||
|
item.update_quality()
|
||||||
|
assert item.quality == 22
|
||||||
|
assert item.sell_in == -1
|
||||||
|
|
||||||
|
|
||||||
|
def test_aged_brie_quality_never_exceeds_50():
|
||||||
|
item = AgedBrieItem("Aged Brie", 10, 49)
|
||||||
|
item.update_quality()
|
||||||
|
assert item.quality == 50
|
||||||
|
item.update_quality() # One more day
|
||||||
|
assert item.quality == 50
|
||||||
|
|
||||||
|
|
||||||
|
def test_sulfuras_quality_and_sell_in_never_change():
|
||||||
|
item = SulfurasItem("Sulfuras, Hand of Ragnaros", 0, 80)
|
||||||
|
item.update_quality()
|
||||||
|
assert item.quality == 80
|
||||||
|
assert item.sell_in == 0
|
||||||
|
|
||||||
|
|
||||||
|
def test_backstage_pass_quality_increases_by_1_normally():
|
||||||
|
item = BackstagePassItem("Backstage passes", 15, 20)
|
||||||
|
item.update_quality()
|
||||||
|
assert item.quality == 21
|
||||||
|
assert item.sell_in == 14
|
||||||
|
|
||||||
|
|
||||||
|
def test_backstage_pass_quality_increases_by_2_at_10_days_or_less():
|
||||||
|
item = BackstagePassItem("Backstage passes", 10, 20)
|
||||||
|
item.update_quality()
|
||||||
|
assert item.quality == 22
|
||||||
|
assert item.sell_in == 9
|
||||||
|
|
||||||
|
|
||||||
|
def test_backstage_pass_quality_increases_by_3_at_5_days_or_less():
|
||||||
|
item = BackstagePassItem("Backstage passes", 5, 20)
|
||||||
|
item.update_quality()
|
||||||
|
assert item.quality == 23
|
||||||
|
assert item.sell_in == 4
|
||||||
|
|
||||||
|
|
||||||
|
def test_backstage_pass_quality_drops_to_0_after_concert():
|
||||||
|
item = BackstagePassItem("Backstage passes", 0, 20)
|
||||||
|
item.update_quality()
|
||||||
|
assert item.quality == 0
|
||||||
|
assert item.sell_in == -1
|
||||||
|
|
||||||
|
|
||||||
|
def test_backstage_pass_quality_never_exceeds_50():
|
||||||
|
item = BackstagePassItem("Backstage passes", 10, 49)
|
||||||
|
item.update_quality()
|
||||||
|
assert item.quality == 50
|
||||||
|
|
||||||
|
|
||||||
|
# Test cases for Conjured Items
|
||||||
|
def test_conjured_item_quality_decreases_by_2_normally():
|
||||||
|
item = ConjuredItem("Conjured Mana Cake", 10, 20)
|
||||||
|
item.update_quality()
|
||||||
|
assert item.quality == 18
|
||||||
|
assert item.sell_in == 9
|
||||||
|
|
||||||
|
|
||||||
|
def test_conjured_item_quality_decreases_by_4_after_sell_in():
|
||||||
|
item = ConjuredItem("Conjured Mana Cake", 0, 20)
|
||||||
|
item.update_quality()
|
||||||
|
assert item.quality == 16
|
||||||
|
assert item.sell_in == -1
|
||||||
|
|
||||||
|
|
||||||
|
def test_conjured_item_quality_never_negative():
|
||||||
|
item = ConjuredItem("Conjured Mana Cake", 10, 1)
|
||||||
|
item.update_quality()
|
||||||
|
assert item.quality == 0
|
||||||
|
assert item.sell_in == 9
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user