Skip to content

Commit

Permalink
Update test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
Arcovv committed Oct 21, 2019
1 parent d020cf7 commit d98c9b2
Show file tree
Hide file tree
Showing 5 changed files with 81 additions and 24 deletions.
2 changes: 1 addition & 1 deletion Sources/CalendarUtility/MonthInfo.swift
@@ -1,4 +1,4 @@
public struct MonthInfo {
public struct MonthInfo: Equatable {
public let name: String
public let weeksCount: Int

Expand Down
22 changes: 0 additions & 22 deletions Tests/CalendarUtilityTests/DateContextSeparatorTests.swift

This file was deleted.

17 changes: 17 additions & 0 deletions Tests/CalendarUtilityTests/MonthInfoGeneratorTests.swift
@@ -0,0 +1,17 @@
import XCTest
@testable import CalendarUtility

final class MonthInfoGeneratorTests: XCTestCase {

let calendar = Calendar(identifier: .gregorian)
let timeZone = TimeZone(abbreviation: "GMT+8")!

func test2019Year() {
let startDate = createDate(calendar: calendar, year: 2019, month: 01, day: 01)
let infos = MonthInfoGenerator.make(calendar: calendar, timeZone: timeZone, startAt: startDate)

let result = zip(calendar.monthSymbols, infos.map { $0.name })
XCTAssertTrue(result.allSatisfy { $0.0 == $0.1 })
}

}
62 changes: 62 additions & 0 deletions Tests/CalendarUtilityTests/SeparatorTests.swift
@@ -0,0 +1,62 @@
import XCTest
@testable import CalendarUtility

final class SeparatorTests: XCTestCase {
let calendar = Calendar(identifier: .gregorian)
let timeZone = TimeZone(abbreviation: "GMT+8")!

func testSeparatingFrom20191001To20191012ByCount7ReturnExtracted5RemainedIs7UsefulExtractedIs5() {
let startDate = createDate(calendar: calendar, year: 2019, month: 10, day: 01)
let endDate = createDate(calendar: calendar, year: 2019, month: 10, day: 12)
let contexts = DateContextGenerator.make(calendar: calendar, startDate: startDate, endDate: endDate)
let separating = Separator.separating(rawValue: ArraySlice(contexts))

XCTAssertEqual(separating.extracted.count, 7)
XCTAssertEqual(separating.remained.count, 7)
XCTAssertEqual(separating.usefulExtracted.count, 5)
}

func testSeparatingWeeksFromOctober() {
let startDate = createDate(calendar: calendar, year: 2019, month: 10, day: 01)
let endDate = createDate(calendar: calendar, year: 2019, month: 10, day: 31)
let contexts = DateContextGenerator.make(calendar: calendar, startDate: startDate, endDate: endDate)

let weekContexts = Separator.weekContexts(rawValue: ArraySlice(contexts))

XCTAssertTrue(weekContexts.allSatisfy { $0.monthInfo == .placeholder })
XCTAssertTrue(weekContexts.allSatisfy { $0.weekOfMonth == 0 })
XCTAssertEqual(weekContexts.count, 5)
}

func testApplyMonthInfoFromOctober() {
let startDate = createDate(calendar: calendar, year: 2019, month: 10, day: 01)
let endDate = createDate(calendar: calendar, year: 2019, month: 10, day: 31)
let contexts = DateContextGenerator.make(calendar: calendar, startDate: startDate, endDate: endDate)

let notApplyWeekContexts = Separator.weekContexts(rawValue: ArraySlice(contexts))
let info = MonthInfo(name: "October", weeksCount: 5)
let result = applyMonthInfo(info)(notApplyWeekContexts)

XCTAssertTrue(result.allSatisfy { $0.monthInfo != .placeholder })

for (index, week) in result.enumerated() {
XCTAssertEqual(week.weekOfMonth, index + 1)
}

XCTAssertEqual(result.count, 5)
}

func testEngineRun() {
let startDate = createDate(calendar: calendar, year: 2019, month: 01, day: 01)
let endDate = createDate(calendar: calendar, year: 2019, month: 12, day: 31)
let engine = CalendarEngine(calendar: calendar, timeZone: .current, startDate: startDate, endDate: endDate)
engine.run()
engine.prettyPrint()
}

static var allTests = [
("testSeparatingFrom20191001To20191012ByCount7ReturnExtracted5RemainedIs7UsefulExtractedIs5", testSeparatingFrom20191001To20191012ByCount7ReturnExtracted5RemainedIs7UsefulExtractedIs5),
("testSeparatingWeeksFromOctober", testSeparatingWeeksFromOctober),
("testApplyMonthInfoFromOctober", testApplyMonthInfoFromOctober)
]
}
2 changes: 1 addition & 1 deletion Tests/LinuxMain.swift
Expand Up @@ -4,5 +4,5 @@ import CalendarUtilityTests
var tests = [XCTestCaseEntry]()
test += DateContextTests.allTests()
test += DateContextGeneratorTests.allTests()
test += DateContextSeparatorTests.allTests()
test += SeparatorTests.allTests()
XCTMain(tests)

0 comments on commit d98c9b2

Please sign in to comment.