amplify-swift/AmplifyPlugins/Storage/Tests/AWSS3StoragePluginTests/Mocks/MockAWSS3TransferUtility.swift

242 lines
8.0 KiB
Swift

//
// Copyright Amazon.com Inc. or its affiliates.
// All Rights Reserved.
//
// SPDX-License-Identifier: Apache-2.0
//
/*
import Foundation
@testable import AWSS3StoragePlugin
import AWSS3
public class MockAWSS3TransferUtility: AWSS3TransferUtilityBehavior {
public var errorOnContinuation: NSError?
public var errorOnCompletion: NSError?
private(set) public var downloadDataCalled = 0
private(set) public var downloadToURLCalled = 0
private(set) public var uploadDataCalled = 0
private(set) public var uploadFileCalled = 0
private(set) public var multiPartUploadFileCalled = 0
private(set) public var multiPartUploadDataCalled = 0
public func downloadData(fromBucket: String,
key: String,
expression: AWSS3TransferUtilityDownloadExpression,
completionHandler: (AWSS3TransferUtilityDownloadCompletionHandlerBlock)?)
-> AWSTask<AWSS3TransferUtilityDownloadTask> {
downloadDataCalled += 1
if let error = errorOnContinuation {
let resultWithError = AWSTask<AWSS3TransferUtilityDownloadTask>.init(error: error)
return resultWithError
}
let task = MockTransferUtilityDownloadTask()
let url = URL(fileURLWithPath: "path")
let response = HTTPURLResponse(url: url, statusCode: 200, httpVersion: nil, headerFields: nil)
task.response = response
if let progressBlock = expression.progressBlock {
progressBlock(task, Progress())
}
if let completionHandler = completionHandler {
if let error = errorOnCompletion {
completionHandler(task, nil, nil, error)
} else {
completionHandler(task, nil, Data(), nil)
}
}
let result = AWSTask<AWSS3TransferUtilityDownloadTask>.init(result: task)
return result
}
public func download(to fileURL: URL,
bucket: String,
key: String,
expression: AWSS3TransferUtilityDownloadExpression,
completionHandler: AWSS3TransferUtilityDownloadCompletionHandlerBlock?)
-> AWSTask<AWSS3TransferUtilityDownloadTask> {
downloadToURLCalled += 1
if let error = errorOnContinuation {
let resultWithError = AWSTask<AWSS3TransferUtilityDownloadTask>.init(error: error)
return resultWithError
}
let task = AWSS3TransferUtilityDownloadTask()
if let progressBlock = expression.progressBlock {
progressBlock(task, Progress())
}
if let completionHandler = completionHandler {
if let error = errorOnCompletion {
completionHandler(task, nil, nil, error)
} else {
completionHandler(task, nil, Data(), nil)
}
}
let result = AWSTask<AWSS3TransferUtilityDownloadTask>.init(result: task)
return result
}
// swiftlint:disable function_parameter_count
public func uploadData(data: Data,
bucket: String,
key: String,
contentType: String,
expression: AWSS3TransferUtilityUploadExpression,
completionHandler: AWSS3TransferUtilityUploadCompletionHandlerBlock?)
-> AWSTask<AWSS3TransferUtilityUploadTask> {
uploadDataCalled += 1
if let error = errorOnContinuation {
let resultWithError = AWSTask<AWSS3TransferUtilityUploadTask>.init(error: error)
return resultWithError
}
let task = AWSS3TransferUtilityUploadTask()
if let progressBlock = expression.progressBlock {
progressBlock(task, Progress())
}
if let completionHandler = completionHandler {
if let error = errorOnCompletion {
completionHandler(task, error)
} else {
completionHandler(task, nil)
}
}
let result = AWSTask<AWSS3TransferUtilityUploadTask>.init(result: task)
return result
}
public func uploadFile(fileURL: URL,
bucket: String,
key: String,
contentType: String,
expression: AWSS3TransferUtilityUploadExpression,
completionHandler: AWSS3TransferUtilityUploadCompletionHandlerBlock?)
-> AWSTask<AWSS3TransferUtilityUploadTask> {
uploadFileCalled += 1
if let error = errorOnContinuation {
let resultWithError = AWSTask<AWSS3TransferUtilityUploadTask>.init(error: error)
return resultWithError
}
let task = AWSS3TransferUtilityUploadTask()
if let progressBlock = expression.progressBlock {
progressBlock(task, Progress())
}
if let completionHandler = completionHandler {
if let error = errorOnCompletion {
completionHandler(task, error)
} else {
completionHandler(task, nil)
}
}
let result = AWSTask<AWSS3TransferUtilityUploadTask>.init(result: task)
return result
}
public func uploadUsingMultiPart(fileURL: URL,
bucket: String,
key: String,
contentType: String,
expression: AWSS3TransferUtilityMultiPartUploadExpression,
completionHandler: AWSS3TransferUtilityMultiPartUploadCompletionHandlerBlock?)
-> AWSTask<AWSS3TransferUtilityMultiPartUploadTask> {
multiPartUploadFileCalled += 1
if let error = errorOnContinuation {
let resultWithError = AWSTask<AWSS3TransferUtilityMultiPartUploadTask>.init(error: error)
return resultWithError
}
let task = AWSS3TransferUtilityMultiPartUploadTask()
if let progressBlock = expression.progressBlock {
progressBlock(task, Progress())
}
if let completionHandler = completionHandler {
if let error = errorOnCompletion {
completionHandler(task, error)
} else {
completionHandler(task, nil)
}
}
let result = AWSTask<AWSS3TransferUtilityMultiPartUploadTask>.init(result: task)
return result
}
public func uploadUsingMultiPart(data: Data,
bucket: String,
key: String,
contentType: String,
expression: AWSS3TransferUtilityMultiPartUploadExpression,
completionHandler: AWSS3TransferUtilityMultiPartUploadCompletionHandlerBlock?)
-> AWSTask<AWSS3TransferUtilityMultiPartUploadTask> {
multiPartUploadDataCalled += 1
if let error = errorOnContinuation {
let resultWithError = AWSTask<AWSS3TransferUtilityMultiPartUploadTask>.init(error: error)
return resultWithError
}
let task = AWSS3TransferUtilityMultiPartUploadTask()
if let progressBlock = expression.progressBlock {
progressBlock(task, Progress())
}
if let completionHandler = completionHandler {
if let error = errorOnCompletion {
completionHandler(task, error)
} else {
completionHandler(task, nil)
}
}
let result = AWSTask<AWSS3TransferUtilityMultiPartUploadTask>.init(result: task)
return result
}
}
class MockTransferUtilityDownloadTask: AWSS3TransferUtilityDownloadTask {
var mockResponse: HTTPURLResponse?
override var response: HTTPURLResponse? {
get {
return mockResponse
}
set {
mockResponse = newValue
}
}
}
*/