Added extension to to make it easier to test updates to quality

This commit is contained in:
Lucas van Dongen 2020-11-23 15:15:44 +01:00
parent d5c6b9f9ce
commit 95946cf453
2 changed files with 22 additions and 11 deletions

View File

@ -82,16 +82,9 @@ class AdvancedRules: XCTestCase {
let backstagePassLessThan5Days = Item(name: "Backstage passes to a TAFKAL80ETC concert", sellIn: 5, quality: 20)
let backstagePassExpired = Item(name: "Backstage passes to a TAFKAL80ETC concert", sellIn: 0, quality: 20)
XCTAssertTrue(hasExpectedQuality(item: backstagePassMoreThan10Days, quality: 21))
XCTAssertTrue(hasExpectedQuality(item: backstagePassLessThan10Days, quality: 22))
XCTAssertTrue(hasExpectedQuality(item: backstagePassLessThan5Days, quality: 23))
XCTAssertTrue(hasExpectedQuality(item: backstagePassExpired, quality: 0))
}
private func hasExpectedQuality(item: Item, quality: Int) -> Bool {
let system = GildedRose(items: [item])
system.updateQuality()
return item.quality == quality
XCTAssertTrue(backstagePassMoreThan10Days.updated(hasExpectedQuality: 21))
XCTAssertTrue(backstagePassLessThan10Days.updated(hasExpectedQuality: 22))
XCTAssertTrue(backstagePassLessThan5Days.updated(hasExpectedQuality: 23))
XCTAssertTrue(backstagePassExpired.updated(hasExpectedQuality: 0))
}
}

View File

@ -0,0 +1,18 @@
//
// TestItem.swift
//
//
// Created by Lucas van Dongen on 23/11/2020.
//
@testable import GildedRose
import Foundation
extension Item {
func updated(hasExpectedQuality quality: Int) -> Bool {
let system = GildedRose(items: [self])
system.updateQuality()
return self.quality == quality
}
}