Skip to content
This repository was archived by the owner on Feb 2, 2021. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ let package = Package(
.package(url: "https://github.com/ReactiveX/RxSwift.git", .upToNextMajor(from: "5.0.0")),
],
targets: [
.target(name: "RxExpect", dependencies: ["RxSwift", "RxTest"]),
.target(name: "RxExpect", dependencies: ["RxSwift", "RxTest", "RxRelay"]),
.testTarget(name: "RxExpectTests", dependencies: ["RxExpect"])
],
swiftLanguageVersions: [.v5]
Expand Down
5 changes: 3 additions & 2 deletions Sources/RxExpect/RxExpect.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import XCTest
import RxSwift
import RxTest
import RxRelay

open class RxExpect {
public let scheduler = TestScheduler(initialClock: 0)
Expand Down Expand Up @@ -40,13 +41,13 @@ open class RxExpect {
}
}

public func input<E>(_ variable: Variable<E>, _ events: [Recorded<Event<E>>], file: StaticString = #file, line: UInt = #line) {
public func input<E>(_ behaviorRelay: BehaviorRelay<E>, _ events: [Recorded<Event<E>>], file: StaticString = #file, line: UInt = #line) {
Swift.assert(!events.contains { $0.time == AnyTestTime }, "Input events should have specific time.", file: file, line: line)
self.maximumInputTime = ([self.maximumInputTime] + events.map { $0.time }).max() ?? self.maximumInputTime
self.deferredInputs.append { `self` in
self.scheduler
.createHotObservable(events)
.subscribe(onNext: { variable.value = $0 })
.bind(to: behaviorRelay)
.disposed(by: self.disposeBag)
}
}
Expand Down
15 changes: 4 additions & 11 deletions Tests/RxExpectTests/RxExpectTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import XCTest
import RxSwift
import RxTest
import RxExpect
import RxRelay

final class RxExpectTests: XCTestCase {
func testAssertionClosureExecutes() {
Expand Down Expand Up @@ -33,13 +34,13 @@ final class RxExpectTests: XCTestCase {
])
}

let variable = Variable<Int>(0)
test.input(variable, [
let behaviorRelay = BehaviorRelay<Int>(value: 0)
test.input(behaviorRelay, [
.next(300, 1),
.next(400, 2),
.next(500, 3),
])
test.assert(variable.asObservable()) { events in
test.assert(behaviorRelay.asObservable()) { events in
XCTAssertEqual(events, [
.next(0, 0),
.next(300, 1),
Expand Down Expand Up @@ -85,14 +86,6 @@ final class RxExpectTests: XCTestCase {
}
}

func testNotRetain() {
weak var object: NSObject?
_ = {
object = NSObject()
}()
XCTAssertNil(object)
}

func testRetain() {
let test = RxExpect()
weak var object: NSObject?
Expand Down