mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-04 09:11:39 +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 -*-
|
||||
import unittest
|
||||
|
||||
from gilded_rose import Item, GildedRose
|
||||
from python.gilded_rose import (
|
||||
GildedRose,
|
||||
Item,
|
||||
NormalItem,
|
||||
AgedBrieItem,
|
||||
SulfurasItem,
|
||||
BackstagePassItem,
|
||||
ConjuredItem,
|
||||
)
|
||||
import pytest
|
||||
|
||||
|
||||
class GildedRoseTest(unittest.TestCase):
|
||||
def test_foo(self):
|
||||
items = [Item("foo", 0, 0)]
|
||||
gilded_rose = GildedRose(items)
|
||||
gilded_rose.update_quality()
|
||||
self.assertEqual("fixme", items[0].name)
|
||||
# --- Tests for NormalItem ---
|
||||
def test_normal_item_quality_decreases_by_1():
|
||||
item = NormalItem("Westin", 10, 20)
|
||||
item.update_quality()
|
||||
assert item.quality == 19
|
||||
assert item.sell_in == 9
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
def test_normal_item_quality_decreases_by_2_after_sell_in():
|
||||
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