mirror of
https://github.com/ReactiveX/RxSwift.git
synced 2024-10-05 14:37:29 +03:00
Adds driveOnScheduler
to enable using custom mock scheduler with Driver
.
This commit is contained in:
parent
5d677eaf91
commit
28d4e4d4bd
@ -147,7 +147,7 @@ extension DriverConvertibleType {
|
||||
- returns: An observable sequence whose events are printed to standard output.
|
||||
*/
|
||||
@warn_unused_result(message="http://git.io/rxs.uo")
|
||||
public func debug(identifier: String? = nil, file: String = __FILE__, line: Int = __LINE__, function: String = __FUNCTION__) -> Driver<E> {
|
||||
public func debug(identifier: String? = nil, file: String = __FILE__, line: UInt = __LINE__, function: String = __FUNCTION__) -> Driver<E> {
|
||||
let source = self.asObservable()
|
||||
.debug(identifier, file: file, line: line, function: function)
|
||||
return Driver(source)
|
||||
|
@ -166,5 +166,26 @@ public struct Drive {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
This method can be used in unit tests to ensure that driver is using mock schedulers instead of
|
||||
maind schedulers.
|
||||
|
||||
To be able to use it, please import RxCocoa using testable attribute
|
||||
|
||||
@testable import RxCocoa
|
||||
*/
|
||||
func driveOnScheduler(scheduler: SchedulerType, action: () -> ()) {
|
||||
let originalObserveOnScheduler = driverObserveOnScheduler
|
||||
let originalSubscribeOnScheduler = driverSubscribeOnScheduler
|
||||
|
||||
driverObserveOnScheduler = scheduler
|
||||
driverSubscribeOnScheduler = scheduler
|
||||
|
||||
action()
|
||||
|
||||
driverObserveOnScheduler = originalObserveOnScheduler
|
||||
driverSubscribeOnScheduler = originalSubscribeOnScheduler
|
||||
}
|
||||
|
||||
var driverObserveOnScheduler: SchedulerType = MainScheduler.instance
|
||||
var driverSubscribeOnScheduler: SchedulerType = ConcurrentMainScheduler.instance
|
||||
|
26
RxCocoa/Common/CocoaUnits/Driver/Variable+Driver.swift
Normal file
26
RxCocoa/Common/CocoaUnits/Driver/Variable+Driver.swift
Normal file
@ -0,0 +1,26 @@
|
||||
//
|
||||
// Variable+Driver.swift
|
||||
// Rx
|
||||
//
|
||||
// Created by Krunoslav Zaher on 12/28/15.
|
||||
// Copyright © 2015 Krunoslav Zaher. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
#if !RX_NO_MODULE
|
||||
import RxSwift
|
||||
#endif
|
||||
|
||||
extension Variable {
|
||||
/**
|
||||
Converts `Variable` to `Driver` unit.
|
||||
|
||||
- returns: Driving observable sequence.
|
||||
*/
|
||||
@warn_unused_result(message="http://git.io/rxs.uo")
|
||||
public func asDriver() -> Driver<E> {
|
||||
let source = self
|
||||
.observeOn(driverObserveOnScheduler)
|
||||
return Driver(source)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user