amplify-swift/AmplifyPlugins/Storage/Tests/AWSS3StoragePluginTests/Request/AWSS3StorageRemoveRequestTe...

54 lines
1.7 KiB
Swift

//
// Copyright Amazon.com Inc. or its affiliates.
// All Rights Reserved.
//
// SPDX-License-Identifier: Apache-2.0
//
import XCTest
import Amplify
@testable import AWSS3StoragePlugin
class AWSS3StorageRemoveRequestTests: XCTestCase {
let testTargetIdentityId = "TestTargetIdentityId"
let testKey = "TestKey"
let testPluginOptions: Any? = [:]
let testData = Data()
let testContentType = "TestContentType"
let testMetadata: [String: String] = [:]
func testValidateSuccess() {
let options = StorageRemoveRequest.Options(accessLevel: .protected,
pluginOptions: testPluginOptions)
let request = StorageRemoveRequest(key: testKey, options: options)
let storageErrorOptional = request.validate()
XCTAssertNil(storageErrorOptional)
}
func testValidateEmptyKeyError() {
let options = StorageRemoveRequest.Options(accessLevel: .protected,
pluginOptions: testPluginOptions)
let request = StorageRemoveRequest(key: "", options: options)
let storageErrorOptional = request.validate()
guard let error = storageErrorOptional else {
XCTFail("Missing StorageError")
return
}
guard case .validation(let field, let description, let recovery, _) = error else {
XCTFail("Error does not match validation error")
return
}
XCTAssertEqual(field, StorageErrorConstants.keyIsEmpty.field)
XCTAssertEqual(description, StorageErrorConstants.keyIsEmpty.errorDescription)
XCTAssertEqual(recovery, StorageErrorConstants.keyIsEmpty.recoverySuggestion)
}
}