@@ -14,26 +14,12 @@ import RxTest
14
14
15
15
class ApplyTests : XCTestCase {
16
16
17
- override func setUp( ) {
18
- super. setUp ( )
19
- // Put setup code here. This method is called before the invocation of each test method in the class.
20
- }
21
-
22
- override func tearDown( ) {
23
- // Put teardown code here. This method is called after the invocation of each test method in the class.
24
- super. tearDown ( )
25
- }
26
-
27
17
func transform( input: Observable < Int > ) -> Observable < Int > {
28
18
return input
29
19
. filter { $0 > 0 }
30
20
. map { $0 * $0 }
31
21
}
32
22
33
- private func transform( input: Single < Int > ) -> Single < Int > {
34
- return input. map { $0 * $0 }
35
- }
36
-
37
23
func testApply( ) {
38
24
let values = [ 0 , 42 , - 7 , 100 , 1000 , 1 ]
39
25
@@ -57,36 +43,12 @@ class ApplyTests: XCTestCase {
57
43
XCTAssertEqual ( observer. events, correct)
58
44
}
59
45
60
- func testApplySingle( ) {
61
- let value = 10
62
- let scheduler = TestScheduler ( initialClock: 0 )
63
- let observer = scheduler. createObserver ( Int . self)
64
-
65
- _ = Single . just ( value)
66
- . apply ( transform)
67
- . asObservable ( )
68
- . subscribe ( observer)
69
-
70
- scheduler. start ( )
71
-
72
- let correct = Recorded . events ( [
73
- . next( 0 , 10 * 10 ) ,
74
- . completed( 0 )
75
- ] )
76
-
77
- XCTAssertEqual ( observer. events, correct)
78
- }
79
-
80
46
func transformToString( input: Observable < Int > ) -> Observable < String > {
81
47
return input
82
48
. distinctUntilChanged ( )
83
49
. map { String ( describing: $0) }
84
50
}
85
51
86
- func transformToString( input: Single < Int > ) -> Single < String > {
87
- return input. map ( String . init)
88
- }
89
-
90
52
func testApplyTransformingType( ) {
91
53
let values = [ 0 , 0 , 42 , 42 , - 7 , 100 , 1000 , 1 , 1 ]
92
54
@@ -111,25 +73,88 @@ class ApplyTests: XCTestCase {
111
73
112
74
XCTAssertEqual ( observer. events, correct)
113
75
}
76
+ }
77
+
78
+ // MARK: - Single
79
+ extension ApplyTests {
80
+ private func transformToString( input: Single < Int > ) -> Single < String > {
81
+ return input. map ( String . init)
82
+ }
83
+
84
+ private func transform( input: Single < Int > ) -> Single < Int > {
85
+ return input. map { $0 * $0 }
86
+ }
87
+
88
+ func testApplySingle( ) {
89
+ // Given
90
+ let value = 10
91
+ let scheduler = TestScheduler ( initialClock: 0 )
92
+ // When
93
+ let result = scheduler. start {
94
+ Single . just ( value) . apply ( self . transform) . asObservable ( )
95
+ }
96
+ // Then
97
+ let correct = Recorded . events ( [
98
+ . next( TestScheduler . Defaults. subscribed, 10 * 10 ) ,
99
+ . completed( TestScheduler . Defaults. subscribed)
100
+ ] )
101
+ XCTAssertEqual ( result. events, correct)
102
+ }
114
103
115
104
func testApplyTransformingTypeSingle( ) {
105
+ // Given
116
106
let value = - 7
117
-
118
107
let scheduler = TestScheduler ( initialClock: 0 )
119
- let observer = scheduler. createObserver ( String . self)
108
+ // When
109
+ let result = scheduler. start {
110
+ Single . just ( value) . apply ( self . transformToString) . asObservable ( )
111
+ }
112
+ let correct = Recorded . events ( [
113
+ . next( TestScheduler . Defaults. subscribed, " -7 " ) ,
114
+ . completed( TestScheduler . Defaults. subscribed)
115
+ ] )
116
+ XCTAssertEqual ( result. events, correct)
117
+ }
118
+ }
120
119
121
- _ = Single . just ( value)
122
- . apply ( transformToString)
123
- . asObservable ( )
124
- . subscribe ( observer)
120
+ // MARK: - Maybe
121
+ extension ApplyTests {
122
+ private func transform( input: Maybe < Int > ) -> Maybe < Int > {
123
+ return input. map { $0 * $0 }
124
+ }
125
125
126
- scheduler. start ( )
126
+ func testApplyMaybe( ) {
127
+ // Given
128
+ let value = 10
129
+ let scheduler = TestScheduler ( initialClock: 0 )
130
+ // When
131
+ let result = scheduler. start {
132
+ Maybe . just ( value) . apply ( self . transform) . asObservable ( )
133
+ }
134
+ // Then
135
+ XCTAssertEqual ( result. events, Recorded . events ( [
136
+ . next( TestScheduler . Defaults. subscribed, value * value) ,
137
+ . completed( TestScheduler . Defaults. subscribed)
138
+ ] ) )
139
+ }
140
+ }
127
141
128
- let correct = Recorded . events ( [
129
- . next( 0 , " -7 " ) ,
130
- . completed( 0 )
131
- ] )
142
+ // MARK: - Completable
143
+ extension ApplyTests {
144
+ private func transform( input: Completable ) -> Completable {
145
+ return input. do ( onError: { print ( $0) } )
146
+ }
132
147
133
- XCTAssertEqual ( observer. events, correct)
148
+ func testApplyCompletable( ) {
149
+ // Given
150
+ let scheduler = TestScheduler ( initialClock: 0 )
151
+ // When
152
+ let result = scheduler. start {
153
+ Observable . just ( 1 ) . ignoreElements ( ) . asObservable ( )
154
+ }
155
+ // Then
156
+ XCTAssertEqual ( result. events, Recorded . events ( [
157
+ . completed( TestScheduler . Defaults. subscribed)
158
+ ] ) )
134
159
}
135
160
}
0 commit comments