GildedRose-Refactoring-Kata/swift/Tests/GildedRoseTests/GildedRoseTests.swift
2023-02-10 00:26:33 +01:00

41 lines
1.5 KiB
Swift

@testable import GildedRose
import XCTest
class GildedRoseTests: XCTestCase {
func test_updateQuality_itemSellIn_shouldDecreaseAfterCallingFunction() throws {
let items = [Item(name: "foo", sellIn: 5, quality: 5)]
let app = GildedRose(items: items)
app.updateQuality()
XCTAssertEqual(app.items[0].quality, 4)
app.updateQuality()
XCTAssertEqual(app.items[0].quality, 3)
}
func test_updateQuality_itemQuality_shouldDegradeTwiceAsFastAfterPassingSellByDate() throws {
let items = [Item(name: "foo", sellIn: 0, quality: 5)]
let app = GildedRose(items: items)
app.updateQuality()
XCTAssertEqual(app.items[0].quality, 3)
app.updateQuality()
XCTAssertEqual(app.items[0].quality, 1)
}
func test_updateQuality_itemQuality_shouldntBecomeNegativeAfterPassingSellByDate() throws {
let items = [Item(name: "foo", sellIn: 0, quality: 0)]
let app = GildedRose(items: items)
app.updateQuality()
XCTAssertEqual(app.items[0].quality, 0)
app.updateQuality()
XCTAssertEqual(app.items[0].quality, 0)
}
func test_updateQuality_itemQuality_shouldntGoAbove50() throws {
let items = [Item(name: "Aged Brie", sellIn: 1, quality: 49)]
let app = GildedRose(items: items)
app.updateQuality()
XCTAssertEqual(app.items[0].quality, 50)
app.updateQuality()
XCTAssertEqual(app.items[0].quality, 50)
}
}