AliyunOSSiOSTests/SequentialMultipartUploadTests.m (185 lines of code) (raw):

// // SequentialMultipartUploadTests.m // AliyunOSSiOSTests // // Created by huaixu on 2018/1/18. // Copyright © 2018年 aliyun. All rights reserved. // #import "AliyunOSSTests.h" #import "OSSTestUtils.h" @interface SequentialMultipartUploadTests : AliyunOSSTests @property (nonatomic, copy) NSString *bucketName; @end @implementation SequentialMultipartUploadTests - (void)setUp { [super setUp]; // Put setup code here. This method is called before the invocation of each test method in the class. self.bucketName = [OSSTestUtils getBucketName]; OSSCreateBucketRequest *createBucket = [OSSCreateBucketRequest new]; createBucket.bucketName = self.bucketName; [[self.client createBucket:createBucket] waitUntilFinished]; } - (void)tearDown { // Put teardown code here. This method is called after the invocation of each test method in the class. [super tearDown]; [OSSTestUtils cleanBucket:self.bucketName with:self.client]; } - (void)testAPI_sequentialMultipartUpload_crcClosed { // This is an example of a functional test case. // Use XCTAssert and related functions to verify your tests produce the correct results. OSSResumableUploadRequest *request = [OSSResumableUploadRequest new]; request.bucketName = self.bucketName; request.objectKey = @"sequential-multipart"; request.uploadingFileURL = [[NSBundle mainBundle] URLForResource:@"wangwang" withExtension:@"zip"]; request.deleteUploadIdOnCancelling = NO; request.crcFlag = OSSRequestCRCClosed; // request.contentSHA1 = [OSSUtil sha1WithFilePath:request.uploadingFileURL.path]; OSSTask *task = [self.client sequentialMultipartUpload:request]; [[task continueWithBlock:^OSSTask* (OSSTask* t) { XCTAssertNil(t.error); return nil; }] waitUntilFinished]; } - (void)testAPI_sequentialMultipartUpload_crcOpen { // This is an example of a functional test case. // Use XCTAssert and related functions to verify your tests produce the correct results. OSSResumableUploadRequest *request = [OSSResumableUploadRequest new]; request.bucketName = self.bucketName; request.objectKey = @"sequential-multipart"; request.uploadingFileURL = [[NSBundle mainBundle] URLForResource:@"wangwang" withExtension:@"zip"]; request.deleteUploadIdOnCancelling = NO; request.crcFlag = OSSRequestCRCOpen; // request.contentSHA1 = [OSSUtil sha1WithFilePath:request.uploadingFileURL.path]; OSSTask *task = [self.client sequentialMultipartUpload:request]; [[task continueWithBlock:^OSSTask* (OSSTask* t) { XCTAssertNil(t.error); return nil; }] waitUntilFinished]; } - (void)testAPI_sequentialMultipartUpload_cancel_withoutDeleteRecord { OSSResumableUploadRequest *request = [OSSResumableUploadRequest new]; request.bucketName = self.bucketName; request.recordDirectoryPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject; request.objectKey = @"sequential-multipart"; request.uploadingFileURL = [[NSBundle mainBundle] URLForResource:@"wangwang" withExtension:@"zip"]; request.deleteUploadIdOnCancelling = NO; request.crcFlag = OSSRequestCRCOpen; __weak typeof(request) weakRequest = request; request.uploadProgress = ^(int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend) { if (totalBytesSent > totalBytesExpectedToSend / 2) { [weakRequest cancel]; } }; OSSTask *task = [self.client sequentialMultipartUpload:request]; [[task continueWithBlock:^OSSTask* (OSSTask* t) { XCTAssertNotNil(t.error); XCTAssertEqual(t.error.code, OSSClientErrorCodeTaskCancelled); return nil; }] waitUntilFinished]; } - (void)testAPI_sequentialMultipartUpload_cancel_deleteRecord { OSSResumableUploadRequest *request = [OSSResumableUploadRequest new]; request.bucketName = self.bucketName; request.objectKey = @"sequential-multipart"; request.uploadingFileURL = [[NSBundle mainBundle] URLForResource:@"wangwang" withExtension:@"zip"]; request.recordDirectoryPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject; request.deleteUploadIdOnCancelling = YES; request.crcFlag = OSSRequestCRCOpen; __weak typeof(request) weakRequest = request; request.uploadProgress = ^(int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend) { if (totalBytesSent > totalBytesExpectedToSend / 2) { [weakRequest cancel]; } }; OSSTask *task = [self.client sequentialMultipartUpload:request]; [[task continueWithBlock:^OSSTask* (OSSTask* t) { XCTAssertNotNil(t.error); XCTAssertEqual(t.error.code, OSSClientErrorCodeTaskCancelled); return nil; }] waitUntilFinished]; } - (void)testAPI_sequentialMultipartUpload_cancel_and_resume_crcClosed { OSSResumableUploadRequest *request = [OSSResumableUploadRequest new]; request.bucketName = self.bucketName; request.objectKey = @"sequential-multipart"; request.uploadingFileURL = [[NSBundle mainBundle] URLForResource:@"wangwang" withExtension:@"zip"]; request.deleteUploadIdOnCancelling = NO; request.recordDirectoryPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject; request.crcFlag = OSSRequestCRCClosed; __weak typeof(request) weakRequest = request; request.uploadProgress = ^(int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend) { if (totalBytesSent > totalBytesExpectedToSend / 2) { [weakRequest cancel]; } }; OSSTask *task = [self.client sequentialMultipartUpload:request]; [[task continueWithBlock:^OSSTask* (OSSTask* t) { XCTAssertNotNil(t.error); XCTAssertEqual(t.error.code, OSSClientErrorCodeTaskCancelled); return nil; }] waitUntilFinished]; OSSResumableUploadRequest *resumedRequest = [OSSResumableUploadRequest new]; resumedRequest.bucketName = self.bucketName; resumedRequest.objectKey = @"sequential-multipart"; resumedRequest.uploadingFileURL = [[NSBundle mainBundle] URLForResource:@"wangwang" withExtension:@"zip"]; resumedRequest.deleteUploadIdOnCancelling = NO; resumedRequest.crcFlag = OSSRequestCRCClosed; resumedRequest.recordDirectoryPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject; // resumedRequest.contentSHA1 = [OSSUtil sha1WithFilePath:request.uploadingFileURL.path]; task = [self.client sequentialMultipartUpload:resumedRequest]; [[task continueWithBlock:^OSSTask* (OSSTask* t) { XCTAssertNil(t.error); return nil; }] waitUntilFinished]; } - (void)testAPI_sequentialMultipartUpload_cancel_and_resume_crcOpened { OSSResumableUploadRequest *request = [OSSResumableUploadRequest new]; request.bucketName = self.bucketName; request.objectKey = @"sequential-multipart"; request.uploadingFileURL = [[NSBundle mainBundle] URLForResource:@"wangwang" withExtension:@"zip"]; request.deleteUploadIdOnCancelling = NO; request.crcFlag = OSSRequestCRCOpen; request.recordDirectoryPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject; __weak typeof(request) weakRequest = request; request.uploadProgress = ^(int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend) { if (totalBytesSent > totalBytesExpectedToSend / 2) { [weakRequest cancel]; } }; OSSTask *task = [self.client sequentialMultipartUpload:request]; [[task continueWithBlock:^OSSTask* (OSSTask* t) { XCTAssertNotNil(t.error); XCTAssertEqual(t.error.code, OSSClientErrorCodeTaskCancelled); return nil; }] waitUntilFinished]; OSSResumableUploadRequest *resumedRequest = [OSSResumableUploadRequest new]; resumedRequest.bucketName = self.bucketName; resumedRequest.objectKey = @"sequential-multipart"; resumedRequest.uploadingFileURL = [[NSBundle mainBundle] URLForResource:@"wangwang" withExtension:@"zip"]; resumedRequest.deleteUploadIdOnCancelling = NO; resumedRequest.crcFlag = OSSRequestCRCOpen; resumedRequest.recordDirectoryPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject; // resumedRequest.contentSHA1 = [OSSUtil sha1WithFilePath:request.uploadingFileURL.path]; task = [self.client sequentialMultipartUpload:resumedRequest]; [[task continueWithBlock:^OSSTask* (OSSTask* t) { XCTAssertNil(t.error); return nil; }] waitUntilFinished]; } - (void)testAPI_sequentialMultipartUpload_cancel_and_resume_lastCrcOpened { OSSResumableUploadRequest *request = [OSSResumableUploadRequest new]; request.bucketName = self.bucketName; request.objectKey = @"sequential-multipart"; request.uploadingFileURL = [[NSBundle mainBundle] URLForResource:@"wangwang" withExtension:@"zip"]; request.deleteUploadIdOnCancelling = YES; request.crcFlag = OSSRequestCRCClosed; request.recordDirectoryPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject; __weak typeof(request) weakRequest = request; request.uploadProgress = ^(int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend) { if (totalBytesSent > totalBytesExpectedToSend / 2) { [weakRequest cancel]; } }; OSSTask *task = [self.client sequentialMultipartUpload:request]; [[task continueWithBlock:^OSSTask* (OSSTask* t) { XCTAssertNotNil(t.error); XCTAssertEqual(t.error.code, OSSClientErrorCodeTaskCancelled); return nil; }] waitUntilFinished]; OSSResumableUploadRequest *resumedRequest = [OSSResumableUploadRequest new]; resumedRequest.bucketName = self.bucketName; resumedRequest.objectKey = @"sequential-multipart"; resumedRequest.uploadingFileURL = [[NSBundle mainBundle] URLForResource:@"wangwang" withExtension:@"zip"]; resumedRequest.deleteUploadIdOnCancelling = NO; resumedRequest.crcFlag = OSSRequestCRCOpen; resumedRequest.recordDirectoryPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject; // resumedRequest.contentSHA1 = [OSSUtil sha1WithFilePath:request.uploadingFileURL.path]; task = [self.client sequentialMultipartUpload:resumedRequest]; [[task continueWithBlock:^OSSTask* (OSSTask* t) { XCTAssertNil(t.error); return nil; }] waitUntilFinished]; } @end