77 lines
3.2 KiB
Swift
77 lines
3.2 KiB
Swift
//
|
|
// Copyright Amazon.com Inc. or its affiliates.
|
|
// All Rights Reserved.
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
|
|
import XCTest
|
|
@testable import AWSAPIPlugin
|
|
|
|
class AWSHTTPURLResponseTests: XCTestCase {
|
|
|
|
func testAWSHTTPURLResponse() throws {
|
|
let body = "responseBody".data(using: .utf8)
|
|
let httpResponse = HTTPURLResponse(url: URL(string: "dummyString")!,
|
|
statusCode: 200,
|
|
httpVersion: "1.1",
|
|
headerFields: ["key1": "value1",
|
|
"key2": "value2"])!
|
|
if let response = AWSHTTPURLResponse(response: httpResponse, body: body) {
|
|
XCTAssertNotNil(response.body)
|
|
XCTAssertNotNil(response.url)
|
|
XCTAssertNil(response.mimeType)
|
|
XCTAssertEqual(response.expectedContentLength, -1)
|
|
XCTAssertNil(response.textEncodingName)
|
|
XCTAssertNotNil(response.suggestedFilename)
|
|
XCTAssertEqual(response.statusCode, 200)
|
|
XCTAssertEqual(response.allHeaderFields.count, 2)
|
|
|
|
XCTAssertNotNil(response.value(forHTTPHeaderField: "key1"))
|
|
XCTAssertNotNil(response.value(forHTTPHeaderField: "key2"))
|
|
} else {
|
|
XCTFail("Failed to initialize `AWSHTTPURLResponse`")
|
|
}
|
|
}
|
|
|
|
func testAWSHTTPURLResponseNSCoding() {
|
|
let body = "responseBody".data(using: .utf8)
|
|
let httpResponse = HTTPURLResponse(url: URL(string: "dummyString")!,
|
|
statusCode: 200,
|
|
httpVersion: "1.1",
|
|
headerFields: ["key1": "value1",
|
|
"key2": "value2"])!
|
|
guard let response = AWSHTTPURLResponse(response: httpResponse, body: body) else {
|
|
XCTFail("Failed to initialize `AWSHTTPURLResponse`")
|
|
return
|
|
}
|
|
let data : Data
|
|
do {
|
|
data = try NSKeyedArchiver.archivedData(withRootObject: response, requiringSecureCoding: false)
|
|
XCTAssertNotNil(data)
|
|
} catch (let error) {
|
|
XCTFail("Failed to archive data : \(error)")
|
|
return
|
|
}
|
|
|
|
do {
|
|
guard let unarchivedResponse = try NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(data) as? AWSHTTPURLResponse else {
|
|
XCTFail("Failure while unarchiving")
|
|
return
|
|
}
|
|
XCTAssertNotNil(unarchivedResponse)
|
|
XCTAssertNotNil(unarchivedResponse.body)
|
|
XCTAssertNotNil(unarchivedResponse.url)
|
|
XCTAssertNil(unarchivedResponse.mimeType)
|
|
XCTAssertEqual(unarchivedResponse.expectedContentLength, -1)
|
|
XCTAssertNil(unarchivedResponse.textEncodingName)
|
|
XCTAssertNotNil(unarchivedResponse.suggestedFilename)
|
|
XCTAssertEqual(unarchivedResponse.statusCode, 200)
|
|
XCTAssertEqual(unarchivedResponse.allHeaderFields.count, 2)
|
|
} catch (let error) {
|
|
XCTFail("Failed to unarchive `AWSHTTPURLResponse` data \(error)")
|
|
return
|
|
}
|
|
}
|
|
}
|