aws-appsync-realtime-client.../AppSyncRealTimeClientTests/Interceptor/APIKeyAuthInterceptorTests....

40 lines
1.4 KiB
Swift

//
// Copyright 2018-2020 Amazon.com,
// Inc. or its affiliates. All Rights Reserved.
//
// SPDX-License-Identifier: Apache-2.0
//
import XCTest
import AppSyncRealTimeClient
class APIKeyAuthInterceptorTests: XCTestCase {
var apiKeyAuthInterceptor: APIKeyAuthInterceptor!
override func setUp() {
apiKeyAuthInterceptor = APIKeyAuthInterceptor("mock_api_key")
}
func testInterceptRequest() {
let url = URL(string: "http://xxxc.appsync-api.ap-southeast-2.amazonaws.com/sd")!
let request = AppSyncConnectionRequest(url: url)
let signedRequest = apiKeyAuthInterceptor.interceptConnection(request, for: url)
guard let queries = URLComponents(url: signedRequest.url, resolvingAgainstBaseURL: true)?.queryItems else {
assertionFailure("Query parameters should not be nil")
return
}
XCTAssertTrue(queries.contains { $0.name == "header"}, "Should contain the header query")
XCTAssertTrue(queries.contains { $0.name == "payload"}, "Should contain the payload query")
}
func testInterceptMessage() {
let message = AppSyncMessage(type: .subscribe("start"))
let url = URL(string: "http://xxxc.appsync-api.ap-southeast-2.amazonaws.com/sd")!
let signedMessage = apiKeyAuthInterceptor.interceptMessage(message, for: url)
XCTAssertNotNil(signedMessage.payload?.authHeader)
}
}