in OSSSwiftDemo/OSSSwiftDemoTests/OSSTaskTests.swift [433:459]
func testTaskForCompletionOfAllTasksCancelled() {
var tasks: [OSSTask<AnyObject>] = [] as! [OSSTask<AnyObject>]
for index in 0...19 {
let task = OSSTask<AnyObject>.init(delay: Int32(arc4random() % 100)).continue({ (t) -> Any? in
if index == 10 {
return OSSTask<AnyObject>.cancelled()
}
return index
})
tasks.append(task)
}
OSSTask<AnyObject>.init(forCompletionOfAllTasks: tasks).continue({ (t) -> Any? in
XCTAssertNil(t.error)
XCTAssertTrue(t.isCancelled)
for index in 0...19 {
if index == 10 {
XCTAssertNotNil(tasks[index].isCancelled);
} else {
XCTAssertEqual(index, (tasks[index].result as! Int))
}
}
return nil
}).waitUntilFinished()
}