in OSSSwiftDemo/OSSSwiftDemoTests/OSSTaskTests.swift [395:431]
func testTaskForCompletionOfAllTasksTwoErrors() {
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 || index == 11 {
let error = NSError.init(domain: "OSS-SWIFT-SDK", code: 35, userInfo: nil)
return OSSTask<AnyObject>.init(error: error)
}
return index
})
tasks.append(task)
}
OSSTask<AnyObject>.init(forCompletionOfAllTasks: tasks).continue({ (t) -> Any? in
XCTAssertNotNil(t.error)
XCTAssertFalse(t.isCancelled)
let error = t.error! as NSError
XCTAssertEqual("bolts", error.domain)
XCTAssertEqual(kOSSMultipleErrorsError, error.code)
let errors = (t.error! as NSError).userInfo[OSSTaskMultipleErrorsUserInfoKey] as! [NSError]
XCTAssertEqual("OSS-SWIFT-SDK", errors[0].domain)
XCTAssertEqual(35, errors[0].code)
XCTAssertEqual("OSS-SWIFT-SDK", errors[1].domain)
XCTAssertEqual(35, errors[1].code)
for index in 0...19 {
if index == 10 || index == 11 {
XCTAssertNotNil(tasks[index].error);
} else {
XCTAssertEqual(index, (tasks[index].result as! Int))
}
}
return nil
}).waitUntilFinished()
}