Skip to content

Commit e58853d

Browse files
validate that all task IDs created are unique
1 parent 6c1c832 commit e58853d

1 file changed

Lines changed: 12 additions & 1 deletion

File tree

Tests/ApolloTests/URLSessionClientTests.swift

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,10 +167,12 @@ class URLSessionClientLiveTests: XCTestCase {
167167
let expectation = self.expectation(description: "request sent, response received")
168168
let iterations = 20
169169
expectation.expectedFulfillmentCount = iterations
170+
let taskIDs = Atomic<[Int]>([])
171+
170172
DispatchQueue.concurrentPerform(iterations: iterations, execute: { index in
171173
let request = self.request(for: .getWithIndex(index: index))
172174

173-
self.client.sendRequest(request) { result in
175+
let task = self.client.sendRequest(request) { result in
174176
switch result {
175177
case .success((let data, let response)):
176178
XCTAssertEqual(response.url, request.url)
@@ -190,8 +192,17 @@ class URLSessionClientLiveTests: XCTestCase {
190192
expectation.fulfill()
191193
}
192194
}
195+
196+
taskIDs.mutate { $0.append(task.taskIdentifier) }
193197
})
194198

195199
self.wait(for: [expectation], timeout: 30)
200+
201+
// Were the correct number of tasks created?
202+
XCTAssertEqual(taskIDs.value.count, iterations)
203+
204+
// Using a set to unique, are all task IDs different values?)
205+
let set = Set(taskIDs.value)
206+
XCTAssertEqual(set.count, iterations)
196207
}
197208
}

0 commit comments

Comments
 (0)