Skip to content

Commit d4684a8

Browse files
committed
Added tests for SharedSequence.partition
1 parent 8057b4e commit d4684a8

File tree

2 files changed

+99
-0
lines changed

2 files changed

+99
-0
lines changed

RxSwiftExt.xcodeproj/project.pbxproj

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,9 @@
159159
A23E148F21A9F10D00CD5B2F /* PartitionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A23E148E21A9F10D00CD5B2F /* PartitionTests.swift */; };
160160
A23E149021A9F10D00CD5B2F /* PartitionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A23E148E21A9F10D00CD5B2F /* PartitionTests.swift */; };
161161
A23E149121A9F10D00CD5B2F /* PartitionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A23E148E21A9F10D00CD5B2F /* PartitionTests.swift */; };
162+
A23E149321A9F73500CD5B2F /* PartitionTests+RxCocoa.swift in Sources */ = {isa = PBXBuildFile; fileRef = A23E149221A9F73500CD5B2F /* PartitionTests+RxCocoa.swift */; };
163+
A23E149421A9F73500CD5B2F /* PartitionTests+RxCocoa.swift in Sources */ = {isa = PBXBuildFile; fileRef = A23E149221A9F73500CD5B2F /* PartitionTests+RxCocoa.swift */; };
164+
A23E149521A9F73500CD5B2F /* PartitionTests+RxCocoa.swift in Sources */ = {isa = PBXBuildFile; fileRef = A23E149221A9F73500CD5B2F /* PartitionTests+RxCocoa.swift */; };
162165
B69B45492190C27D00F30418 /* count.swift in Sources */ = {isa = PBXBuildFile; fileRef = B69B45482190C27D00F30418 /* count.swift */; };
163166
B69B454A2190C3AE00F30418 /* count.swift in Sources */ = {isa = PBXBuildFile; fileRef = B69B45482190C27D00F30418 /* count.swift */; };
164167
B69B454B2190C3AF00F30418 /* count.swift in Sources */ = {isa = PBXBuildFile; fileRef = B69B45482190C27D00F30418 /* count.swift */; };
@@ -348,6 +351,7 @@
348351
A23E148621A9EFC000CD5B2F /* partition.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = partition.swift; sourceTree = "<group>"; };
349352
A23E148A21A9F03600CD5B2F /* partition+RxCocoa.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "partition+RxCocoa.swift"; sourceTree = "<group>"; };
350353
A23E148E21A9F10D00CD5B2F /* PartitionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PartitionTests.swift; sourceTree = "<group>"; };
354+
A23E149221A9F73500CD5B2F /* PartitionTests+RxCocoa.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PartitionTests+RxCocoa.swift"; sourceTree = "<group>"; };
351355
B69B45482190C27D00F30418 /* count.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = count.swift; sourceTree = "<group>"; };
352356
B69B454C2190C3BC00F30418 /* CountTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CountTests.swift; sourceTree = "<group>"; };
353357
BF515CDF1F3F370600492640 /* curry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = curry.swift; path = Source/Tools/curry.swift; sourceTree = SOURCE_ROOT; };
@@ -491,6 +495,7 @@
491495
53C79D5F1E6F5AAB00CD9B6A /* NotTests+RxCocoa.swift */,
492496
1A8741AB20745A91004BB762 /* UIViewPropertyAnimatorTests+Rx.swift */,
493497
1958B5F521676ECB00CAF1D3 /* unrwapTests+SharedSequence.swift */,
498+
A23E149221A9F73500CD5B2F /* PartitionTests+RxCocoa.swift */,
494499
);
495500
name = RxCocoa;
496501
path = Tests/RxCocoa;
@@ -1044,6 +1049,7 @@
10441049
538607E21E6F36A9000361DE /* DistinctTests.swift in Sources */,
10451050
538607EA1E6F36A9000361DE /* PausableTests.swift in Sources */,
10461051
538607E91E6F36A9000361DE /* OnceTests.swift in Sources */,
1052+
A23E149321A9F73500CD5B2F /* PartitionTests+RxCocoa.swift in Sources */,
10471053
BF79DA0E206C185B008AA708 /* WithUnretainedTests.swift in Sources */,
10481054
538607EE1E6F36A9000361DE /* WeakTests.swift in Sources */,
10491055
780CB21920A0ED3B00FD3F39 /* ToSortedArrayTests.swift in Sources */,
@@ -1120,6 +1126,7 @@
11201126
62512C901F0EB17D0083A89F /* MapToTests+RxCocoa.swift in Sources */,
11211127
62512C961F0EB1850083A89F /* IgnoreErrorsTests.swift in Sources */,
11221128
BF515CE61F3F3AF500492640 /* FromAsyncTests.swift in Sources */,
1129+
A23E149421A9F73500CD5B2F /* PartitionTests+RxCocoa.swift in Sources */,
11231130
62512CA41F0EB1850083A89F /* FilterMapTests.swift in Sources */,
11241131
B69B454F2190C3CC00F30418 /* CountTests.swift in Sources */,
11251132
D7C72A3F1FDC5C5D00EAAAAB /* NwiseTests.swift in Sources */,
@@ -1202,6 +1209,7 @@
12021209
E39C420F1F18B13E007F2ACD /* UnwrapTests.swift in Sources */,
12031210
E39C42121F18B13E007F2ACD /* FilterMapTests.swift in Sources */,
12041211
BF515CE71F3F3AF500492640 /* FromAsyncTests.swift in Sources */,
1212+
A23E149521A9F73500CD5B2F /* PartitionTests+RxCocoa.swift in Sources */,
12051213
E39C41FF1F18B13A007F2ACD /* NotTests+RxCocoa.swift in Sources */,
12061214
B69B45502190C3CD00F30418 /* CountTests.swift in Sources */,
12071215
D7C72A401FDC5C5D00EAAAAB /* NwiseTests.swift in Sources */,
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
//
2+
// PartitionTests+RxCocoa.swift
3+
// RxSwiftExt
4+
//
5+
// Created by Shai Mishali on 24/11/2018.
6+
// Copyright © 2018 RxSwiftCommunity. All rights reserved.
7+
//
8+
9+
import Foundation
10+
import RxSwift
11+
import RxCocoa
12+
import RxTest
13+
import XCTest
14+
import RxSwiftExt
15+
16+
class PartitionSharedStrategyTests: XCTestCase {
17+
private var scheduler = TestScheduler(initialClock: 0)
18+
private var stream: Driver<Int>!
19+
20+
override func setUp() {
21+
super.setUp()
22+
scheduler = TestScheduler(initialClock: 0)
23+
let events = (0...10).map { i -> Recorded<Event<Int>> in
24+
return .next(i * 10, i)
25+
} + [.completed(100)]
26+
27+
stream = scheduler
28+
.createHotObservable(events)
29+
.asDriver(onErrorDriveWith: .never())
30+
}
31+
32+
func testPartitionBothMatch() {
33+
let (evens, odds) = stream.partition { $0 % 2 == 0 }
34+
35+
let evensObserver = scheduler.createObserver(Int.self)
36+
_ = evens.drive(evensObserver)
37+
38+
let oddsObserver = scheduler.createObserver(Int.self)
39+
_ = odds.drive(oddsObserver)
40+
41+
scheduler.start()
42+
43+
XCTAssertEqual(oddsObserver.events, Recorded.events([
44+
.next(10, 1),
45+
.next(30, 3),
46+
.next(50, 5),
47+
.next(70, 7),
48+
.next(90, 9),
49+
.completed(100)
50+
]))
51+
52+
XCTAssertEqual(evensObserver.events, Recorded.events([
53+
.next(0, 0),
54+
.next(20, 2),
55+
.next(40, 4),
56+
.next(60, 6),
57+
.next(80, 8),
58+
.next(100, 10),
59+
.completed(100)
60+
]))
61+
}
62+
63+
func testPartitionOneSideMatch() {
64+
let (all, none) = stream.partition { $0 <= 10 }
65+
66+
let allObserver = scheduler.createObserver(Int.self)
67+
_ = all.drive(allObserver)
68+
69+
let noneObserver = scheduler.createObserver(Int.self)
70+
_ = none.drive(noneObserver)
71+
72+
scheduler.start()
73+
74+
XCTAssertEqual(allObserver.events, Recorded.events([
75+
.next(0, 0),
76+
.next(10, 1),
77+
.next(20, 2),
78+
.next(30, 3),
79+
.next(40, 4),
80+
.next(50, 5),
81+
.next(60, 6),
82+
.next(70, 7),
83+
.next(80, 8),
84+
.next(90, 9),
85+
.next(100, 10),
86+
.completed(100)
87+
]))
88+
89+
XCTAssertEqual(noneObserver.events, [.completed(100)])
90+
}
91+
}

0 commit comments

Comments
 (0)