func testMultipleThreadsSubscribeUnsubscribe()

in AppSyncRealTimeClientIntegrationTests/AppSyncRealTimeClientIntegrationTests.swift [196:220]


    func testMultipleThreadsSubscribeUnsubscribe() {
        let authInterceptor = APIKeyAuthInterceptor(apiKey)
        let connectionProvider = ConnectionProviderFactory.createConnectionProvider(
            for: url,
            authInterceptor: authInterceptor,
            connectionType: .appSyncRealtime
        )
        guard let realTimeConnectionProvider = connectionProvider as? RealtimeConnectionProvider else {
            XCTFail("Could not retrieve concrete connection provider")
            return
        }
        let expectedPerforms = expectation(description: "total performs")
        expectedPerforms.expectedFulfillmentCount = 1_000
        DispatchQueue.concurrentPerform(iterations: 1_000) { _ in
            let subscriptionConnection = AppSyncSubscriptionConnection(provider: connectionProvider)
            let item = subscriptionConnection.subscribe(
                requestString: requestString,
                variables: nil
            ) { event, _ in }
            subscriptionConnection.unsubscribe(item: item)
            expectedPerforms.fulfill()
        }
        wait(for: [expectedPerforms], timeout: 1)
        assertStatus(of: realTimeConnectionProvider, equals: .notConnected)
    }