More unit tests for VirtualTimeScheduler and HistoricalScheduler.

This commit is contained in:
Krunoslav Zaher 2015-12-28 01:46:04 +01:00
parent e4a837ab1e
commit aa7a521244
2 changed files with 136 additions and 0 deletions

View File

@ -153,4 +153,63 @@ extension HistoricalSchedulerTest {
NSDate(timeIntervalSince1970: 10.0),
])
}
func testHistoricalScheduler_stop() {
let scheduler = HistoricalScheduler()
var times: [NSDate] = []
scheduler.scheduleRelative((), dueTime: 10.0) { [weak scheduler] _ in
times.append(scheduler!.now)
scheduler!.scheduleRelative((), dueTime: 20.0) { _ in
times.append(scheduler!.now)
return NopDisposable.instance
}
scheduler!.schedule(()) { _ in
times.append(scheduler!.now)
return NopDisposable.instance
}
scheduler!.stop()
return NopDisposable.instance
}
scheduler.start()
XCTAssertEqual(times, [
NSDate(timeIntervalSince1970: 10.0),
])
}
func testHistoricalScheduler_sleep() {
let scheduler = HistoricalScheduler()
var times: [NSDate] = []
scheduler.scheduleRelative((), dueTime: 10.0) { [weak scheduler] _ in
times.append(scheduler!.now)
scheduler!.sleep(100)
scheduler!.scheduleRelative((), dueTime: 20.0) { _ in
times.append(scheduler!.now)
return NopDisposable.instance
}
scheduler!.schedule(()) { _ in
times.append(scheduler!.now)
return NopDisposable.instance
}
return NopDisposable.instance
}
scheduler.start()
XCTAssertEqual(times, [
NSDate(timeIntervalSince1970: 10.0),
NSDate(timeIntervalSince1970: 110.0),
NSDate(timeIntervalSince1970: 130.0),
])
}
}

View File

@ -153,4 +153,81 @@ extension VirtualSchedulerTest {
1,
])
}
func testVirtualScheduler_stop() {
let scheduler = TestVirtualScheduler()
var times: [Int] = []
scheduler.scheduleRelative((), dueTime: 10.0) { [weak scheduler] _ in
times.append(scheduler!.clock)
scheduler!.scheduleRelative((), dueTime: 20.0) { _ in
times.append(scheduler!.clock)
return NopDisposable.instance
}
scheduler!.schedule(()) { _ in
times.append(scheduler!.clock)
return NopDisposable.instance
}
scheduler!.stop()
return NopDisposable.instance
}
scheduler.start()
XCTAssertEqual(times, [
1,
])
}
func testVirtualScheduler_sleep() {
let scheduler = TestVirtualScheduler()
var times: [Int] = []
scheduler.scheduleRelative((), dueTime: 10.0) { [weak scheduler] _ in
times.append(scheduler!.clock)
scheduler!.sleep(10)
scheduler!.scheduleRelative((), dueTime: 20.0) { _ in
times.append(scheduler!.clock)
return NopDisposable.instance
}
scheduler!.schedule(()) { _ in
times.append(scheduler!.clock)
return NopDisposable.instance
}
return NopDisposable.instance
}
scheduler.start()
XCTAssertEqual(times, [
1,
11,
13
])
}
func testVirtualScheduler_stress() {
let scheduler = TestVirtualScheduler()
var times = [Int]()
var ticks = [Int]()
for _ in 0 ..< 20000 {
let random = Int(rand() % 10000)
times.append(random)
scheduler.scheduleRelative((), dueTime: RxTimeInterval(10 * random)) { [weak scheduler] _ in
ticks.append(scheduler!.clock)
return NopDisposable.instance
}
}
scheduler.start()
times = times.sort()
XCTAssertEqual(times, ticks)
}
}