Skip to content

Commit a73db66

Browse files
committed
Merge pull request #65 from akio0911/Test/MultipleTasks
[Test] Add wrappedErrorTask
2 parents dcb2498 + 902335d commit a73db66

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

SwiftTaskTests/MultipleTasksTests.swift

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,43 @@ class MultipleTasksTests: _TestCase
116116

117117
self.wait()
118118
}
119+
120+
func testMultipleTasksTests_success1_failure2_success3_wrapped()
121+
{
122+
let expect = self.expectationWithDescription(#function)
123+
124+
var flow = [Int]()
125+
126+
let task1 = { Task<(), Value1, Error1>(value: .Default).on(success: { _ in flow.append(1) }) }
127+
let wrapped1 = wrappedErrorTask(task1, f: WrappedError.ByTask1)
128+
129+
let task2 = { Task<(), Value2, Error2>(error: .Default).on(success: { _ in flow.append(2) }) }
130+
let wrapped2 = wrappedErrorTask(task2, f: WrappedError.ByTask2)
131+
132+
let task3 = { Task<(), Value3, Error3>(value: .Default).on(success: { _ in flow.append(3) }) }
133+
let wrapped3 = wrappedErrorTask(task3, f: WrappedError.ByTask3)
134+
135+
XCTAssertEqual(flow, [])
136+
137+
wrapped1()
138+
.success { _ in
139+
wrapped2()
140+
}
141+
.success { _ in
142+
wrapped3()
143+
}
144+
.on(failure: { error, isCancelled in
145+
guard case let .Some(.ByTask2(error2)) = error else {
146+
XCTFail("Wrong WrappedError.")
147+
return
148+
}
149+
XCTAssertEqual(error2, Error2.Default)
150+
XCTAssertEqual(flow, [1])
151+
expect.fulfill()
152+
})
153+
154+
self.wait()
155+
}
119156
}
120157

121158
extension Task
@@ -134,3 +171,9 @@ extension Task
134171
}
135172
}
136173
}
174+
175+
private func wrappedErrorTask<P,V,E>(task: () -> Task<P,V,E>, f: E -> WrappedError) -> () -> Task<P,V,WrappedError> {
176+
return {
177+
task()._mapError(f)
178+
}
179+
}

0 commit comments

Comments
 (0)