GildedRose-Refactoring-Kata/swift/Tests/GildedRoseTests/ConjuredRules.swift
2020-11-23 15:16:14 +01:00

38 lines
1.4 KiB
Swift

//
// ConjuredRules.swift
// GildedRose
//
// Created by Lucas van Dongen on 23/11/2020.
//
@testable import GildedRose
import XCTest
class ConjuredRules: XCTestCase {
private let manaCakeItem = Item(name: "Conjured Mana Cake", sellIn: 3, quality: 6)
private let differentConjuredItem = Item(name: "Conjured Different Name", sellIn: 3, quality: 6)
private let conjuredDifferentPlaceInNameItem = Item(name: "This item has been conjured", sellIn: 3, quality: 6)
private let notAConjuredItem = Item(name: "Regular Item", sellIn: 3, quality: 6)
//- "Conjured" items degrade in Quality twice as fast as normal items
func testConjuredDegradesTwiceAsFast() {
let initialQuality = manaCakeItem.quality
let system = GildedRose(items: [manaCakeItem])
system.updateQuality()
XCTAssertEqual(system.items.first!.quality, initialQuality - 2)
}
//- All items with "Conjured" in their name are considered conjured
func testAnythingConjured() {
XCTAssertTrue(differentConjuredItem.updated(hasExpectedQuality: 4))
XCTAssertTrue(conjuredDifferentPlaceInNameItem.updated(hasExpectedQuality: 4))
XCTAssertTrue(manaCakeItem.updated(hasExpectedQuality: 4))
}
//- All items that do not have "Conjured" in their name are not considered conjured
func testNonConjured() {
XCTAssertTrue(notAConjuredItem.updated(hasExpectedQuality: 5))
}
}