OSSSwiftDemo/OSSSwiftDemoTests/SequentialMultipartUploadTests.swift (204 lines of code) (raw):
//
// SequentialMultipartUploadTests.swift
// OSSSwiftDemoTests
//
// Created by huaixu on 2018/1/18.
// Copyright © 2018年 aliyun. All rights reserved.
//
import XCTest
import AliyunOSSiOS
import AliyunOSSSwiftSDK
class SequentialMultipartUploadTests: OSSSwiftDemoTests {
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
super.tearDown()
}
override func setupClient() {
let provider = OSSPlainTextAKSKPairCredentialProvider.init(plainTextAccessKey: OSS_ACCESSKEY_ID, secretKey: OSS_SECRETKEY_ID)
client = OSSClient.init(endpoint: OSS_ENDPOINT, credentialProvider: provider)
}
func testAPI_testAPI_sequentialMultipartUpload_crcClosed() {
let request = OSSResumableUploadRequest()
request.bucketName = OSS_BUCKET_PUBLIC;
request.objectKey = "sequential-swift-multipart";
request.uploadingFileURL = Bundle.main.url(forResource: "wangwang", withExtension: "zip")!
request.deleteUploadIdOnCancelling = false
request.crcFlag = OSSRequestCRCFlag.open
let filePath = Bundle.main.path(forResource: "wangwang", ofType: "zip")
request.contentSHA1 = OSSUtil.sha1(withFilePath: filePath)
let task = client.sequentialMultipartUpload(request)
task.continue({ (t) -> Any? in
XCTAssertNil(t.error)
return nil;
}).waitUntilFinished()
}
func testAPI_sequentialMultipartUpload_crcOpen() {
let request = OSSResumableUploadRequest()
request.bucketName = OSS_BUCKET_PUBLIC;
request.objectKey = "sequential-swift-multipart";
request.uploadingFileURL = Bundle.main.url(forResource: "wangwang", withExtension: "zip")!
request.deleteUploadIdOnCancelling = false
request.crcFlag = OSSRequestCRCFlag.closed
let filePath = Bundle.main.path(forResource: "wangwang", ofType: "zip")
request.contentSHA1 = OSSUtil.sha1(withFilePath: filePath)
let task = client.sequentialMultipartUpload(request)
task.continue({ (t) -> Any? in
XCTAssertNil(t.error);
return nil
}).waitUntilFinished()
}
func testAPI_sequentialMultipartUpload_cancel_withoutDeleteRecord() {
let request = OSSResumableUploadRequest()
request.bucketName = OSS_BUCKET_PUBLIC;
request.objectKey = "sequential-swift-multipart";
request.uploadingFileURL = Bundle.main.url(forResource: "wangwang", withExtension: "zip")!
request.deleteUploadIdOnCancelling = false
request.crcFlag = OSSRequestCRCFlag.open
request.recordDirectoryPath = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true).first!
request.uploadProgress = {[weak request](bytesSent, totalBytesSent, totalBytesExpectedToSend) in
if totalBytesSent > totalBytesExpectedToSend / 2 {
request?.cancel()
}
}
let task = client.sequentialMultipartUpload(request)
task.continue({ (t) -> Any? in
XCTAssertNotNil(t.error)
let error = t.error! as NSError
XCTAssertEqual(error.code, OSSClientErrorCODE.codeTaskCancelled.rawValue)
return nil
}).waitUntilFinished()
}
func testAPI_sequentialMultipartUpload_cancel_deleteRecord() {
let request = OSSResumableUploadRequest()
request.bucketName = OSS_BUCKET_PUBLIC;
request.objectKey = "sequential-swift-multipart";
request.uploadingFileURL = Bundle.main.url(forResource: "wangwang", withExtension: "zip")!
request.deleteUploadIdOnCancelling = true
request.crcFlag = OSSRequestCRCFlag.open
request.recordDirectoryPath = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true).first!
request.uploadProgress = {[weak request](bytesSent, totalBytesSent, totalBytesExpectedToSend) in
if totalBytesSent > totalBytesExpectedToSend / 2 {
request?.cancel()
}
}
let task = client.sequentialMultipartUpload(request)
task.continue({ (t) -> Any? in
XCTAssertNotNil(t.error);
let error = t.error! as NSError
XCTAssertEqual(error.code, OSSClientErrorCODE.codeTaskCancelled.rawValue)
return nil;
}).waitUntilFinished()
}
func testAPI_sequentialMultipartUpload_cancel_and_resume_crcClosed() {
var request = OSSResumableUploadRequest()
request.bucketName = OSS_BUCKET_PUBLIC;
request.objectKey = "sequential-swift-multipart";
request.uploadingFileURL = Bundle.main.url(forResource: "wangwang", withExtension: "zip")!
request.deleteUploadIdOnCancelling = false
request.crcFlag = OSSRequestCRCFlag.closed
request.recordDirectoryPath = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true).first!
request.uploadProgress = {[weak request](bytesSent, totalBytesSent, totalBytesExpectedToSend) in
if totalBytesSent > totalBytesExpectedToSend / 2 {
request?.cancel()
}
}
let filePath = Bundle.main.path(forResource: "wangwang", ofType: "zip")
request.contentSHA1 = OSSUtil.sha1(withFilePath: filePath)
var task = client.sequentialMultipartUpload(request)
task.continue({ (t) -> Any? in
XCTAssertNotNil(t.error)
let error = t.error! as NSError
XCTAssertEqual(error.code, OSSClientErrorCODE.codeTaskCancelled.rawValue)
return nil;
}).waitUntilFinished()
request = OSSResumableUploadRequest()
request.bucketName = OSS_BUCKET_PUBLIC;
request.objectKey = "sequential-swift-multipart";
request.uploadingFileURL = Bundle.main.url(forResource: "wangwang", withExtension: "zip")!
request.deleteUploadIdOnCancelling = true
request.crcFlag = OSSRequestCRCFlag.closed
request.contentSHA1 = OSSUtil.sha1(withFilePath: filePath)
request.recordDirectoryPath = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true).first!
request.uploadProgress = {(bytesSent, totalBytesSent, totalBytesExpectedToSend) in
print("bytesSent: \(bytesSent), totalBytesSent: \(totalBytesSent), totalBytesExpectedToSend: \(totalBytesExpectedToSend)")
}
task = client.sequentialMultipartUpload(request)
task.continue({ (t) -> Any? in
XCTAssertNil(t.error)
return nil
}).waitUntilFinished()
}
func testAPI_sequentialMultipartUpload_cancel_and_resume_crcOpened() {
var request = OSSResumableUploadRequest()
request.bucketName = OSS_BUCKET_PUBLIC;
request.objectKey = "sequential-swift-multipart";
request.uploadingFileURL = Bundle.main.url(forResource: "wangwang", withExtension: "zip")!
request.deleteUploadIdOnCancelling = false
request.crcFlag = OSSRequestCRCFlag.open
request.recordDirectoryPath = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true).first!
request.uploadProgress = {[weak request](bytesSent, totalBytesSent, totalBytesExpectedToSend) in
if totalBytesSent > totalBytesExpectedToSend / 2 {
request?.cancel()
}
}
let filePath = Bundle.main.path(forResource: "wangwang", ofType: "zip")
request.contentSHA1 = OSSUtil.sha1(withFilePath: filePath)
var task = client.sequentialMultipartUpload(request)
task.continue({ (t) -> Any? in
XCTAssertNotNil(t.error)
let error = t.error! as NSError
XCTAssertEqual(error.code, OSSClientErrorCODE.codeTaskCancelled.rawValue)
return nil;
}).waitUntilFinished()
request = OSSResumableUploadRequest()
request.bucketName = OSS_BUCKET_PUBLIC;
request.objectKey = "sequential-swift-multipart";
request.uploadingFileURL = Bundle.main.url(forResource: "wangwang", withExtension: "zip")!
request.deleteUploadIdOnCancelling = true
request.crcFlag = OSSRequestCRCFlag.open
request.contentSHA1 = OSSUtil.sha1(withFilePath: filePath)
request.recordDirectoryPath = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true).first!
request.uploadProgress = {(bytesSent, totalBytesSent, totalBytesExpectedToSend) in
print("bytesSent: \(bytesSent), totalBytesSent: \(totalBytesSent), totalBytesExpectedToSend: \(totalBytesExpectedToSend)")
}
task = client.sequentialMultipartUpload(request)
task.continue({ (t) -> Any? in
XCTAssertNil(t.error)
return nil
}).waitUntilFinished()
}
func testAPI_sequentialMultipartUpload_cancel_and_resume_lastCrcOpened() {
var request = OSSResumableUploadRequest()
request.bucketName = OSS_BUCKET_PUBLIC;
request.objectKey = "sequential-swift-multipart";
request.uploadingFileURL = Bundle.main.url(forResource: "wangwang", withExtension: "zip")!
request.deleteUploadIdOnCancelling = false
request.crcFlag = OSSRequestCRCFlag.closed
request.recordDirectoryPath = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true).first!
request.uploadProgress = {[weak request](bytesSent, totalBytesSent, totalBytesExpectedToSend) in
if totalBytesSent > totalBytesExpectedToSend / 2 {
request?.cancel()
}
}
let filePath = Bundle.main.path(forResource: "wangwang", ofType: "zip")
request.contentSHA1 = OSSUtil.sha1(withFilePath: filePath)
var task = client.sequentialMultipartUpload(request)
task.continue({ (t) -> Any? in
XCTAssertNotNil(t.error)
let error = t.error! as NSError
XCTAssertEqual(error.code, OSSClientErrorCODE.codeTaskCancelled.rawValue)
return nil;
}).waitUntilFinished()
request = OSSResumableUploadRequest()
request.bucketName = OSS_BUCKET_PUBLIC;
request.objectKey = "sequential-swift-multipart";
request.uploadingFileURL = Bundle.main.url(forResource: "wangwang", withExtension: "zip")!
request.deleteUploadIdOnCancelling = true
request.crcFlag = OSSRequestCRCFlag.open
request.contentSHA1 = OSSUtil.sha1(withFilePath: filePath)
request.recordDirectoryPath = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true).first!
request.uploadProgress = {(bytesSent, totalBytesSent, totalBytesExpectedToSend) in
print("bytesSent: \(bytesSent), totalBytesSent: \(totalBytesSent), totalBytesExpectedToSend: \(totalBytesExpectedToSend)")
}
task = client.sequentialMultipartUpload(request)
task.continue({ (t) -> Any? in
XCTAssertNil(t.error)
return nil
}).waitUntilFinished()
}
}