Added tests to project

This commit is contained in:
Murat Bataray 2023-02-09 23:02:50 +01:00
parent 1a7b487325
commit 584d658dd6
5 changed files with 153 additions and 3 deletions

View File

@ -0,0 +1,48 @@
//
// GildedRoseBackstageTests.swift
//
//
// Created by Murat Bataray on 09/02/2023.
//
@testable import GildedRose
import XCTest
class GildedRoseBackstageTests: XCTestCase {
func test_updateQuality_backstagePassQuality_shouldIncreaseOnceInQualityWhenMoreThan10DaysRemaining() throws {
let items = [Item(name: "Backstage passes to a TAFKAL80ETC concert", sellIn: 15, quality: 1)]
let app = GildedRose(items: items)
app.updateQuality()
XCTAssertEqual(app.items[0].quality, 2)
app.updateQuality()
XCTAssertEqual(app.items[0].quality, 3)
}
func test_updateQuality_backstagePassQuality_shouldIncreaseByTwoInQualityWhenLessThan10DaysRemaining() throws {
let items = [Item(name: "Backstage passes to a TAFKAL80ETC concert", sellIn: 9, quality: 1)]
let app = GildedRose(items: items)
app.updateQuality()
XCTAssertEqual(app.items[0].quality, 3)
app.updateQuality()
XCTAssertEqual(app.items[0].quality, 5)
}
func test_updateQuality_backstagePassQuality_shouldIncreaseByThreeInQualityWhenLessThan5DaysRemaining() throws {
let items = [Item(name: "Backstage passes to a TAFKAL80ETC concert", sellIn: 5, quality: 1)]
let app = GildedRose(items: items)
app.updateQuality()
XCTAssertEqual(app.items[0].quality, 4)
app.updateQuality()
XCTAssertEqual(app.items[0].quality, 7)
}
func test_updateQuality_backstagePassQuality_shouldBeZeroWhenSellByDateHasPassed() throws {
let items = [Item(name: "Backstage passes to a TAFKAL80ETC concert", sellIn: 0, quality: 1)]
let app = GildedRose(items: items)
app.updateQuality()
XCTAssertEqual(app.items[0].quality, 0)
app.updateQuality()
XCTAssertEqual(app.items[0].quality, 0)
}
}

View File

@ -0,0 +1,21 @@
//
// GildedRoseBrieTests.swift
//
//
// Created by Murat Bataray on 09/02/2023.
//
@testable import GildedRose
import XCTest
class GildedRoseBrieTests: XCTestCase {
func test_updateQuality_agedBrieQuality_increasesInAgeAfterSellByDate() throws {
let items = [Item(name: "Aged Brie", sellIn: 1, quality: 4)]
let app = GildedRose(items: items)
app.updateQuality()
XCTAssertEqual(app.items[0].quality, 5)
app.updateQuality()
XCTAssertEqual(app.items[0].quality, 7)
}
}

View File

@ -0,0 +1,22 @@
//
// GildedRoseConjuredTests.swift
//
//
// Created by Murat Bataray on 09/02/2023.
//
@testable import GildedRose
import XCTest
class GildedRoseConjuredTests: XCTestCase {
func test_updateQuality_conjuredItemQuality_shouldDegradeTwiceAsFastAfterSellByDate() throws {
let items = [Item(name: "Conjured item", sellIn: 1, quality: 15)]
let app = GildedRose(items: items)
app.updateQuality()
XCTAssertEqual(app.items[0].quality, 13)
app.updateQuality()
XCTAssertEqual(app.items[0].quality, 9)
}
}

View File

@ -0,0 +1,30 @@
//
// GildedRoseSulfurasTests.swift
//
//
// Created by Murat Bataray on 09/02/2023.
//
@testable import GildedRose
import XCTest
class GildedRoseSulfurasTests: XCTestCase {
func test_updateQuality_sulfurasQuality_shouldntHaveSellDate() throws {
let items = [Item(name: "Sulfuras, Hand of Ragnaros", sellIn: 0, quality: 1)]
let app = GildedRose(items: items)
app.updateQuality()
XCTAssertEqual(app.items[0].quality, 1)
app.updateQuality()
XCTAssertEqual(app.items[0].quality, 1)
}
func test_updateQuality_sulfurasQuality_shouldntDecreaseInQuality() throws {
let items = [Item(name: "Sulfuras, Hand of Ragnaros", sellIn: 1, quality: 1)]
let app = GildedRose(items: items)
app.updateQuality()
XCTAssertEqual(app.items[0].quality, 1)
app.updateQuality()
XCTAssertEqual(app.items[0].quality, 1)
}
}

View File

@ -2,10 +2,39 @@
import XCTest
class GildedRoseTests: XCTestCase {
func testFoo() throws {
let items = [Item(name: "foo", sellIn: 0, quality: 0)]
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].name, "foo")
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: 1)]
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)
}
}