Makes `TestScheduler` subclass of `VirtualTimeScheduler`.

This commit is contained in:
Krunoslav Zaher 2015-12-28 01:12:40 +01:00
parent a263a3ceb6
commit cadd4c02d7
2 changed files with 22 additions and 10 deletions

View File

@ -12,10 +12,7 @@ import RxSwift
/**
Virtual time scheduler used for testing applications and libraries built using RxSwift.
*/
public class TestScheduler : VirtualTimeSchedulerBase<TestSchedulerVirtualTimeConverter> {
public typealias TimeInterval = Int
public typealias Time = Int
public class TestScheduler : VirtualTimeScheduler<TestSchedulerVirtualTimeConverter> {
/**
Default values of scheduler times.
*/
@ -85,6 +82,13 @@ public class TestScheduler : VirtualTimeSchedulerBase<TestSchedulerVirtualTimeCo
})
}
/**
Adjusts time of scheduling before adding item to schedule queue. If scheduled time is `<= clock`, then it is scheduled at `clock + 1`
*/
override public func adjustScheduledTime(time: VirtualTime) -> VirtualTime {
return time <= clock ? clock + 1 : time
}
/**
Starts the test scheduler and uses the specified virtual times to invoke the factory function, subscribe to the resulting sequence, and dispose the subscription.

View File

@ -9,7 +9,7 @@
import Foundation
import RxSwift
public class TestSchedulerVirtualTimeConverter : VirtualTimeConverterType {
public struct TestSchedulerVirtualTimeConverter : VirtualTimeConverterType {
public typealias VirtualTimeUnit = Int
public typealias VirtualTimeIntervalUnit = Int
@ -21,19 +21,27 @@ public class TestSchedulerVirtualTimeConverter : VirtualTimeConverterType {
return VirtualTimeIntervalUnit(time.timeIntervalSince1970)
}
public func convertFromTimeInterval(virtualTimeInterval: VirtualTimeIntervalUnit) -> RxTimeInterval {
public func convertFromVirtualTimeInterval(virtualTimeInterval: VirtualTimeIntervalUnit) -> RxTimeInterval {
return RxTimeInterval(virtualTimeInterval)
}
public func convertToTimeInterval(virtualTimeInterval: VirtualTimeIntervalUnit) -> RxTimeInterval {
return RxTimeInterval(virtualTimeInterval)
public func convertToVirtualTimeInterval(timeInterval: RxTimeInterval) -> VirtualTimeIntervalUnit {
return VirtualTimeIntervalUnit(timeInterval)
}
public func addVirtualTimeAndTimeInterval(time time: VirtualTimeUnit, timeInterval: VirtualTimeIntervalUnit) -> VirtualTimeUnit {
return time + timeInterval
}
public func nearFuture(time: VirtualTimeUnit) -> VirtualTimeUnit {
return time + 1
public func compareVirtualTime(lhs: VirtualTimeUnit, _ rhs: VirtualTimeUnit) -> VirtualTimeComparison {
if lhs < rhs {
return .LessThan
}
else if lhs > rhs {
return .GreaterThan
}
else {
return .Equal
}
}
}