Added Conjured tests, 2 fail 1 passes

This commit is contained in:
Lucas van Dongen 2020-11-23 15:16:14 +01:00
parent 95946cf453
commit 6323c90d96

View File

@ -0,0 +1,37 @@
//
// 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))
}
}