diff --git a/.gitignore b/.gitignore index df92d300d24..bcfb2681a3d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ # OS generated files # ###################### +.COMPONENT_CACHED .DS_Store .DS_Store? ._* @@ -25,6 +26,7 @@ xcuserdata # Built assets # ###################### build +builtFramework AWS*.framework # Stuff that can't be committed # diff --git a/AWSAPIGateway.podspec b/AWSAPIGateway.podspec new file mode 100644 index 00000000000..65bd224c5e4 --- /dev/null +++ b/AWSAPIGateway.podspec @@ -0,0 +1,19 @@ +Pod::Spec.new do |s| + + s.name = 'AWSAPIGateway' + s.version = '2.2.1' + s.summary = 'Amazon Web Services SDK for iOS.' + + s.description = 'The AWS SDK for iOS provides a library, code samples, and documentation for developers to build connected mobile applications using AWS.' + + s.homepage = 'http://aws.amazon.com/sdkforios' + s.license = 'Apache License, Version 2.0' + s.author = { 'Amazon Web Services' => 'amazonwebservices' } + s.platform = :ios, '7.0' + s.source = { :git => 'https://github.com/aws/aws-sdk-ios.git', + :tag => s.version} + s.requires_arc = true + s.dependency 'AWSCore', '2.2.1' + + s.source_files = 'AWSAPIGateway/*.{h,m}' +end diff --git a/AWSAPIGateway.xcodeproj/project.pbxproj b/AWSAPIGateway.xcodeproj/project.pbxproj new file mode 100644 index 00000000000..5d8b96dce1d --- /dev/null +++ b/AWSAPIGateway.xcodeproj/project.pbxproj @@ -0,0 +1,408 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + CE6BC1131B4A440C002E2414 /* libAWSAPIGateway.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CE6BC1071B4A440B002E2414 /* libAWSAPIGateway.a */; }; + CE6BC12C1B4A447D002E2414 /* AWSAPIGatewayClient.m in Sources */ = {isa = PBXBuildFile; fileRef = CE6BC12B1B4A447D002E2414 /* AWSAPIGatewayClient.m */; }; + CEB2AE911B4B3A7300F32474 /* AWSAPIGateway.h in Headers */ = {isa = PBXBuildFile; fileRef = CEB2AE8F1B4B067800F32474 /* AWSAPIGateway.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CEB2AE921B4B3A7300F32474 /* AWSAPIGatewayClient.h in Headers */ = {isa = PBXBuildFile; fileRef = CE6BC12A1B4A447D002E2414 /* AWSAPIGatewayClient.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CEB2AE931B4B3A7A00F32474 /* AWSAPIGateway.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = CEB2AE8F1B4B067800F32474 /* AWSAPIGateway.h */; }; + CEB2AE941B4B3A7A00F32474 /* AWSAPIGatewayClient.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE6BC12A1B4A447D002E2414 /* AWSAPIGatewayClient.h */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + CE6BC1141B4A440C002E2414 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = CE6BC0FF1B4A440B002E2414 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CE6BC1061B4A440B002E2414; + remoteInfo = AWSAPIGateway; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + CE6BC1051B4A440B002E2414 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "include/$(PRODUCT_NAME)"; + dstSubfolderSpec = 16; + files = ( + CEB2AE931B4B3A7A00F32474 /* AWSAPIGateway.h in CopyFiles */, + CEB2AE941B4B3A7A00F32474 /* AWSAPIGatewayClient.h in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + CE6BC1071B4A440B002E2414 /* libAWSAPIGateway.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libAWSAPIGateway.a; sourceTree = BUILT_PRODUCTS_DIR; }; + CE6BC1121B4A440C002E2414 /* AWSAPIGatewayTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AWSAPIGatewayTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + CE6BC1181B4A440C002E2414 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + CE6BC12A1B4A447D002E2414 /* AWSAPIGatewayClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AWSAPIGatewayClient.h; sourceTree = ""; }; + CE6BC12B1B4A447D002E2414 /* AWSAPIGatewayClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSAPIGatewayClient.m; sourceTree = ""; }; + CEB2AE8F1B4B067800F32474 /* AWSAPIGateway.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AWSAPIGateway.h; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + CE6BC1041B4A440B002E2414 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CE6BC10F1B4A440C002E2414 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + CE6BC1131B4A440C002E2414 /* libAWSAPIGateway.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + CE6BC0FE1B4A440B002E2414 = { + isa = PBXGroup; + children = ( + CE6BC1091B4A440B002E2414 /* AWSAPIGateway */, + CE6BC1161B4A440C002E2414 /* AWSAPIGatewayTests */, + CE6BC1081B4A440B002E2414 /* Products */, + ); + sourceTree = ""; + }; + CE6BC1081B4A440B002E2414 /* Products */ = { + isa = PBXGroup; + children = ( + CE6BC1071B4A440B002E2414 /* libAWSAPIGateway.a */, + CE6BC1121B4A440C002E2414 /* AWSAPIGatewayTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + CE6BC1091B4A440B002E2414 /* AWSAPIGateway */ = { + isa = PBXGroup; + children = ( + CEB2AE8F1B4B067800F32474 /* AWSAPIGateway.h */, + CE6BC12A1B4A447D002E2414 /* AWSAPIGatewayClient.h */, + CE6BC12B1B4A447D002E2414 /* AWSAPIGatewayClient.m */, + ); + path = AWSAPIGateway; + sourceTree = ""; + }; + CE6BC1161B4A440C002E2414 /* AWSAPIGatewayTests */ = { + isa = PBXGroup; + children = ( + CE6BC1171B4A440C002E2414 /* Supporting Files */, + ); + path = AWSAPIGatewayTests; + sourceTree = ""; + }; + CE6BC1171B4A440C002E2414 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + CE6BC1181B4A440C002E2414 /* Info.plist */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + CEB2AE901B4B3A6B00F32474 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + CEB2AE911B4B3A7300F32474 /* AWSAPIGateway.h in Headers */, + CEB2AE921B4B3A7300F32474 /* AWSAPIGatewayClient.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + CE6BC1061B4A440B002E2414 /* AWSAPIGateway */ = { + isa = PBXNativeTarget; + buildConfigurationList = CE6BC11B1B4A440C002E2414 /* Build configuration list for PBXNativeTarget "AWSAPIGateway" */; + buildPhases = ( + CE6BC1031B4A440B002E2414 /* Sources */, + CE6BC1041B4A440B002E2414 /* Frameworks */, + CE6BC1051B4A440B002E2414 /* CopyFiles */, + CEB2AE901B4B3A6B00F32474 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = AWSAPIGateway; + productName = AWSAPIGateway; + productReference = CE6BC1071B4A440B002E2414 /* libAWSAPIGateway.a */; + productType = "com.apple.product-type.library.static"; + }; + CE6BC1111B4A440C002E2414 /* AWSAPIGatewayTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = CE6BC11E1B4A440C002E2414 /* Build configuration list for PBXNativeTarget "AWSAPIGatewayTests" */; + buildPhases = ( + CE6BC10E1B4A440C002E2414 /* Sources */, + CE6BC10F1B4A440C002E2414 /* Frameworks */, + CE6BC1101B4A440C002E2414 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + CE6BC1151B4A440C002E2414 /* PBXTargetDependency */, + ); + name = AWSAPIGatewayTests; + productName = AWSAPIGatewayTests; + productReference = CE6BC1121B4A440C002E2414 /* AWSAPIGatewayTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + CE6BC0FF1B4A440B002E2414 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0640; + ORGANIZATIONNAME = "Amazon Web Services"; + TargetAttributes = { + CE6BC1061B4A440B002E2414 = { + CreatedOnToolsVersion = 6.4; + }; + CE6BC1111B4A440C002E2414 = { + CreatedOnToolsVersion = 6.4; + }; + }; + }; + buildConfigurationList = CE6BC1021B4A440B002E2414 /* Build configuration list for PBXProject "AWSAPIGateway" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = CE6BC0FE1B4A440B002E2414; + productRefGroup = CE6BC1081B4A440B002E2414 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + CE6BC1061B4A440B002E2414 /* AWSAPIGateway */, + CE6BC1111B4A440C002E2414 /* AWSAPIGatewayTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + CE6BC1101B4A440C002E2414 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + CE6BC1031B4A440B002E2414 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + CE6BC12C1B4A447D002E2414 /* AWSAPIGatewayClient.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CE6BC10E1B4A440C002E2414 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + CE6BC1151B4A440C002E2414 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = CE6BC1061B4A440B002E2414 /* AWSAPIGateway */; + targetProxy = CE6BC1141B4A440C002E2414 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + CE6BC1191B4A440C002E2414 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/**"; + }; + name = Debug; + }; + CE6BC11A1B4A440C002E2414 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/**"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + CE6BC11C1B4A440C002E2414 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + CE6BC11D1B4A440C002E2414 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + }; + name = Release; + }; + CE6BC11F1B4A440C002E2414 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = AWSAPIGatewayTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + CE6BC1201B4A440C002E2414 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + INFOPLIST_FILE = AWSAPIGatewayTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + CE6BC1021B4A440B002E2414 /* Build configuration list for PBXProject "AWSAPIGateway" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + CE6BC1191B4A440C002E2414 /* Debug */, + CE6BC11A1B4A440C002E2414 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + CE6BC11B1B4A440C002E2414 /* Build configuration list for PBXNativeTarget "AWSAPIGateway" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + CE6BC11C1B4A440C002E2414 /* Debug */, + CE6BC11D1B4A440C002E2414 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + CE6BC11E1B4A440C002E2414 /* Build configuration list for PBXNativeTarget "AWSAPIGatewayTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + CE6BC11F1B4A440C002E2414 /* Debug */, + CE6BC1201B4A440C002E2414 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = CE6BC0FF1B4A440B002E2414 /* Project object */; +} diff --git a/AWSAPIGateway.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/AWSAPIGateway.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000000..83bcc188c7a --- /dev/null +++ b/AWSAPIGateway.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/AWSAPIGateway/AWSAPIGateway.h b/AWSAPIGateway/AWSAPIGateway.h new file mode 100644 index 00000000000..b38efed059f --- /dev/null +++ b/AWSAPIGateway/AWSAPIGateway.h @@ -0,0 +1,18 @@ +/* + Copyright 2010-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"). + You may not use this file except in compliance with the License. + A copy of the License is located at + + http://aws.amazon.com/apache2.0 + + or in the "license" file accompanying this file. This file is distributed + on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + express or implied. See the License for the specific language governing + permissions and limitations under the License. + */ + +#import +#import +#import "AWSAPIGatewayClient.h" diff --git a/AWSAPIGateway/AWSAPIGatewayClient.h b/AWSAPIGateway/AWSAPIGatewayClient.h new file mode 100755 index 00000000000..615b5578d90 --- /dev/null +++ b/AWSAPIGateway/AWSAPIGatewayClient.h @@ -0,0 +1,26 @@ +/* + Copyright 2010-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"). + You may not use this file except in compliance with the License. + A copy of the License is located at + + http://aws.amazon.com/apache2.0 + + or in the "license" file accompanying this file. This file is distributed + on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + express or implied. See the License for the specific language governing + permissions and limitations under the License. + */ + +#import + +@class AWSServiceConfiguration; + +@interface AWSAPIGatewayClient : NSObject + +@property (nonatomic, strong, readonly) AWSServiceConfiguration *configuration; + +@property (nonatomic, strong) NSString *APIKey; + +@end diff --git a/AWSAPIGateway/AWSAPIGatewayClient.m b/AWSAPIGateway/AWSAPIGatewayClient.m new file mode 100755 index 00000000000..3468a98d4ee --- /dev/null +++ b/AWSAPIGateway/AWSAPIGatewayClient.m @@ -0,0 +1,263 @@ +/* + Copyright 2010-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"). + You may not use this file except in compliance with the License. + A copy of the License is located at + + http://aws.amazon.com/apache2.0 + + or in the "license" file accompanying this file. This file is distributed + on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + express or implied. See the License for the specific language governing + permissions and limitations under the License. + */ + +#import "AWSAPIGatewayClient.h" +#import + +NSString *const AWSAPIGatewayAPIKeyHeader = @"x-api-key"; + +@interface AWSAPIGatewayClient() + +// Networking +@property (nonatomic, strong) NSURLSession *session; + +// For responses +@property (nonatomic, strong) NSDictionary *HTTPHeaderFields; +@property (nonatomic, assign) NSInteger HTTPStatusCode; + +@end + +@implementation AWSAPIGatewayClient + +- (instancetype)init { + if (self = [super init]) { + static NSURLSession *session = nil; + + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration]; + session = [NSURLSession sessionWithConfiguration:sessionConfiguration]; + }); + + _session = session; + } + return self; +} + +- (AWSTask *)invokeHTTPRequest:(NSString *)HTTPMethod + URLString:(NSString *)URLString + pathParameters:(NSDictionary *)pathParameters + queryParameters:(NSDictionary *)queryParameters + headerParameters:(NSDictionary *)headerParameters + body:(id)body + responseClass:(Class)responseClass { + NSURL *URL = [self requestURL:URLString query:queryParameters URLPathComponentsDictionary:pathParameters]; + NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL]; + request.HTTPMethod = HTTPMethod; + request.allHTTPHeaderFields = headerParameters; + if (self.APIKey) { + [request addValue:self.APIKey forHTTPHeaderField:AWSAPIGatewayAPIKeyHeader]; + } + + NSError *error = nil; + if (body != nil) { + NSDictionary *bodyParameters = [[AWSMTLJSONAdapter JSONDictionaryFromModel:body] aws_removeNullValues]; + request.HTTPBody = [NSJSONSerialization dataWithJSONObject:bodyParameters + options:0 + error:&error]; + if (!request.HTTPBody) { + AWSLogError(@"Failed to serialize a request body. %@", error); + } + } + + // Refreshes credentials if necessary + AWSTask *task = [AWSTask taskWithResult:nil]; + task = [task continueWithSuccessBlock:^id(AWSTask *task) { + id signer = [self.configuration.requestInterceptors lastObject]; + if (signer) { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wundeclared-selector" + if ([signer respondsToSelector:@selector(credentialsProvider)]) { + id credentialsProvider = [signer performSelector:@selector(credentialsProvider)]; + + if ([credentialsProvider respondsToSelector:@selector(refresh)]) { + NSString *accessKey = nil; + if ([credentialsProvider respondsToSelector:@selector(accessKey)]) { + accessKey = [credentialsProvider performSelector:@selector(accessKey)]; + } + + NSString *secretKey = nil; + if ([credentialsProvider respondsToSelector:@selector(secretKey)]) { + secretKey = [credentialsProvider performSelector:@selector(secretKey)]; + } + + NSDate *expiration = nil; + if ([credentialsProvider respondsToSelector:@selector(expiration)]) { + expiration = [credentialsProvider performSelector:@selector(expiration)]; + } + + /** + Preemptively refresh credentials if any of the following is true: + 1. accessKey or secretKey is nil. + 2. the credentials expires within 10 minutes. + */ + if ((!accessKey || !secretKey) + || [expiration compare:[NSDate dateWithTimeIntervalSinceNow:10 * 60]] == NSOrderedAscending) { + return [credentialsProvider performSelector:@selector(refresh)]; + } + } + } +#pragma clang diagnostic pop + } + return nil; + }]; + + // Signs the request + for (id interceptor in self.configuration.requestInterceptors) { + task = [task continueWithSuccessBlock:^id(AWSTask *task) { + return [interceptor interceptRequest:request]; + }]; + } + + return [task continueWithSuccessBlock:^id(AWSTask *task) { + AWSTaskCompletionSource *completionSource = [AWSTaskCompletionSource new]; + + NSURLSessionDataTask *sessionTask = [self.session dataTaskWithRequest:request + completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { + if (error) { + [completionSource setError:error]; + return; + } + if (response) { + NSHTTPURLResponse *HTTPResponse = (NSHTTPURLResponse *)response; + self.HTTPHeaderFields = HTTPResponse.allHeaderFields; + self.HTTPStatusCode = HTTPResponse.statusCode; + } + if (data && [data length] > 0) { + id response = [NSJSONSerialization JSONObjectWithData:data + options:NSJSONReadingAllowFragments + error:&error]; + if (!response) { + NSString *bodyString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; + if ([bodyString length] > 0) { + AWSLogError(@"The body is not in JSON format. Body: %@\nError: %@", bodyString, error); + [completionSource setError:error]; + return; + } + } + // Serializes the response object + if (responseClass + && responseClass != [NSDictionary class]) { + if ([response isKindOfClass:[NSDictionary class]]) { + NSError *responseSerializationError = nil; + response = [AWSMTLJSONAdapter modelOfClass:responseClass + fromJSONDictionary:response + error:&responseSerializationError]; + if (!response) { + AWSLogError(@"Failed to serialize the body JSON. %@", responseSerializationError); + } + } + if ([response isKindOfClass:[NSArray class]]) { + NSError *responseSerializationError = nil; + NSMutableArray *models = [NSMutableArray new]; + for (id object in response) { + id model = [AWSMTLJSONAdapter modelOfClass:responseClass + fromJSONDictionary:object + error:&responseSerializationError]; + [models addObject:model]; + if (!response) { + AWSLogError(@"Failed to serialize the body JSON. %@", responseSerializationError); + } + } + response = models; + } + } + [completionSource setResult:response]; + } else { + [completionSource setResult:nil]; + } + }]; + [sessionTask resume]; + + return completionSource.task; + }]; +} + +- (NSURL *)requestURL:(NSString *)URLString query:(NSDictionary *)query URLPathComponentsDictionary:(NSDictionary *)URLPathComponentsDictionary { + NSMutableString *mutableURLString = [NSMutableString stringWithString:URLString]; + + // Constructs the URL path components + NSCharacterSet *delimiters = [NSCharacterSet characterSetWithCharactersInString:@"{}"]; + NSArray *URLPathComponents = [URLString componentsSeparatedByCharactersInSet:delimiters]; + if ([URLPathComponents count] >= 2) { + for (NSUInteger i = 1; i < [URLPathComponents count] - 1; i++) { + [mutableURLString replaceOccurrencesOfString:[NSString stringWithFormat:@"{%@}", URLPathComponents[i]] + withString:[self encodeQueryStringValue:[URLPathComponentsDictionary valueForKey:URLPathComponents[i]]] + options:NSLiteralSearch + range:NSMakeRange(0, [mutableURLString length])]; + } + } + + // Adds query string + NSMutableString *queryString = [NSMutableString new]; + [self processParameters:query queryString:queryString]; + if ([queryString length] > 0) { + [mutableURLString appendFormat:@"?%@", queryString]; + } + + return [NSURL URLWithString:[NSString stringWithFormat:@"%@%@", self.configuration.baseURL, mutableURLString]]; +} + +// TODO: merge it with - (void)processParameters:(NSDictionary *)parameters queryString:(NSMutableString *)queryString in AWSURLRequestSerialization.m +- (void)processParameters:(NSDictionary *)parameters queryString:(NSMutableString *)queryString { + for (NSString *key in parameters) { + id obj = parameters[key]; + + if ([obj isKindOfClass:[NSDictionary class]]) { + [self processParameters:obj queryString:queryString]; + } else { + if ([queryString length] > 0) { + [queryString appendString:@"&"]; + } + + [queryString appendString:[self generateQueryStringWithKey:key value:obj]]; + } + } +} + +- (NSString *)generateQueryStringWithKey:(NSString *)key value:(id)value { + NSMutableString *queryString = [NSMutableString new]; + [queryString appendString:[key aws_stringWithURLEncoding]]; + [queryString appendString:@"="]; + [queryString appendString:[self encodeQueryStringValue:value]]; + + return queryString; +} + +- (NSString *)encodeQueryStringValue:(id)value { + if ([value isKindOfClass:[NSString class]]) { + return [value aws_stringWithURLEncoding]; + } + + if ([value isKindOfClass:[NSNumber class]]) { + return [[value stringValue] aws_stringWithURLEncoding]; + } + + if ([value isKindOfClass:[NSArray class]]) { + NSMutableString *mutableString = [NSMutableString new]; + for (id obj in value) { + if ([mutableString length] > 0) { + [mutableString appendString:@","]; + } + [mutableString appendString:[self encodeQueryStringValue:obj]]; + } + return mutableString; + } + + AWSLogError(@"value[%@] is invalid.", value); + return [[value description] aws_stringWithURLEncoding]; +} + +@end diff --git a/AWSAPIGatewayTests/Info.plist b/AWSAPIGatewayTests/Info.plist new file mode 100644 index 00000000000..55821ba1861 --- /dev/null +++ b/AWSAPIGatewayTests/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + com.amazonaws.$(PRODUCT_NAME:rfc1034identifier) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git a/AWSAutoScaling.podspec b/AWSAutoScaling.podspec index e1ffc5c8327..729856ae433 100644 --- a/AWSAutoScaling.podspec +++ b/AWSAutoScaling.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = 'AWSAutoScaling' - s.version = '2.2.0' + s.version = '2.2.1' s.summary = 'Amazon Web Services SDK for iOS.' s.description = 'The AWS SDK for iOS provides a library, code samples, and documentation for developers to build connected mobile applications using AWS.' @@ -13,7 +13,7 @@ Pod::Spec.new do |s| s.source = { :git => 'https://github.com/aws/aws-sdk-ios.git', :tag => s.version} s.requires_arc = true - s.dependency 'AWSCore', '2.2.0' + s.dependency 'AWSCore', '2.2.1' s.source_files = 'AWSAutoScaling/*.{h,m}' end diff --git a/AWSAutoScaling.xcodeproj/project.pbxproj b/AWSAutoScaling.xcodeproj/project.pbxproj index 1002f0bd290..64757f98aea 100644 --- a/AWSAutoScaling.xcodeproj/project.pbxproj +++ b/AWSAutoScaling.xcodeproj/project.pbxproj @@ -10,7 +10,6 @@ BD0000301AB8C4D2004496EF /* credentials.json in Resources */ = {isa = PBXBuildFile; fileRef = BD00002F1AB8C4D2004496EF /* credentials.json */; }; BD0000491AB8E119004496EF /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0000481AB8E119004496EF /* AWSTestUtility.m */; }; BD00FF371AB8B683004496EF /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BD00FF361AB8B683004496EF /* libAWSCore.a */; }; - BD00FFD41AB8C353004496EF /* AWSGeneralAutoScalingTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFD21AB8C353004496EF /* AWSGeneralAutoScalingTests.m */; }; BD00FFD51AB8C353004496EF /* AWSAutoScalingTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFD31AB8C353004496EF /* AWSAutoScalingTests.m */; }; BD9D97681AC1EF7800CEEE08 /* AWSAutoScalingService.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = CEE7DE661AC1E0C30095C4B7 /* AWSAutoScalingService.h */; }; BDB5DF281AB37A7A002DD224 /* libAWSAutoScaling.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDB5DF1C1AB37A79002DD224 /* libAWSAutoScaling.a */; }; @@ -22,6 +21,12 @@ BDB73D681B1D3E6D00717559 /* AWSAutoScalingResources.m in Sources */ = {isa = PBXBuildFile; fileRef = BDB73D661B1D3E6D00717559 /* AWSAutoScalingResources.m */; }; BDC91C391ABBA05600F74D49 /* AWSAutoScaling.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDB5DF371AB37AA9002DD224 /* AWSAutoScaling.h */; }; BDC91C3A1ABBA05600F74D49 /* AWSAutoScalingModel.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDB5DF391AB37AA9002DD224 /* AWSAutoScalingModel.h */; }; + BDD876A01B4B4062009268C7 /* libOCMock.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDD8769F1B4B4062009268C7 /* libOCMock.a */; }; + BDF125651B45BF3000DFBFEC /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0000481AB8E119004496EF /* AWSTestUtility.m */; }; + BDF125661B45BF3000DFBFEC /* AWSGeneralAutoScalingTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFD21AB8C353004496EF /* AWSGeneralAutoScalingTests.m */; }; + BDF125681B45BF3000DFBFEC /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE532551B03D1A8002CED62 /* libz.dylib */; }; + BDF125691B45BF3000DFBFEC /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BD00FF361AB8B683004496EF /* libAWSCore.a */; }; + BDF1256A1B45BF3000DFBFEC /* libAWSAutoScaling.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDB5DF1C1AB37A79002DD224 /* libAWSAutoScaling.a */; }; CEE532561B03D1A8002CED62 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE532551B03D1A8002CED62 /* libz.dylib */; }; CEE7DE671AC1E0C30095C4B7 /* AWSAutoScalingService.h in Headers */ = {isa = PBXBuildFile; fileRef = CEE7DE661AC1E0C30095C4B7 /* AWSAutoScalingService.h */; settings = {ATTRIBUTES = (Public, ); }; }; /* End PBXBuildFile section */ @@ -34,6 +39,13 @@ remoteGlobalIDString = BDB5DF1B1AB37A79002DD224; remoteInfo = AutoScaling; }; + BDF125621B45BF3000DFBFEC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BDB5DF141AB37A79002DD224 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BDB5DF1B1AB37A79002DD224; + remoteInfo = AutoScaling; + }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -52,9 +64,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 1DA626D8A5FE1C2560C78C72 /* Pods-AWSAutoScaling.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSAutoScaling.release.xcconfig"; path = "Pods/Target Support Files/Pods-AWSAutoScaling/Pods-AWSAutoScaling.release.xcconfig"; sourceTree = ""; }; - 2177028105C432CA525715AC /* libPods-AWSAutoScaling.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AWSAutoScaling.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 3AFFABC8223BFC112AFCFB4E /* Pods-AWSAutoScaling.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSAutoScaling.debug.xcconfig"; path = "Pods/Target Support Files/Pods-AWSAutoScaling/Pods-AWSAutoScaling.debug.xcconfig"; sourceTree = ""; }; BD00002F1AB8C4D2004496EF /* credentials.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = credentials.json; path = AWSCoreTests/credentials.json; sourceTree = SOURCE_ROOT; }; BD0000471AB8E119004496EF /* AWSTestUtility.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AWSTestUtility.h; path = AWSCoreTests/AWSTestUtility.h; sourceTree = SOURCE_ROOT; }; BD0000481AB8E119004496EF /* AWSTestUtility.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AWSTestUtility.m; path = AWSCoreTests/AWSTestUtility.m; sourceTree = SOURCE_ROOT; }; @@ -70,6 +79,8 @@ BDB5DF3A1AB37AA9002DD224 /* AWSAutoScalingModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AWSAutoScalingModel.m; path = ../AWSAutoScaling/AWSAutoScalingModel.m; sourceTree = ""; }; BDB73D651B1D3E6D00717559 /* AWSAutoScalingResources.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AWSAutoScalingResources.h; sourceTree = ""; }; BDB73D661B1D3E6D00717559 /* AWSAutoScalingResources.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSAutoScalingResources.m; sourceTree = ""; }; + BDD8769F1B4B4062009268C7 /* libOCMock.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libOCMock.a; path = AWSCoreTests/OCMock/libOCMock.a; sourceTree = ""; }; + BDF125701B45BF3000DFBFEC /* AWSAutoScalingUnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AWSAutoScalingUnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; CEE532551B03D1A8002CED62 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; CEE7DE661AC1E0C30095C4B7 /* AWSAutoScalingService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AWSAutoScalingService.h; path = ../AWSAutoScaling/AWSAutoScalingService.h; sourceTree = ""; }; /* End PBXFileReference section */ @@ -92,6 +103,17 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + BDF125671B45BF3000DFBFEC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BDD876A01B4B4062009268C7 /* libOCMock.a in Frameworks */, + BDF125681B45BF3000DFBFEC /* libz.dylib in Frameworks */, + BDF125691B45BF3000DFBFEC /* libAWSCore.a in Frameworks */, + BDF1256A1B45BF3000DFBFEC /* libAWSAutoScaling.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -101,7 +123,6 @@ BDB5DF1E1AB37A79002DD224 /* AWSAutoScaling */, BDB5DF2B1AB37A7A002DD224 /* AWSAutoScalingTests */, FC5D4AEC7530694251AE5CAE /* Frameworks */, - EBF92C517A7A1B79B7969CD1 /* Pods */, BDB5DF1D1AB37A79002DD224 /* Products */, ); sourceTree = ""; @@ -111,6 +132,7 @@ children = ( BDB5DF1C1AB37A79002DD224 /* libAWSAutoScaling.a */, BDB5DF271AB37A7A002DD224 /* AWSAutoScalingTests.xctest */, + BDF125701B45BF3000DFBFEC /* AWSAutoScalingUnitTests.xctest */, ); name = Products; sourceTree = ""; @@ -150,21 +172,12 @@ name = "Supporting Files"; sourceTree = ""; }; - EBF92C517A7A1B79B7969CD1 /* Pods */ = { - isa = PBXGroup; - children = ( - 3AFFABC8223BFC112AFCFB4E /* Pods-AWSAutoScaling.debug.xcconfig */, - 1DA626D8A5FE1C2560C78C72 /* Pods-AWSAutoScaling.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; FC5D4AEC7530694251AE5CAE /* Frameworks */ = { isa = PBXGroup; children = ( + BDD8769F1B4B4062009268C7 /* libOCMock.a */, CEE532551B03D1A8002CED62 /* libz.dylib */, BD00FF361AB8B683004496EF /* libAWSCore.a */, - 2177028105C432CA525715AC /* libPods-AWSAutoScaling.a */, ); name = Frameworks; sourceTree = ""; @@ -222,6 +235,24 @@ productReference = BDB5DF271AB37A7A002DD224 /* AWSAutoScalingTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; + BDF125601B45BF3000DFBFEC /* AWSAutoScalingUnitTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = BDF1256D1B45BF3000DFBFEC /* Build configuration list for PBXNativeTarget "AWSAutoScalingUnitTests" */; + buildPhases = ( + BDF125631B45BF3000DFBFEC /* Sources */, + BDF125671B45BF3000DFBFEC /* Frameworks */, + BDF1256B1B45BF3000DFBFEC /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + BDF125611B45BF3000DFBFEC /* PBXTargetDependency */, + ); + name = AWSAutoScalingUnitTests; + productName = AutoScalingTests; + productReference = BDF125701B45BF3000DFBFEC /* AWSAutoScalingUnitTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -253,6 +284,7 @@ targets = ( BDB5DF1B1AB37A79002DD224 /* AWSAutoScaling */, BDB5DF261AB37A7A002DD224 /* AWSAutoScalingTests */, + BDF125601B45BF3000DFBFEC /* AWSAutoScalingUnitTests */, ); }; /* End PBXProject section */ @@ -266,6 +298,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + BDF1256B1B45BF3000DFBFEC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -285,7 +324,15 @@ files = ( BD00FFD51AB8C353004496EF /* AWSAutoScalingTests.m in Sources */, BD0000491AB8E119004496EF /* AWSTestUtility.m in Sources */, - BD00FFD41AB8C353004496EF /* AWSGeneralAutoScalingTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BDF125631B45BF3000DFBFEC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BDF125651B45BF3000DFBFEC /* AWSTestUtility.m in Sources */, + BDF125661B45BF3000DFBFEC /* AWSGeneralAutoScalingTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -297,6 +344,11 @@ target = BDB5DF1B1AB37A79002DD224 /* AWSAutoScaling */; targetProxy = BDB5DF291AB37A7A002DD224 /* PBXContainerItemProxy */; }; + BDF125611B45BF3000DFBFEC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BDB5DF1B1AB37A79002DD224 /* AWSAutoScaling */; + targetProxy = BDF125621B45BF3000DFBFEC /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ @@ -304,6 +356,10 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -345,6 +401,10 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -417,6 +477,7 @@ ); INFOPLIST_FILE = AWSAutoScalingTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = AWSAutoScalingTests; }; name = Debug; @@ -432,10 +493,69 @@ GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; INFOPLIST_FILE = AWSAutoScalingTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = AWSAutoScalingTests; }; name = Release; }; + BDF1256E1B45BF3000DFBFEC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = AWSAutoScalingTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSAutoScalingUnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Debug; + }; + BDF1256F1B45BF3000DFBFEC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + INFOPLIST_FILE = AWSAutoScalingTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSAutoScalingUnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -466,6 +586,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + BDF1256D1B45BF3000DFBFEC /* Build configuration list for PBXNativeTarget "AWSAutoScalingUnitTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BDF1256E1B45BF3000DFBFEC /* Debug */, + BDF1256F1B45BF3000DFBFEC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = BDB5DF141AB37A79002DD224 /* Project object */; diff --git a/AWSAutoScaling.xcodeproj/xcshareddata/xcschemes/AWSAutoScaling.xcscheme b/AWSAutoScaling.xcodeproj/xcshareddata/xcschemes/AWSAutoScaling.xcscheme new file mode 100644 index 00000000000..3633ae43512 --- /dev/null +++ b/AWSAutoScaling.xcodeproj/xcshareddata/xcschemes/AWSAutoScaling.xcscheme @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AWSAutoScaling/AWSAutoScalingService.m b/AWSAutoScaling/AWSAutoScalingService.m index c8ab44a43c0..c80ab4ab0ab 100644 --- a/AWSAutoScaling/AWSAutoScalingService.m +++ b/AWSAutoScaling/AWSAutoScalingService.m @@ -221,7 +221,6 @@ - (instancetype)initWithConfiguration:(AWSServiceConfiguration *)configuration { _configuration.baseURL = _configuration.endpoint.URL; _configuration.requestInterceptors = @[[AWSNetworkingRequestInterceptor new], signer]; _configuration.retryHandler = [[AWSAutoScalingRequestRetryHandler alloc] initWithMaximumRetryCount:_configuration.maxRetryCount]; - _configuration.headers = @{@"Host" : _configuration.endpoint.hostName}; _networking = [[AWSNetworking alloc] initWithConfiguration:_configuration]; } diff --git a/AWSAutoScalingTests/AWSAutoScalingTests.m b/AWSAutoScalingTests/AWSAutoScalingTests.m index 18bd790af4b..9459588bac8 100644 --- a/AWSAutoScalingTests/AWSAutoScalingTests.m +++ b/AWSAutoScalingTests/AWSAutoScalingTests.m @@ -13,6 +13,7 @@ permissions and limitations under the License. */ +#import #import #import "AWSAutoScaling.h" #import "AWSTestUtility.h" diff --git a/AWSAutoScalingTests/AWSGeneralAutoScalingTests.m b/AWSAutoScalingTests/AWSGeneralAutoScalingTests.m index d4a674f94ab..6f91c99e1aa 100644 --- a/AWSAutoScalingTests/AWSGeneralAutoScalingTests.m +++ b/AWSAutoScalingTests/AWSGeneralAutoScalingTests.m @@ -15,9 +15,12 @@ #import #import +#import #import "AWSTestUtility.h" #import "AWSAutoScaling.h" +static id mockNetworking = nil; + @interface AWSGeneralAutoScalingTests : XCTestCase @end @@ -26,7 +29,11 @@ @implementation AWSGeneralAutoScalingTests - (void)setUp { [super setUp]; - [AWSTestUtility setupCognitoCredentialsProvider]; + [AWSTestUtility setupFakeCognitoCredentialsProvider]; + + mockNetworking = OCMClassMock([AWSNetworking class]); + AWSTask *errorTask = [AWSTask taskWithError:[NSError errorWithDomain:@"OCMockExpectedNetworkingError" code:8848 userInfo:nil]]; + OCMStub([mockNetworking sendRequest:[OCMArg isKindOfClass:[AWSNetworkingRequest class]]]).andReturn(errorTask); } - (void)tearDown { @@ -55,13 +62,20 @@ - (void)testAttachInstances { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] attachInstances:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -70,13 +84,20 @@ - (void)testCompleteLifecycleAction { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] completeLifecycleAction:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -85,13 +106,20 @@ - (void)testCreateAutoScalingGroup { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] createAutoScalingGroup:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -100,13 +128,20 @@ - (void)testCreateLaunchConfiguration { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] createLaunchConfiguration:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -115,13 +150,20 @@ - (void)testCreateOrUpdateTags { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] createOrUpdateTags:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -130,13 +172,20 @@ - (void)testDeleteAutoScalingGroup { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] deleteAutoScalingGroup:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -145,13 +194,20 @@ - (void)testDeleteLaunchConfiguration { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] deleteLaunchConfiguration:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -160,13 +216,20 @@ - (void)testDeleteLifecycleHook { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] deleteLifecycleHook:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -175,13 +238,20 @@ - (void)testDeleteNotificationConfiguration { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] deleteNotificationConfiguration:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -190,13 +260,20 @@ - (void)testDeletePolicy { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] deletePolicy:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -205,13 +282,20 @@ - (void)testDeleteScheduledAction { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] deleteScheduledAction:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -220,13 +304,20 @@ - (void)testDeleteTags { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] deleteTags:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -235,13 +326,20 @@ - (void)testDescribeAccountLimits { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] describeAccountLimits:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -250,13 +348,20 @@ - (void)testDescribeAdjustmentTypes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] describeAdjustmentTypes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -265,13 +370,20 @@ - (void)testDescribeAutoScalingGroups { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] describeAutoScalingGroups:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -280,13 +392,20 @@ - (void)testDescribeAutoScalingInstances { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] describeAutoScalingInstances:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -295,13 +414,20 @@ - (void)testDescribeAutoScalingNotificationTypes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] describeAutoScalingNotificationTypes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -310,13 +436,20 @@ - (void)testDescribeLaunchConfigurations { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] describeLaunchConfigurations:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -325,13 +458,20 @@ - (void)testDescribeLifecycleHookTypes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] describeLifecycleHookTypes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -340,13 +480,20 @@ - (void)testDescribeLifecycleHooks { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] describeLifecycleHooks:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -355,13 +502,20 @@ - (void)testDescribeMetricCollectionTypes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] describeMetricCollectionTypes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -370,13 +524,20 @@ - (void)testDescribeNotificationConfigurations { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] describeNotificationConfigurations:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -385,13 +546,20 @@ - (void)testDescribePolicies { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] describePolicies:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -400,13 +568,20 @@ - (void)testDescribeScalingActivities { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] describeScalingActivities:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -415,13 +590,20 @@ - (void)testDescribeScalingProcessTypes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] describeScalingProcessTypes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -430,13 +612,20 @@ - (void)testDescribeScheduledActions { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] describeScheduledActions:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -445,13 +634,20 @@ - (void)testDescribeTags { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] describeTags:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -460,13 +656,20 @@ - (void)testDescribeTerminationPolicyTypes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] describeTerminationPolicyTypes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -475,13 +678,20 @@ - (void)testDetachInstances { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] detachInstances:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -490,13 +700,20 @@ - (void)testDisableMetricsCollection { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] disableMetricsCollection:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -505,13 +722,20 @@ - (void)testEnableMetricsCollection { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] enableMetricsCollection:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -520,13 +744,20 @@ - (void)testEnterStandby { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] enterStandby:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -535,13 +766,20 @@ - (void)testExecutePolicy { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] executePolicy:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -550,13 +788,20 @@ - (void)testExitStandby { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] exitStandby:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -565,13 +810,20 @@ - (void)testPutLifecycleHook { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] putLifecycleHook:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -580,13 +832,20 @@ - (void)testPutNotificationConfiguration { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] putNotificationConfiguration:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -595,13 +854,20 @@ - (void)testPutScalingPolicy { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] putScalingPolicy:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -610,13 +876,20 @@ - (void)testPutScheduledUpdateGroupAction { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] putScheduledUpdateGroupAction:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -625,13 +898,20 @@ - (void)testRecordLifecycleActionHeartbeat { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] recordLifecycleActionHeartbeat:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -640,13 +920,20 @@ - (void)testResumeProcesses { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] resumeProcesses:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -655,13 +942,20 @@ - (void)testSetDesiredCapacity { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] setDesiredCapacity:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -670,13 +964,20 @@ - (void)testSetInstanceHealth { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] setInstanceHealth:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -685,13 +986,20 @@ - (void)testSuspendProcesses { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] suspendProcesses:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -700,13 +1008,20 @@ - (void)testTerminateInstanceInAutoScalingGroup { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] terminateInstanceInAutoScalingGroup:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } @@ -715,13 +1030,20 @@ - (void)testUpdateAutoScalingGroup { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSAutoScaling registerAutoScalingWithConfiguration:configuration forKey:key]; + AWSAutoScaling *awsClient = [AWSAutoScaling AutoScalingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSAutoScaling AutoScalingForKey:key] updateAutoScalingGroup:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSAutoScaling removeAutoScalingForKey:key]; } diff --git a/AWSCloudWatch.podspec b/AWSCloudWatch.podspec index 206c8bc4f75..23025905744 100644 --- a/AWSCloudWatch.podspec +++ b/AWSCloudWatch.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = 'AWSCloudWatch' - s.version = '2.2.0' + s.version = '2.2.1' s.summary = 'Amazon Web Services SDK for iOS.' s.description = 'The AWS SDK for iOS provides a library, code samples, and documentation for developers to build connected mobile applications using AWS.' @@ -13,7 +13,7 @@ Pod::Spec.new do |s| s.source = { :git => 'https://github.com/aws/aws-sdk-ios.git', :tag => s.version} s.requires_arc = true - s.dependency 'AWSCore', '2.2.0' + s.dependency 'AWSCore', '2.2.1' s.source_files = 'AWSCloudWatch/*.{h,m}' end diff --git a/AWSCloudWatch.xcodeproj/project.pbxproj b/AWSCloudWatch.xcodeproj/project.pbxproj index 05983e7a577..d8652c06251 100644 --- a/AWSCloudWatch.xcodeproj/project.pbxproj +++ b/AWSCloudWatch.xcodeproj/project.pbxproj @@ -15,6 +15,12 @@ BDB73D6C1B1D3E8400717559 /* AWSCloudWatchResources.m in Sources */ = {isa = PBXBuildFile; fileRef = BDB73D6A1B1D3E8400717559 /* AWSCloudWatchResources.m */; }; BDC91C5B1ABBA0F400F74D49 /* AWSCloudWatch.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDF559141AB3747F0067F4F1 /* AWSCloudWatch.h */; }; BDC91C5C1ABBA0F400F74D49 /* AWSCloudWatchModel.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDF559161AB3747F0067F4F1 /* AWSCloudWatchModel.h */; }; + BDD876A21B4B5247009268C7 /* libOCMock.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDD876A11B4B5247009268C7 /* libOCMock.a */; }; + BDF125761B45BFE500DFBFEC /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0000661AB8E21B004496EF /* AWSTestUtility.m */; }; + BDF125771B45BFE500DFBFEC /* AWSGeneralCloudWatchTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF83EDA1AD3521A00620E1C /* AWSGeneralCloudWatchTests.m */; }; + BDF1257A1B45BFE500DFBFEC /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE532571B03D332002CED62 /* libz.dylib */; }; + BDF1257B1B45BFE500DFBFEC /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BD00FF4A1AB8B700004496EF /* libAWSCore.a */; }; + BDF1257C1B45BFE500DFBFEC /* libAWSCloudWatch.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDF558F81AB374250067F4F1 /* libAWSCloudWatch.a */; }; BDF559041AB374250067F4F1 /* libAWSCloudWatch.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDF558F81AB374250067F4F1 /* libAWSCloudWatch.a */; }; BDF5591A1AB3747F0067F4F1 /* AWSCloudWatch.h in Headers */ = {isa = PBXBuildFile; fileRef = BDF559141AB3747F0067F4F1 /* AWSCloudWatch.h */; settings = {ATTRIBUTES = (Public, ); }; }; BDF5591B1AB3747F0067F4F1 /* AWSCloudWatchService.m in Sources */ = {isa = PBXBuildFile; fileRef = BDF559151AB3747F0067F4F1 /* AWSCloudWatchService.m */; }; @@ -23,10 +29,16 @@ CEE532581B03D332002CED62 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE532571B03D332002CED62 /* libz.dylib */; }; CEE7DE691AC1E1330095C4B7 /* AWSCloudWatchService.h in Headers */ = {isa = PBXBuildFile; fileRef = CEE7DE681AC1E1330095C4B7 /* AWSCloudWatchService.h */; settings = {ATTRIBUTES = (Public, ); }; }; CEF83EDC1AD3521A00620E1C /* AWSCloudWatchTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF83ED91AD3521A00620E1C /* AWSCloudWatchTests.m */; }; - CEF83EDD1AD3521A00620E1C /* AWSGeneralCloudWatchTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF83EDA1AD3521A00620E1C /* AWSGeneralCloudWatchTests.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + BDF125741B45BFE500DFBFEC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BDF558F01AB374250067F4F1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BDF558F71AB374250067F4F1; + remoteInfo = CloudWatch; + }; BDF559051AB374250067F4F1 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BDF558F01AB374250067F4F1 /* Project object */; @@ -52,14 +64,14 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 12547097B9F79B38370F990A /* Pods-AWSCloudWatch.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSCloudWatch.debug.xcconfig"; path = "Pods/Target Support Files/Pods-AWSCloudWatch/Pods-AWSCloudWatch.debug.xcconfig"; sourceTree = ""; }; - 86A2D62682440E97BC5FE56B /* libPods-AWSCloudWatch.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AWSCloudWatch.a"; sourceTree = BUILT_PRODUCTS_DIR; }; BD0000431AB8C57A004496EF /* credentials.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = credentials.json; path = AWSCoreTests/credentials.json; sourceTree = SOURCE_ROOT; }; BD0000651AB8E21B004496EF /* AWSTestUtility.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AWSTestUtility.h; path = AWSCoreTests/AWSTestUtility.h; sourceTree = SOURCE_ROOT; }; BD0000661AB8E21B004496EF /* AWSTestUtility.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AWSTestUtility.m; path = AWSCoreTests/AWSTestUtility.m; sourceTree = SOURCE_ROOT; }; BD00FF4A1AB8B700004496EF /* libAWSCore.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libAWSCore.a; path = "build/Debug-iphoneos/libAWSCore.a"; sourceTree = ""; }; BDB73D691B1D3E8400717559 /* AWSCloudWatchResources.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AWSCloudWatchResources.h; sourceTree = ""; }; BDB73D6A1B1D3E8400717559 /* AWSCloudWatchResources.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSCloudWatchResources.m; sourceTree = ""; }; + BDD876A11B4B5247009268C7 /* libOCMock.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libOCMock.a; path = AWSCoreTests/OCMock/libOCMock.a; sourceTree = ""; }; + BDF125821B45BFE500DFBFEC /* AWSCloudWatchUnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AWSCloudWatchUnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; BDF558F81AB374250067F4F1 /* libAWSCloudWatch.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libAWSCloudWatch.a; sourceTree = BUILT_PRODUCTS_DIR; }; BDF559031AB374250067F4F1 /* AWSCloudWatchTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AWSCloudWatchTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; BDF559141AB3747F0067F4F1 /* AWSCloudWatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AWSCloudWatch.h; path = ../AWSCloudWatch/AWSCloudWatch.h; sourceTree = ""; }; @@ -71,10 +83,20 @@ CEF83ED91AD3521A00620E1C /* AWSCloudWatchTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AWSCloudWatchTests.m; path = ../AWSCloudWatchTests/AWSCloudWatchTests.m; sourceTree = ""; }; CEF83EDA1AD3521A00620E1C /* AWSGeneralCloudWatchTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AWSGeneralCloudWatchTests.m; path = ../AWSCloudWatchTests/AWSGeneralCloudWatchTests.m; sourceTree = ""; }; CEF83EDB1AD3521A00620E1C /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - DDE2D6D6AC17259133A42839 /* Pods-AWSCloudWatch.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSCloudWatch.release.xcconfig"; path = "Pods/Target Support Files/Pods-AWSCloudWatch/Pods-AWSCloudWatch.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + BDF125791B45BFE500DFBFEC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BDD876A21B4B5247009268C7 /* libOCMock.a in Frameworks */, + BDF1257A1B45BFE500DFBFEC /* libz.dylib in Frameworks */, + BDF1257B1B45BFE500DFBFEC /* libAWSCore.a in Frameworks */, + BDF1257C1B45BFE500DFBFEC /* libAWSCloudWatch.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; BDF558F51AB374250067F4F1 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -98,29 +120,19 @@ 2953C160B39FCEC4E052451B /* Frameworks */ = { isa = PBXGroup; children = ( + BDD876A11B4B5247009268C7 /* libOCMock.a */, CEE532571B03D332002CED62 /* libz.dylib */, BD00FF4A1AB8B700004496EF /* libAWSCore.a */, - 86A2D62682440E97BC5FE56B /* libPods-AWSCloudWatch.a */, ); name = Frameworks; sourceTree = ""; }; - A797C571EB41EF4D6BB1A9B2 /* Pods */ = { - isa = PBXGroup; - children = ( - 12547097B9F79B38370F990A /* Pods-AWSCloudWatch.debug.xcconfig */, - DDE2D6D6AC17259133A42839 /* Pods-AWSCloudWatch.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; BDF558EF1AB374250067F4F1 = { isa = PBXGroup; children = ( BDF558FA1AB374250067F4F1 /* AWSCloudWatch */, BDF559071AB374250067F4F1 /* AWSCloudWatchTests */, BDF558F91AB374250067F4F1 /* Products */, - A797C571EB41EF4D6BB1A9B2 /* Pods */, 2953C160B39FCEC4E052451B /* Frameworks */, ); sourceTree = ""; @@ -130,6 +142,7 @@ children = ( BDF558F81AB374250067F4F1 /* libAWSCloudWatch.a */, BDF559031AB374250067F4F1 /* AWSCloudWatchTests.xctest */, + BDF125821B45BFE500DFBFEC /* AWSCloudWatchUnitTests.xctest */, ); name = Products; sourceTree = ""; @@ -186,6 +199,24 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ + BDF125721B45BFE500DFBFEC /* AWSCloudWatchUnitTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = BDF1257F1B45BFE500DFBFEC /* Build configuration list for PBXNativeTarget "AWSCloudWatchUnitTests" */; + buildPhases = ( + BDF125751B45BFE500DFBFEC /* Sources */, + BDF125791B45BFE500DFBFEC /* Frameworks */, + BDF1257D1B45BFE500DFBFEC /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + BDF125731B45BFE500DFBFEC /* PBXTargetDependency */, + ); + name = AWSCloudWatchUnitTests; + productName = CloudWatchTests; + productReference = BDF125821B45BFE500DFBFEC /* AWSCloudWatchUnitTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; BDF558F71AB374250067F4F1 /* AWSCloudWatch */ = { isa = PBXNativeTarget; buildConfigurationList = BDF5590C1AB374250067F4F1 /* Build configuration list for PBXNativeTarget "AWSCloudWatch" */; @@ -253,11 +284,19 @@ targets = ( BDF558F71AB374250067F4F1 /* AWSCloudWatch */, BDF559021AB374250067F4F1 /* AWSCloudWatchTests */, + BDF125721B45BFE500DFBFEC /* AWSCloudWatchUnitTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + BDF1257D1B45BFE500DFBFEC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; BDF559011AB374250067F4F1 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -269,6 +308,15 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + BDF125751B45BFE500DFBFEC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BDF125761B45BFE500DFBFEC /* AWSTestUtility.m in Sources */, + BDF125771B45BFE500DFBFEC /* AWSGeneralCloudWatchTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; BDF558F41AB374250067F4F1 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -284,7 +332,6 @@ buildActionMask = 2147483647; files = ( BD0000671AB8E21B004496EF /* AWSTestUtility.m in Sources */, - CEF83EDD1AD3521A00620E1C /* AWSGeneralCloudWatchTests.m in Sources */, CEF83EDC1AD3521A00620E1C /* AWSCloudWatchTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -292,6 +339,11 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + BDF125731B45BFE500DFBFEC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BDF558F71AB374250067F4F1 /* AWSCloudWatch */; + targetProxy = BDF125741B45BFE500DFBFEC /* PBXContainerItemProxy */; + }; BDF559061AB374250067F4F1 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = BDF558F71AB374250067F4F1 /* AWSCloudWatch */; @@ -300,10 +352,72 @@ /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ + BDF125801B45BFE500DFBFEC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = AWSCloudWatchTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSCloudWatchUnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Debug; + }; + BDF125811B45BFE500DFBFEC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + INFOPLIST_FILE = AWSCloudWatchTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSCloudWatchUnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Release; + }; BDF5590A1AB374250067F4F1 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -345,6 +459,10 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -419,6 +537,7 @@ ); INFOPLIST_FILE = AWSCloudWatchTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = AWSCloudWatchTests; }; name = Debug; @@ -434,6 +553,7 @@ GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; INFOPLIST_FILE = AWSCloudWatchTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = AWSCloudWatchTests; }; name = Release; @@ -441,6 +561,15 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + BDF1257F1B45BFE500DFBFEC /* Build configuration list for PBXNativeTarget "AWSCloudWatchUnitTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BDF125801B45BFE500DFBFEC /* Debug */, + BDF125811B45BFE500DFBFEC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; BDF558F31AB374250067F4F1 /* Build configuration list for PBXProject "AWSCloudWatch" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/AWSCloudWatch.xcodeproj/xcshareddata/xcschemes/AWSCloudWatch.xcscheme b/AWSCloudWatch.xcodeproj/xcshareddata/xcschemes/AWSCloudWatch.xcscheme new file mode 100644 index 00000000000..84d23ea010f --- /dev/null +++ b/AWSCloudWatch.xcodeproj/xcshareddata/xcschemes/AWSCloudWatch.xcscheme @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AWSCloudWatch/AWSCloudWatchService.m b/AWSCloudWatch/AWSCloudWatchService.m index a0ed217567d..4164ea3c92f 100644 --- a/AWSCloudWatch/AWSCloudWatchService.m +++ b/AWSCloudWatch/AWSCloudWatchService.m @@ -225,7 +225,6 @@ - (instancetype)initWithConfiguration:(AWSServiceConfiguration *)configuration { _configuration.baseURL = _configuration.endpoint.URL; _configuration.requestInterceptors = @[[AWSNetworkingRequestInterceptor new], signer]; _configuration.retryHandler = [[AWSCloudWatchRequestRetryHandler alloc] initWithMaximumRetryCount:_configuration.maxRetryCount]; - _configuration.headers = @{@"Host" : _configuration.endpoint.hostName}; _networking = [[AWSNetworking alloc] initWithConfiguration:_configuration]; } diff --git a/AWSCloudWatchTests/AWSCloudWatchTests.m b/AWSCloudWatchTests/AWSCloudWatchTests.m index 3f8d2610a95..8ad1b8d2049 100644 --- a/AWSCloudWatchTests/AWSCloudWatchTests.m +++ b/AWSCloudWatchTests/AWSCloudWatchTests.m @@ -13,6 +13,7 @@ permissions and limitations under the License. */ +#import #import #import "AWSCloudWatch.h" #import "AWSTestUtility.h" diff --git a/AWSCloudWatchTests/AWSGeneralCloudWatchTests.m b/AWSCloudWatchTests/AWSGeneralCloudWatchTests.m index 431a533d146..9e9de603bde 100644 --- a/AWSCloudWatchTests/AWSGeneralCloudWatchTests.m +++ b/AWSCloudWatchTests/AWSGeneralCloudWatchTests.m @@ -15,9 +15,12 @@ #import #import +#import #import "AWSTestUtility.h" #import "AWSCloudWatch.h" +static id mockNetworking = nil; + @interface AWSGeneralCloudWatchTests : XCTestCase @end @@ -26,7 +29,11 @@ @implementation AWSGeneralCloudWatchTests - (void)setUp { [super setUp]; - [AWSTestUtility setupCognitoCredentialsProvider]; + [AWSTestUtility setupFakeCognitoCredentialsProvider]; + + mockNetworking = OCMClassMock([AWSNetworking class]); + AWSTask *errorTask = [AWSTask taskWithError:[NSError errorWithDomain:@"OCMockExpectedNetworkingError" code:8848 userInfo:nil]]; + OCMStub([mockNetworking sendRequest:[OCMArg isKindOfClass:[AWSNetworkingRequest class]]]).andReturn(errorTask); } - (void)tearDown { @@ -55,13 +62,20 @@ - (void)testDeleteAlarms { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCloudWatch registerCloudWatchWithConfiguration:configuration forKey:key]; + AWSCloudWatch *awsClient = [AWSCloudWatch CloudWatchForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCloudWatch CloudWatchForKey:key] deleteAlarms:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCloudWatch removeCloudWatchForKey:key]; } @@ -70,13 +84,20 @@ - (void)testDescribeAlarmHistory { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCloudWatch registerCloudWatchWithConfiguration:configuration forKey:key]; + AWSCloudWatch *awsClient = [AWSCloudWatch CloudWatchForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCloudWatch CloudWatchForKey:key] describeAlarmHistory:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCloudWatch removeCloudWatchForKey:key]; } @@ -85,13 +106,20 @@ - (void)testDescribeAlarms { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCloudWatch registerCloudWatchWithConfiguration:configuration forKey:key]; + AWSCloudWatch *awsClient = [AWSCloudWatch CloudWatchForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCloudWatch CloudWatchForKey:key] describeAlarms:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCloudWatch removeCloudWatchForKey:key]; } @@ -100,13 +128,20 @@ - (void)testDescribeAlarmsForMetric { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCloudWatch registerCloudWatchWithConfiguration:configuration forKey:key]; + AWSCloudWatch *awsClient = [AWSCloudWatch CloudWatchForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCloudWatch CloudWatchForKey:key] describeAlarmsForMetric:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCloudWatch removeCloudWatchForKey:key]; } @@ -115,13 +150,20 @@ - (void)testDisableAlarmActions { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCloudWatch registerCloudWatchWithConfiguration:configuration forKey:key]; + AWSCloudWatch *awsClient = [AWSCloudWatch CloudWatchForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCloudWatch CloudWatchForKey:key] disableAlarmActions:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCloudWatch removeCloudWatchForKey:key]; } @@ -130,13 +172,20 @@ - (void)testEnableAlarmActions { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCloudWatch registerCloudWatchWithConfiguration:configuration forKey:key]; + AWSCloudWatch *awsClient = [AWSCloudWatch CloudWatchForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCloudWatch CloudWatchForKey:key] enableAlarmActions:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCloudWatch removeCloudWatchForKey:key]; } @@ -145,13 +194,20 @@ - (void)testGetMetricStatistics { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCloudWatch registerCloudWatchWithConfiguration:configuration forKey:key]; + AWSCloudWatch *awsClient = [AWSCloudWatch CloudWatchForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCloudWatch CloudWatchForKey:key] getMetricStatistics:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCloudWatch removeCloudWatchForKey:key]; } @@ -160,13 +216,20 @@ - (void)testListMetrics { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCloudWatch registerCloudWatchWithConfiguration:configuration forKey:key]; + AWSCloudWatch *awsClient = [AWSCloudWatch CloudWatchForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCloudWatch CloudWatchForKey:key] listMetrics:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCloudWatch removeCloudWatchForKey:key]; } @@ -175,13 +238,20 @@ - (void)testPutMetricAlarm { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCloudWatch registerCloudWatchWithConfiguration:configuration forKey:key]; + AWSCloudWatch *awsClient = [AWSCloudWatch CloudWatchForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCloudWatch CloudWatchForKey:key] putMetricAlarm:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCloudWatch removeCloudWatchForKey:key]; } @@ -190,13 +260,20 @@ - (void)testPutMetricData { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCloudWatch registerCloudWatchWithConfiguration:configuration forKey:key]; + AWSCloudWatch *awsClient = [AWSCloudWatch CloudWatchForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCloudWatch CloudWatchForKey:key] putMetricData:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCloudWatch removeCloudWatchForKey:key]; } @@ -205,13 +282,20 @@ - (void)testSetAlarmState { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCloudWatch registerCloudWatchWithConfiguration:configuration forKey:key]; + AWSCloudWatch *awsClient = [AWSCloudWatch CloudWatchForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCloudWatch CloudWatchForKey:key] setAlarmState:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCloudWatch removeCloudWatchForKey:key]; } diff --git a/AWSCore.podspec b/AWSCore.podspec index b56c1933796..8d90b053da7 100644 --- a/AWSCore.podspec +++ b/AWSCore.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = 'AWSCore' - s.version = '2.2.0' + s.version = '2.2.1' s.summary = 'Amazon Web Services SDK for iOS.' s.description = 'The AWS SDK for iOS provides a library, code samples, and documentation for developers to build connected mobile applications using AWS.' @@ -17,4 +17,5 @@ Pod::Spec.new do |s| s.requires_arc = true s.source_files = 'AWSCore/*.{h,m}', 'AWSCore/**/*.{h,m}' + s.private_header_files = 'AWSCore/FMDB/**/*.h', 'AWSCore/GZIP/**/*.h', 'AWSCore/Reachability/**/*.h', 'AWSCore/TMCache/**/*.h', 'AWSCore/UICKeyChainStore/**/*.h', 'AWSCore/XMLDictionary/**/*.h', 'AWSCore/XMLWriter/**/*.h' end diff --git a/AWSCore.xcodeproj/project.pbxproj b/AWSCore.xcodeproj/project.pbxproj index 11302edfe5e..eeaba9090fe 100644 --- a/AWSCore.xcodeproj/project.pbxproj +++ b/AWSCore.xcodeproj/project.pbxproj @@ -22,12 +22,9 @@ /* Begin PBXBuildFile section */ BD00001D1AB8C47C004496EF /* AWSSTSTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0000091AB8C47C004496EF /* AWSSTSTests.m */; }; - BD00001F1AB8C47C004496EF /* AWSGeneralSTSTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00000B1AB8C47C004496EF /* AWSGeneralSTSTests.m */; }; - BD0000201AB8C47C004496EF /* AWSGeneralCognitoIdentityTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00000C1AB8C47C004496EF /* AWSGeneralCognitoIdentityTests.m */; }; BD0000211AB8C47C004496EF /* AWSCognitoCredentialsProviderTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00000D1AB8C47C004496EF /* AWSCognitoCredentialsProviderTests.m */; }; BD0000221AB8C47C004496EF /* AWSCognitoIdentityServiceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00000E1AB8C47C004496EF /* AWSCognitoIdentityServiceTests.m */; }; BD0000241AB8C47C004496EF /* AWSClockSkewTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0000101AB8C47C004496EF /* AWSClockSkewTests.m */; }; - BD0000251AB8C47C004496EF /* AWSCoreTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0000111AB8C47C004496EF /* AWSCoreTests.m */; }; BD0000261AB8C47C004496EF /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0000131AB8C47C004496EF /* AWSTestUtility.m */; }; BD0000271AB8C47C004496EF /* ec2-input.json in Resources */ = {isa = PBXBuildFile; fileRef = BD0000141AB8C47C004496EF /* ec2-input.json */; }; BD0000281AB8C47C004496EF /* ec2-output.json in Resources */ = {isa = PBXBuildFile; fileRef = BD0000151AB8C47C004496EF /* ec2-output.json */; }; @@ -38,8 +35,6 @@ BD00002D1AB8C47C004496EF /* rest-xml-input.json in Resources */ = {isa = PBXBuildFile; fileRef = BD00001A1AB8C47C004496EF /* rest-xml-input.json */; }; BD00002E1AB8C47C004496EF /* rest-xml-output.json in Resources */ = {isa = PBXBuildFile; fileRef = BD00001B1AB8C47C004496EF /* rest-xml-output.json */; }; BD0000461AB8C583004496EF /* credentials.json in Resources */ = {isa = PBXBuildFile; fileRef = BD0000451AB8C583004496EF /* credentials.json */; }; - BD0DBBC91AE1BC75003C78C3 /* AWSSerializationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0DBBC81AE1BC75003C78C3 /* AWSSerializationTests.m */; }; - BD4B22C11ADEF1DB00BE550A /* AWSSignatureTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD4B22C01ADEF1DB00BE550A /* AWSSignatureTests.m */; }; BD4B22C51ADF457E00BE550A /* AWSCredentialsProviderTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD4B22C41ADF457E00BE550A /* AWSCredentialsProviderTests.m */; }; BD810F851B2902CA0055E6CA /* AWSReachability.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = CEA589751B02B30D009901A6 /* AWSReachability.h */; }; BD810F861B2902CA0055E6CA /* AWSUICKeyChainStore.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = CEA5896E1B02B192009901A6 /* AWSUICKeyChainStore.h */; }; @@ -69,6 +64,30 @@ BDC91C801ABBA13200F74D49 /* AWSModel.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDF558301AB371AB0067F4F1 /* AWSModel.h */; }; BDC91C811ABBA13200F74D49 /* AWSSynchronizedMutableDictionary.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDF558321AB371AB0067F4F1 /* AWSSynchronizedMutableDictionary.h */; }; BDC91C821ABBA13200F74D49 /* AWSXMLWriter.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDF558351AB371AB0067F4F1 /* AWSXMLWriter.h */; }; + BDD876801B4B1CDF009268C7 /* libOCMock.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDD876751B4B1CDF009268C7 /* libOCMock.a */; }; + BDF1266E1B45C37D00DFBFEC /* AWSServiceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE7C8001ADDEF47007626CE /* AWSServiceTests.m */; }; + BDF1266F1B45C37D00DFBFEC /* AWSCoreTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0000111AB8C47C004496EF /* AWSCoreTests.m */; }; + BDF126701B45C37D00DFBFEC /* AWSGeneralSTSTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00000B1AB8C47C004496EF /* AWSGeneralSTSTests.m */; }; + BDF126711B45C37D00DFBFEC /* AWSSignatureTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD4B22C01ADEF1DB00BE550A /* AWSSignatureTests.m */; }; + BDF126741B45C37D00DFBFEC /* AWSUtilityTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFBD4EA1ADEF199004358F3 /* AWSUtilityTests.m */; }; + BDF126751B45C37D00DFBFEC /* AWSNetworkingTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CE5E04551AD89085002EF47E /* AWSNetworkingTests.m */; }; + BDF126771B45C37D00DFBFEC /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0000131AB8C47C004496EF /* AWSTestUtility.m */; }; + BDF126791B45C37D00DFBFEC /* AWSSerializationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0DBBC81AE1BC75003C78C3 /* AWSSerializationTests.m */; }; + BDF1267A1B45C37D00DFBFEC /* AWSGeneralCognitoIdentityTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00000C1AB8C47C004496EF /* AWSGeneralCognitoIdentityTests.m */; }; + BDF1267D1B45C37D00DFBFEC /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE08A0C91B02B6510000ED1F /* SystemConfiguration.framework */; }; + BDF1267E1B45C37D00DFBFEC /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CEA589681B02B15B009901A6 /* libz.dylib */; }; + BDF1267F1B45C37D00DFBFEC /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CE9358F41B018ADA001CA3CD /* libsqlite3.dylib */; }; + BDF126801B45C37D00DFBFEC /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDF557521AB371490067F4F1 /* libAWSCore.a */; }; + BDF126821B45C37D00DFBFEC /* json-output.json in Resources */ = {isa = PBXBuildFile; fileRef = BD0000171AB8C47C004496EF /* json-output.json */; }; + BDF126831B45C37D00DFBFEC /* ec2-input.json in Resources */ = {isa = PBXBuildFile; fileRef = BD0000141AB8C47C004496EF /* ec2-input.json */; }; + BDF126841B45C37D00DFBFEC /* rest-xml-output.json in Resources */ = {isa = PBXBuildFile; fileRef = BD00001B1AB8C47C004496EF /* rest-xml-output.json */; }; + BDF126851B45C37D00DFBFEC /* rest-json-output.json in Resources */ = {isa = PBXBuildFile; fileRef = CE6397211AC49D4D00459E23 /* rest-json-output.json */; }; + BDF126861B45C37D00DFBFEC /* json-input.json in Resources */ = {isa = PBXBuildFile; fileRef = BD0000161AB8C47C004496EF /* json-input.json */; }; + BDF126871B45C37D00DFBFEC /* query-input.json in Resources */ = {isa = PBXBuildFile; fileRef = BD0000181AB8C47C004496EF /* query-input.json */; }; + BDF126881B45C37D00DFBFEC /* rest-xml-input.json in Resources */ = {isa = PBXBuildFile; fileRef = BD00001A1AB8C47C004496EF /* rest-xml-input.json */; }; + BDF126891B45C37D00DFBFEC /* query-output.json in Resources */ = {isa = PBXBuildFile; fileRef = BD0000191AB8C47C004496EF /* query-output.json */; }; + BDF1268B1B45C37D00DFBFEC /* rest-json-input.json in Resources */ = {isa = PBXBuildFile; fileRef = CE6397201AC49D4D00459E23 /* rest-json-input.json */; }; + BDF1268C1B45C37D00DFBFEC /* ec2-output.json in Resources */ = {isa = PBXBuildFile; fileRef = BD0000151AB8C47C004496EF /* ec2-output.json */; }; BDF5575E1AB371490067F4F1 /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDF557521AB371490067F4F1 /* libAWSCore.a */; }; BDF5576D1AB371950067F4F1 /* AWSCore.h in Headers */ = {isa = PBXBuildFile; fileRef = BDF557551AB371490067F4F1 /* AWSCore.h */; settings = {ATTRIBUTES = (Public, ); }; }; BDF558371AB371AB0067F4F1 /* AWSCredentialsProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = BDF5576F1AB371AB0067F4F1 /* AWSCredentialsProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -152,7 +171,6 @@ CE14DF871B02C7CE00EF6D09 /* AWSmetamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = CE14DF811B02C7CE00EF6D09 /* AWSmetamacros.h */; }; CE14DF8A1B02DE2F00EF6D09 /* AWSFMDatabaseAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = CE14DF881B02DE2F00EF6D09 /* AWSFMDatabaseAdditions.h */; }; CE14DF8B1B02DE2F00EF6D09 /* AWSFMDatabaseAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE14DF891B02DE2F00EF6D09 /* AWSFMDatabaseAdditions.m */; }; - CE5E04561AD89085002EF47E /* AWSNetworkingTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CE5E04551AD89085002EF47E /* AWSNetworkingTests.m */; }; CE6397221AC49D4D00459E23 /* rest-json-input.json in Resources */ = {isa = PBXBuildFile; fileRef = CE6397201AC49D4D00459E23 /* rest-json-input.json */; }; CE6397231AC49D4D00459E23 /* rest-json-output.json in Resources */ = {isa = PBXBuildFile; fileRef = CE6397211AC49D4D00459E23 /* rest-json-output.json */; }; CEA0CA471B0187640061508B /* AWSExecutor.h in Headers */ = {isa = PBXBuildFile; fileRef = CEA0CA3E1B0187640061508B /* AWSExecutor.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -204,13 +222,18 @@ CED823D51AC1E5070091F9D7 /* AWSSTSService.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = CEE7DE601AC1DFB10095C4B7 /* AWSSTSService.h */; }; CED823D61AC1E5170091F9D7 /* AWSCognitoIdentityService.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = CEE7DE621AC1DFEE0095C4B7 /* AWSCognitoIdentityService.h */; }; CEDE75F11ACA1E70002A0D94 /* AWSClientContext.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = CED822011AC486E40017E687 /* AWSClientContext.h */; }; - CEE7C8011ADDEF47007626CE /* AWSServiceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE7C8001ADDEF47007626CE /* AWSServiceTests.m */; }; CEE7DE611AC1DFB10095C4B7 /* AWSSTSService.h in Headers */ = {isa = PBXBuildFile; fileRef = CEE7DE601AC1DFB10095C4B7 /* AWSSTSService.h */; settings = {ATTRIBUTES = (Public, ); }; }; CEE7DE631AC1DFEE0095C4B7 /* AWSCognitoIdentityService.h in Headers */ = {isa = PBXBuildFile; fileRef = CEE7DE621AC1DFEE0095C4B7 /* AWSCognitoIdentityService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CEFBD4EB1ADEF199004358F3 /* AWSUtilityTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFBD4EA1ADEF199004358F3 /* AWSUtilityTests.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + BDF1266C1B45C37D00DFBFEC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BDF5574A1AB371480067F4F1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BDF557511AB371480067F4F1; + remoteInfo = AWSCore; + }; BDF5575F1AB371490067F4F1 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BDF5574A1AB371480067F4F1 /* Project object */; @@ -305,6 +328,17 @@ BDB73D5A1B1D3DF500717559 /* AWSCognitoIdentityResources.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSCognitoIdentityResources.m; sourceTree = ""; }; BDB73D5D1B1D3E0B00717559 /* AWSSTSResources.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AWSSTSResources.h; sourceTree = ""; }; BDB73D5E1B1D3E0B00717559 /* AWSSTSResources.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSSTSResources.m; sourceTree = ""; }; + BDD876751B4B1CDF009268C7 /* libOCMock.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libOCMock.a; sourceTree = ""; }; + BDD876771B4B1CDF009268C7 /* NSNotificationCenter+OCMAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSNotificationCenter+OCMAdditions.h"; sourceTree = ""; }; + BDD876781B4B1CDF009268C7 /* OCMArg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMArg.h; sourceTree = ""; }; + BDD876791B4B1CDF009268C7 /* OCMConstraint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMConstraint.h; sourceTree = ""; }; + BDD8767A1B4B1CDF009268C7 /* OCMLocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMLocation.h; sourceTree = ""; }; + BDD8767B1B4B1CDF009268C7 /* OCMMacroState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMMacroState.h; sourceTree = ""; }; + BDD8767C1B4B1CDF009268C7 /* OCMock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMock.h; sourceTree = ""; }; + BDD8767D1B4B1CDF009268C7 /* OCMockObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMockObject.h; sourceTree = ""; }; + BDD8767E1B4B1CDF009268C7 /* OCMRecorder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMRecorder.h; sourceTree = ""; }; + BDD8767F1B4B1CDF009268C7 /* OCMStubRecorder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMStubRecorder.h; sourceTree = ""; }; + BDF126901B45C37D00DFBFEC /* AWSCoreUnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AWSCoreUnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; BDF557521AB371490067F4F1 /* libAWSCore.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libAWSCore.a; sourceTree = BUILT_PRODUCTS_DIR; }; BDF557551AB371490067F4F1 /* AWSCore.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AWSCore.h; sourceTree = ""; }; BDF5575D1AB371490067F4F1 /* AWSCoreTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AWSCoreTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -429,6 +463,18 @@ /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + BDF1267C1B45C37D00DFBFEC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BDF1267D1B45C37D00DFBFEC /* SystemConfiguration.framework in Frameworks */, + BDF1267E1B45C37D00DFBFEC /* libz.dylib in Frameworks */, + BDF1267F1B45C37D00DFBFEC /* libsqlite3.dylib in Frameworks */, + BDF126801B45C37D00DFBFEC /* libAWSCore.a in Frameworks */, + BDD876801B4B1CDF009268C7 /* libOCMock.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; BDF5574F1AB371480067F4F1 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -463,6 +509,31 @@ path = AWSiOSSDKAnalyticsTests/Frameworks; sourceTree = ""; }; + BDD876741B4B1CDF009268C7 /* OCMock */ = { + isa = PBXGroup; + children = ( + BDD876751B4B1CDF009268C7 /* libOCMock.a */, + BDD876761B4B1CDF009268C7 /* OCMock */, + ); + path = OCMock; + sourceTree = ""; + }; + BDD876761B4B1CDF009268C7 /* OCMock */ = { + isa = PBXGroup; + children = ( + BDD876771B4B1CDF009268C7 /* NSNotificationCenter+OCMAdditions.h */, + BDD876781B4B1CDF009268C7 /* OCMArg.h */, + BDD876791B4B1CDF009268C7 /* OCMConstraint.h */, + BDD8767A1B4B1CDF009268C7 /* OCMLocation.h */, + BDD8767B1B4B1CDF009268C7 /* OCMMacroState.h */, + BDD8767C1B4B1CDF009268C7 /* OCMock.h */, + BDD8767D1B4B1CDF009268C7 /* OCMockObject.h */, + BDD8767E1B4B1CDF009268C7 /* OCMRecorder.h */, + BDD8767F1B4B1CDF009268C7 /* OCMStubRecorder.h */, + ); + path = OCMock; + sourceTree = ""; + }; BDF557491AB371480067F4F1 = { isa = PBXGroup; children = ( @@ -478,6 +549,7 @@ children = ( BDF557521AB371490067F4F1 /* libAWSCore.a */, BDF5575D1AB371490067F4F1 /* AWSCoreTests.xctest */, + BDF126901B45C37D00DFBFEC /* AWSCoreUnitTests.xctest */, ); name = Products; sourceTree = ""; @@ -501,6 +573,7 @@ BDF557611AB371490067F4F1 /* AWSCoreTests */ = { isa = PBXGroup; children = ( + BDD876741B4B1CDF009268C7 /* OCMock */, BD0DBBC81AE1BC75003C78C3 /* AWSSerializationTests.m */, BD4B22C01ADEF1DB00BE550A /* AWSSignatureTests.m */, BD0000101AB8C47C004496EF /* AWSClockSkewTests.m */, @@ -864,6 +937,24 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ + BDF1266A1B45C37D00DFBFEC /* AWSCoreUnitTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = BDF1268D1B45C37D00DFBFEC /* Build configuration list for PBXNativeTarget "AWSCoreUnitTests" */; + buildPhases = ( + BDF1266D1B45C37D00DFBFEC /* Sources */, + BDF1267C1B45C37D00DFBFEC /* Frameworks */, + BDF126811B45C37D00DFBFEC /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + BDF1266B1B45C37D00DFBFEC /* PBXTargetDependency */, + ); + name = AWSCoreUnitTests; + productName = AWSCoreTests; + productReference = BDF126901B45C37D00DFBFEC /* AWSCoreUnitTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; BDF557511AB371480067F4F1 /* AWSCore */ = { isa = PBXNativeTarget; buildConfigurationList = BDF557661AB371490067F4F1 /* Build configuration list for PBXNativeTarget "AWSCore" */; @@ -935,12 +1026,30 @@ targets = ( BDF557511AB371480067F4F1 /* AWSCore */, BDF5575C1AB371490067F4F1 /* AWSCoreTests */, + BDF1266A1B45C37D00DFBFEC /* AWSCoreUnitTests */, BDC91C831ABBAB6500F74D49 /* Documentation */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + BDF126811B45C37D00DFBFEC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BDF126821B45C37D00DFBFEC /* json-output.json in Resources */, + BDF126831B45C37D00DFBFEC /* ec2-input.json in Resources */, + BDF126841B45C37D00DFBFEC /* rest-xml-output.json in Resources */, + BDF126851B45C37D00DFBFEC /* rest-json-output.json in Resources */, + BDF126861B45C37D00DFBFEC /* json-input.json in Resources */, + BDF126871B45C37D00DFBFEC /* query-input.json in Resources */, + BDF126881B45C37D00DFBFEC /* rest-xml-input.json in Resources */, + BDF126891B45C37D00DFBFEC /* query-output.json in Resources */, + BDF1268B1B45C37D00DFBFEC /* rest-json-input.json in Resources */, + BDF1268C1B45C37D00DFBFEC /* ec2-output.json in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; BDF5575B1AB371490067F4F1 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -986,11 +1095,27 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "if [ -e \"XcodeCoverage/exportenv.sh\" ]; then\nXcodeCoverage/exportenv.sh\nfi"; + shellScript = "echo \"======[START] post-build script========\"\n\n\n\nbase_dir=`dirname ${SYMROOT}`\n\necho \"base_dir is ${base_dir}\"\n\nunit_test_dir=${base_dir}/unit-test-build\n\necho \"unit_test_dir is ${unit_test_dir}\"\n\n\n\nif [ ! -d ${unit_test_dir} ]; then\n\n# Control will enter here if $DIRECTORY doesn't exist.\n\necho \"unit-test-build folder doesn't exists, creating one\"\n\nmkdir ${unit_test_dir}\n\nfi\n\n\n\necho \"copying $FULL_PRODUCT_NAME to ${unit_test_dir}\"\n\ncp $BUILT_PRODUCTS_DIR/$FULL_PRODUCT_NAME ${unit_test_dir}\n\necho \"======[END] post-build script========\"\n\n"; }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + BDF1266D1B45C37D00DFBFEC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BDF1266E1B45C37D00DFBFEC /* AWSServiceTests.m in Sources */, + BDF1266F1B45C37D00DFBFEC /* AWSCoreTests.m in Sources */, + BDF126701B45C37D00DFBFEC /* AWSGeneralSTSTests.m in Sources */, + BDF126711B45C37D00DFBFEC /* AWSSignatureTests.m in Sources */, + BDF126741B45C37D00DFBFEC /* AWSUtilityTests.m in Sources */, + BDF126751B45C37D00DFBFEC /* AWSNetworkingTests.m in Sources */, + BDF126771B45C37D00DFBFEC /* AWSTestUtility.m in Sources */, + BDF126791B45C37D00DFBFEC /* AWSSerializationTests.m in Sources */, + BDF1267A1B45C37D00DFBFEC /* AWSGeneralCognitoIdentityTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; BDF5574E1AB371480067F4F1 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1055,19 +1180,11 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - CEE7C8011ADDEF47007626CE /* AWSServiceTests.m in Sources */, - BD0000251AB8C47C004496EF /* AWSCoreTests.m in Sources */, - BD00001F1AB8C47C004496EF /* AWSGeneralSTSTests.m in Sources */, - BD4B22C11ADEF1DB00BE550A /* AWSSignatureTests.m in Sources */, BD0000241AB8C47C004496EF /* AWSClockSkewTests.m in Sources */, BD0000221AB8C47C004496EF /* AWSCognitoIdentityServiceTests.m in Sources */, - CEFBD4EB1ADEF199004358F3 /* AWSUtilityTests.m in Sources */, - CE5E04561AD89085002EF47E /* AWSNetworkingTests.m in Sources */, BD00001D1AB8C47C004496EF /* AWSSTSTests.m in Sources */, BD0000261AB8C47C004496EF /* AWSTestUtility.m in Sources */, BD0000211AB8C47C004496EF /* AWSCognitoCredentialsProviderTests.m in Sources */, - BD0DBBC91AE1BC75003C78C3 /* AWSSerializationTests.m in Sources */, - BD0000201AB8C47C004496EF /* AWSGeneralCognitoIdentityTests.m in Sources */, BD4B22C51ADF457E00BE550A /* AWSCredentialsProviderTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -1075,6 +1192,11 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + BDF1266B1B45C37D00DFBFEC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BDF557511AB371480067F4F1 /* AWSCore */; + targetProxy = BDF1266C1B45C37D00DFBFEC /* PBXContainerItemProxy */; + }; BDF557601AB371490067F4F1 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = BDF557511AB371480067F4F1 /* AWSCore */; @@ -1097,10 +1219,74 @@ }; name = Release; }; + BDF1268E1B45C37D00DFBFEC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = AWSCoreTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSCoreUnitTests; + USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Debug; + }; + BDF1268F1B45C37D00DFBFEC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + INFOPLIST_FILE = AWSCoreTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSCoreUnitTests; + USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Release; + }; BDF557641AB371490067F4F1 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -1141,6 +1327,10 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -1243,6 +1433,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + BDF1268D1B45C37D00DFBFEC /* Build configuration list for PBXNativeTarget "AWSCoreUnitTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BDF1268E1B45C37D00DFBFEC /* Debug */, + BDF1268F1B45C37D00DFBFEC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; BDF5574D1AB371480067F4F1 /* Build configuration list for PBXProject "AWSCore" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/AWSCore.xcodeproj/xcshareddata/xcschemes/AWSCore.xcscheme b/AWSCore.xcodeproj/xcshareddata/xcschemes/AWSCore.xcscheme new file mode 100644 index 00000000000..49e3e49aa1a --- /dev/null +++ b/AWSCore.xcodeproj/xcshareddata/xcschemes/AWSCore.xcscheme @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AWSCore.xcodeproj/xcshareddata/xcschemes/Documentation.xcscheme b/AWSCore.xcodeproj/xcshareddata/xcschemes/Documentation.xcscheme new file mode 100644 index 00000000000..4948d949f7b --- /dev/null +++ b/AWSCore.xcodeproj/xcshareddata/xcschemes/Documentation.xcscheme @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AWSCore/Authentication/AWSSignature.m b/AWSCore/Authentication/AWSSignature.m index df8918ad537..22f89c5afcf 100644 --- a/AWSCore/Authentication/AWSSignature.m +++ b/AWSCore/Authentication/AWSSignature.m @@ -88,7 +88,7 @@ + (NSString *)HMACSign:(NSData *)data withKey:(NSString *)key usingAlgorithm:(CC // Both SHA1 and SHA256 will fit in here unsigned char digestRaw[CC_SHA256_DIGEST_LENGTH]; - NSInteger digestLength; + NSInteger digestLength = -1; switch (algorithm) { case kCCHmacAlgSHA1: @@ -100,7 +100,6 @@ + (NSString *)HMACSign:(NSData *)data withKey:(NSString *)key usingAlgorithm:(CC break; default: - digestLength = -1; AWSLogError(@"Unable to sign: unsupported Algorithm."); return nil; break; @@ -143,6 +142,7 @@ - (instancetype)initWithCredentialsProvider:(id)credenti } - (AWSTask *)interceptRequest:(NSMutableURLRequest *)request { + [request addValue:request.URL.host forHTTPHeaderField:@"Host"]; return [[AWSTask taskWithResult:nil] continueWithSuccessBlock:^id(AWSTask *task) { // clear authorization header if set [request setValue:nil forHTTPHeaderField:@"Authorization"]; diff --git a/AWSCore/CognitoIdentity/AWSCognitoIdentityService.m b/AWSCore/CognitoIdentity/AWSCognitoIdentityService.m index 1a9a53574ea..569bb2a3be3 100644 --- a/AWSCore/CognitoIdentity/AWSCognitoIdentityService.m +++ b/AWSCore/CognitoIdentity/AWSCognitoIdentityService.m @@ -210,8 +210,7 @@ - (instancetype)initWithConfiguration:(AWSServiceConfiguration *)configuration { _configuration.baseURL = _configuration.endpoint.URL; _configuration.requestInterceptors = @[[AWSNetworkingRequestInterceptor new], signer]; _configuration.retryHandler = [[AWSCognitoIdentityRequestRetryHandler alloc] initWithMaximumRetryCount:_configuration.maxRetryCount]; - _configuration.headers = @{@"Host" : _configuration.endpoint.hostName, - @"Content-Type" : @"application/x-amz-json-1.1"}; + _configuration.headers = @{@"Content-Type" : @"application/x-amz-json-1.1"}; _networking = [[AWSNetworking alloc] initWithConfiguration:_configuration]; } diff --git a/AWSCore/Mantle/extobjc/AWSEXTKeyPathCoding.h b/AWSCore/Mantle/extobjc/AWSEXTKeyPathCoding.h index f34dc4a4400..f005c4babec 100644 --- a/AWSCore/Mantle/extobjc/AWSEXTKeyPathCoding.h +++ b/AWSCore/Mantle/extobjc/AWSEXTKeyPathCoding.h @@ -8,7 +8,7 @@ // #import -#import "metamacros.h" +#import "AWSmetamacros.h" /** * \@keypath allows compile-time verification of key paths. Given a real object diff --git a/AWSCore/Networking/AWSNetworking.m b/AWSCore/Networking/AWSNetworking.m index 9592044a421..128c3032d4e 100644 --- a/AWSCore/Networking/AWSNetworking.m +++ b/AWSCore/Networking/AWSNetworking.m @@ -22,7 +22,7 @@ #import "AWSService.h" NSString *const AWSNetworkingErrorDomain = @"com.amazonaws.AWSNetworkingErrorDomain"; -NSString *const AWSiOSSDKVersion = @"2.2.0"; +NSString *const AWSiOSSDKVersion = @"2.2.1"; #pragma mark - AWSHTTPMethod diff --git a/AWSCore/STS/AWSSTSService.m b/AWSCore/STS/AWSSTSService.m index 6536a5248b6..fd05fce4033 100644 --- a/AWSCore/STS/AWSSTSService.m +++ b/AWSCore/STS/AWSSTSService.m @@ -218,7 +218,6 @@ - (instancetype)initWithConfiguration:(AWSServiceConfiguration *)configuration { _configuration.baseURL = _configuration.endpoint.URL; _configuration.requestInterceptors = @[[AWSNetworkingRequestInterceptor new], signer]; _configuration.retryHandler = [[AWSSTSRequestRetryHandler alloc] initWithMaximumRetryCount:_configuration.maxRetryCount]; - _configuration.headers = @{@"Host" : _configuration.endpoint.hostName}; _networking = [[AWSNetworking alloc] initWithConfiguration:_configuration]; } diff --git a/AWSCore/Serialization/AWSURLRequestSerialization.m b/AWSCore/Serialization/AWSURLRequestSerialization.m index 9dec23f4329..8316065bd85 100644 --- a/AWSCore/Serialization/AWSURLRequestSerialization.m +++ b/AWSCore/Serialization/AWSURLRequestSerialization.m @@ -549,5 +549,4 @@ - (AWSTask *)serializeRequest:(NSMutableURLRequest *)request return [AWSTask taskWithResult:nil]; } - -@end \ No newline at end of file +@end diff --git a/AWSCore/Service/AWSService.h b/AWSCore/Service/AWSService.h index b68b3ce7d54..bd9c79f1e52 100644 --- a/AWSCore/Service/AWSService.h +++ b/AWSCore/Service/AWSService.h @@ -91,4 +91,8 @@ service:(AWSServiceType)serviceType useUnsafeURL:(BOOL)useUnsafeURL; +- (instancetype)initWithRegion:(AWSRegionType)regionType + service:(AWSServiceType)serviceType + URL:(NSURL *)URL; + @end diff --git a/AWSCore/Service/AWSService.m b/AWSCore/Service/AWSService.m index 9e871f22702..2374920d08e 100644 --- a/AWSCore/Service/AWSService.m +++ b/AWSCore/Service/AWSService.m @@ -134,6 +134,7 @@ - (id)copyWithZone:(NSZone *)zone { NSString *const AWSRegionNameSAEast1 = @"sa-east-1"; NSString *const AWSRegionNameCNNorth1 = @"cn-north-1"; +NSString *const AWSServiceNameAPIGateway = @"execute-api"; NSString *const AWSServiceNameAutoScaling = @"autoscaling"; NSString *const AWSServiceNameCloudWatch = @"monitoring"; NSString *const AWSServiceNameCognitoIdentityBroker = @"cognito-identity"; @@ -167,141 +168,157 @@ - (instancetype)initWithRegion:(AWSRegionType)regionType _regionType = regionType; _serviceType = serviceType; _useUnsafeURL = useUnsafeURL; - - switch (_regionType) { - case AWSRegionUSEast1: - _regionName = AWSRegionNameUSEast1; - break; - case AWSRegionUSWest2: - _regionName = AWSRegionNameUSWest2; - break; - case AWSRegionUSWest1: - _regionName = AWSRegionNameUSWest1; - break; - case AWSRegionEUWest1: - _regionName = AWSRegionNameEUWest1; - break; - case AWSRegionEUCentral1: - _regionName = AWSRegionNameEUCentral1; - break; - case AWSRegionAPSoutheast1: - _regionName = AWSRegionNameAPSoutheast1; - break; - case AWSRegionAPSoutheast2: - _regionName = AWSRegionNameAPSoutheast2; - break; - case AWSRegionAPNortheast1: - _regionName = AWSRegionNameAPNortheast1; - break; - case AWSRegionSAEast1: - _regionName = AWSRegionNameSAEast1; - break; - case AWSRegionCNNorth1: - _regionName = AWSRegionNameCNNorth1; - break; - default: - AWSLogError(@"Invalid region type."); - break; + _regionName = [self regionNameFromType:regionType]; + if (!_regionName) { + AWSLogError(@"Invalid region type."); } - - switch (_serviceType) { - case AWSServiceAutoScaling: - _serviceName = AWSServiceNameAutoScaling; - break; - case AWSServiceCloudWatch: - _serviceName = AWSServiceNameCloudWatch; - break; - case AWSServiceCognitoIdentityBroker: - _serviceName = AWSServiceNameCognitoIdentityBroker; - break; - case AWSServiceCognitoService: - _serviceName = AWSServiceNameCognitoService; - break; - case AWSServiceDynamoDB: - _serviceName = AWSServiceNameDynamoDB; - break; - case AWSServiceEC2: - _serviceName = AWSServiceNameEC2; - break; - case AWSServiceElasticLoadBalancing: - _serviceName = AWSServiceNameElasticLoadBalancing; - break; - case AWSServiceKinesis: - _serviceName = AWSServiceNameKinesis; - break; - case AWSServiceLambda: - _serviceName = AWSServiceNameLambda; - break; - case AWSServiceMachineLearning: - _serviceName = AWSServiceNameMachineLearning; - break; - case AWSServiceMobileAnalytics: - _serviceName = AWSServiceNameMobileAnalytics; - break; - case AWSServiceS3: - _serviceName = AWSServiceNameS3; - break; - case AWSServiceSES: - _serviceName = AWSServiceNameSES; - break; - case AWSServiceSimpleDB: - _serviceName = AWSServiceNameSimpleDB; - break; - case AWSServiceSNS: - _serviceName = AWSServiceNameSNS; - break; - case AWSServiceSQS: - _serviceName = AWSServiceNameSQS; - break; - case AWSServiceSTS: - _serviceName = AWSServiceNameSTS; - break; - default: - AWSLogError(@"Invalid service type."); - break; + _serviceName = [self serviceNameFromType:serviceType]; + if (!_serviceName) { + AWSLogError(@"Invalid service type."); } + _URL = [self URLWithRegion:_regionType + regionName:_regionName + service:_serviceType + serviceName:_serviceName + useUnsafeURL:useUnsafeURL]; + _hostName = [_URL host]; + } - NSString *separator = @"."; - if (_serviceType == AWSServiceS3 - && (_regionType == AWSRegionUSEast1 - || _regionType == AWSRegionUSWest1 - || _regionType == AWSRegionUSWest2 - || _regionType == AWSRegionEUWest1 - || _regionType == AWSRegionAPSoutheast1 - || _regionType == AWSRegionAPNortheast1 - || _regionType == AWSRegionAPSoutheast2 - || _regionType == AWSRegionSAEast1)) { - separator = @"-"; - } - - NSString *HTTP_Type = @"https"; - if (_useUnsafeURL) { - HTTP_Type = @"http"; - } + return self; +} - if (_serviceType == AWSServiceS3 && _regionType == AWSRegionUSEast1) { - _URL = [NSURL URLWithString:[NSString stringWithFormat:@"%@://s3.amazonaws.com", HTTP_Type]]; - } else if (_serviceType == AWSServiceSTS) { - if (_regionType == AWSRegionCNNorth1) { - _URL = [NSURL URLWithString:@"https://sts.cn-north-1.amazonaws.com"]; - } else { - _URL = [NSURL URLWithString:@"https://sts.amazonaws.com"]; - } - } else if (_serviceType == AWSServiceSimpleDB && _regionType == AWSRegionUSEast1) { - _URL = [NSURL URLWithString:[NSString stringWithFormat:@"%@://sdb.amazonaws.com", HTTP_Type]]; - } else { - _URL = [NSURL URLWithString:[NSString stringWithFormat:@"%@://%@%@%@.amazonaws.com", HTTP_Type, _serviceName, separator, _regionName]]; +- (instancetype)initWithRegion:(AWSRegionType)regionType + service:(AWSServiceType)serviceType + URL:(NSURL *)URL { + if (self = [super init]) { + _regionType = regionType; + _serviceType = serviceType; + _useUnsafeURL = NO; + _regionName = [self regionNameFromType:regionType]; + _serviceName = [self serviceNameFromType:serviceType]; + _URL = URL; + _hostName = [_URL host]; + } + + return self; +} + +- (NSString *)regionNameFromType:(AWSRegionType)regionType { + switch (regionType) { + case AWSRegionUSEast1: + return AWSRegionNameUSEast1; + case AWSRegionUSWest2: + return AWSRegionNameUSWest2; + case AWSRegionUSWest1: + return AWSRegionNameUSWest1; + case AWSRegionEUWest1: + return AWSRegionNameEUWest1; + case AWSRegionEUCentral1: + return AWSRegionNameEUCentral1; + case AWSRegionAPSoutheast1: + return AWSRegionNameAPSoutheast1; + case AWSRegionAPSoutheast2: + return AWSRegionNameAPSoutheast2; + case AWSRegionAPNortheast1: + return AWSRegionNameAPNortheast1; + case AWSRegionSAEast1: + return AWSRegionNameSAEast1; + case AWSRegionCNNorth1: + return AWSRegionNameCNNorth1; + default: + return nil; + } +} + +- (NSString *)serviceNameFromType:(AWSServiceType)serviceType { + switch (serviceType) { + case AWSServiceAPIGateway: + return AWSServiceNameAPIGateway; + case AWSServiceAutoScaling: + return AWSServiceNameAutoScaling; + case AWSServiceCloudWatch: + return AWSServiceNameCloudWatch; + case AWSServiceCognitoIdentityBroker: + return AWSServiceNameCognitoIdentityBroker; + case AWSServiceCognitoService: + return AWSServiceNameCognitoService; + case AWSServiceDynamoDB: + return AWSServiceNameDynamoDB; + case AWSServiceEC2: + return AWSServiceNameEC2; + case AWSServiceElasticLoadBalancing: + return AWSServiceNameElasticLoadBalancing; + case AWSServiceKinesis: + return AWSServiceNameKinesis; + case AWSServiceLambda: + return AWSServiceNameLambda; + case AWSServiceMachineLearning: + return AWSServiceNameMachineLearning; + case AWSServiceMobileAnalytics: + return AWSServiceNameMobileAnalytics; + case AWSServiceS3: + return AWSServiceNameS3; + case AWSServiceSES: + return AWSServiceNameSES; + case AWSServiceSimpleDB: + return AWSServiceNameSimpleDB; + case AWSServiceSNS: + return AWSServiceNameSNS; + case AWSServiceSQS: + return AWSServiceNameSQS; + case AWSServiceSTS: + return AWSServiceNameSTS; + default: + return nil; + } +} + +- (NSURL *)URLWithRegion:(AWSRegionType)regionType + regionName:(NSString *)regionName + service:(AWSServiceType)serviceType + serviceName:(NSString *)serviceName + useUnsafeURL:(BOOL)useUnsafeURL { + NSURL *URL = nil; + + NSString *separator = @"."; + if (serviceType == AWSServiceS3 + && (regionType == AWSRegionUSEast1 + || regionType == AWSRegionUSWest1 + || regionType == AWSRegionUSWest2 + || regionType == AWSRegionEUWest1 + || regionType == AWSRegionAPSoutheast1 + || regionType == AWSRegionAPNortheast1 + || regionType == AWSRegionAPSoutheast2 + || regionType == AWSRegionSAEast1)) { + separator = @"-"; } - //need to add ".cn" at end of URL if it is in China Region - if ([_regionName hasPrefix:@"cn"]) { - NSString *urlString = [_URL absoluteString]; - _URL = [NSURL URLWithString:[urlString stringByAppendingString:@".cn"]]; + NSString *HTTPType = @"https"; + if (useUnsafeURL) { + HTTPType = @"http"; + } + + if (serviceType == AWSServiceS3 && regionType == AWSRegionUSEast1) { + URL = [NSURL URLWithString:[NSString stringWithFormat:@"%@://s3.amazonaws.com", HTTPType]]; + } else if (serviceType == AWSServiceSTS) { + if (regionType == AWSRegionCNNorth1) { + URL = [NSURL URLWithString:@"https://sts.cn-north-1.amazonaws.com"]; + } else { + URL = [NSURL URLWithString:@"https://sts.amazonaws.com"]; } - _hostName = [_URL host]; + } else if (serviceType == AWSServiceSimpleDB && regionType == AWSRegionUSEast1) { + URL = [NSURL URLWithString:[NSString stringWithFormat:@"%@://sdb.amazonaws.com", HTTPType]]; + } else { + URL = [NSURL URLWithString:[NSString stringWithFormat:@"%@://%@%@%@.amazonaws.com", HTTPType, serviceName, separator, regionName]]; } - return self; + //need to add ".cn" at end of URL if it is in China Region + if ([regionName hasPrefix:@"cn"]) { + NSString *urlString = [URL absoluteString]; + URL = [NSURL URLWithString:[urlString stringByAppendingString:@".cn"]]; + } + + return URL; } @end diff --git a/AWSCore/Service/AWSServiceEnum.h b/AWSCore/Service/AWSServiceEnum.h index 2020926aca4..b37d41aa085 100644 --- a/AWSCore/Service/AWSServiceEnum.h +++ b/AWSCore/Service/AWSServiceEnum.h @@ -32,6 +32,7 @@ typedef NS_ENUM(NSInteger, AWSRegionType) { typedef NS_ENUM(NSInteger, AWSServiceType) { AWSServiceUnknown, + AWSServiceAPIGateway, AWSServiceAutoScaling, AWSServiceCloudWatch, AWSServiceCognitoIdentityBroker, diff --git a/AWSCoreTests/AWSGeneralCognitoIdentityTests.m b/AWSCoreTests/AWSGeneralCognitoIdentityTests.m index fe76a305830..c805bc171b9 100644 --- a/AWSCoreTests/AWSGeneralCognitoIdentityTests.m +++ b/AWSCoreTests/AWSGeneralCognitoIdentityTests.m @@ -15,9 +15,12 @@ #import #import +#import #import "AWSTestUtility.h" #import "AWSCognitoIdentity.h" +static id mockNetworking = nil; + @interface AWSGeneralCognitoIdentityTests : XCTestCase @end @@ -26,7 +29,11 @@ @implementation AWSGeneralCognitoIdentityTests - (void)setUp { [super setUp]; - [AWSTestUtility setupCognitoCredentialsProvider]; + [AWSTestUtility setupFakeCognitoCredentialsProvider]; + + mockNetworking = OCMClassMock([AWSNetworking class]); + AWSTask *errorTask = [AWSTask taskWithError:[NSError errorWithDomain:@"OCMockExpectedNetworkingError" code:8848 userInfo:nil]]; + OCMStub([mockNetworking sendRequest:[OCMArg isKindOfClass:[AWSNetworkingRequest class]]]).andReturn(errorTask); } - (void)tearDown { @@ -55,13 +62,20 @@ - (void)testCreateIdentityPool { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCognitoIdentity registerCognitoIdentityWithConfiguration:configuration forKey:key]; + AWSCognitoIdentity *awsClient = [AWSCognitoIdentity CognitoIdentityForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCognitoIdentity CognitoIdentityForKey:key] createIdentityPool:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCognitoIdentity removeCognitoIdentityForKey:key]; } @@ -70,13 +84,20 @@ - (void)testDeleteIdentityPool { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCognitoIdentity registerCognitoIdentityWithConfiguration:configuration forKey:key]; + AWSCognitoIdentity *awsClient = [AWSCognitoIdentity CognitoIdentityForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCognitoIdentity CognitoIdentityForKey:key] deleteIdentityPool:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCognitoIdentity removeCognitoIdentityForKey:key]; } @@ -85,13 +106,20 @@ - (void)testDescribeIdentity { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCognitoIdentity registerCognitoIdentityWithConfiguration:configuration forKey:key]; + AWSCognitoIdentity *awsClient = [AWSCognitoIdentity CognitoIdentityForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCognitoIdentity CognitoIdentityForKey:key] describeIdentity:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCognitoIdentity removeCognitoIdentityForKey:key]; } @@ -100,13 +128,20 @@ - (void)testDescribeIdentityPool { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCognitoIdentity registerCognitoIdentityWithConfiguration:configuration forKey:key]; + AWSCognitoIdentity *awsClient = [AWSCognitoIdentity CognitoIdentityForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCognitoIdentity CognitoIdentityForKey:key] describeIdentityPool:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCognitoIdentity removeCognitoIdentityForKey:key]; } @@ -115,13 +150,20 @@ - (void)testGetCredentialsForIdentity { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCognitoIdentity registerCognitoIdentityWithConfiguration:configuration forKey:key]; + AWSCognitoIdentity *awsClient = [AWSCognitoIdentity CognitoIdentityForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCognitoIdentity CognitoIdentityForKey:key] getCredentialsForIdentity:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCognitoIdentity removeCognitoIdentityForKey:key]; } @@ -130,13 +172,20 @@ - (void)testGetId { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCognitoIdentity registerCognitoIdentityWithConfiguration:configuration forKey:key]; + AWSCognitoIdentity *awsClient = [AWSCognitoIdentity CognitoIdentityForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCognitoIdentity CognitoIdentityForKey:key] getId:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCognitoIdentity removeCognitoIdentityForKey:key]; } @@ -145,13 +194,20 @@ - (void)testGetIdentityPoolRoles { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCognitoIdentity registerCognitoIdentityWithConfiguration:configuration forKey:key]; + AWSCognitoIdentity *awsClient = [AWSCognitoIdentity CognitoIdentityForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCognitoIdentity CognitoIdentityForKey:key] getIdentityPoolRoles:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCognitoIdentity removeCognitoIdentityForKey:key]; } @@ -160,13 +216,20 @@ - (void)testGetOpenIdToken { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCognitoIdentity registerCognitoIdentityWithConfiguration:configuration forKey:key]; + AWSCognitoIdentity *awsClient = [AWSCognitoIdentity CognitoIdentityForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCognitoIdentity CognitoIdentityForKey:key] getOpenIdToken:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCognitoIdentity removeCognitoIdentityForKey:key]; } @@ -175,13 +238,20 @@ - (void)testGetOpenIdTokenForDeveloperIdentity { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCognitoIdentity registerCognitoIdentityWithConfiguration:configuration forKey:key]; + AWSCognitoIdentity *awsClient = [AWSCognitoIdentity CognitoIdentityForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCognitoIdentity CognitoIdentityForKey:key] getOpenIdTokenForDeveloperIdentity:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCognitoIdentity removeCognitoIdentityForKey:key]; } @@ -190,13 +260,20 @@ - (void)testListIdentities { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCognitoIdentity registerCognitoIdentityWithConfiguration:configuration forKey:key]; + AWSCognitoIdentity *awsClient = [AWSCognitoIdentity CognitoIdentityForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCognitoIdentity CognitoIdentityForKey:key] listIdentities:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCognitoIdentity removeCognitoIdentityForKey:key]; } @@ -205,13 +282,20 @@ - (void)testListIdentityPools { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCognitoIdentity registerCognitoIdentityWithConfiguration:configuration forKey:key]; + AWSCognitoIdentity *awsClient = [AWSCognitoIdentity CognitoIdentityForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCognitoIdentity CognitoIdentityForKey:key] listIdentityPools:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCognitoIdentity removeCognitoIdentityForKey:key]; } @@ -220,13 +304,20 @@ - (void)testLookupDeveloperIdentity { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCognitoIdentity registerCognitoIdentityWithConfiguration:configuration forKey:key]; + AWSCognitoIdentity *awsClient = [AWSCognitoIdentity CognitoIdentityForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCognitoIdentity CognitoIdentityForKey:key] lookupDeveloperIdentity:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCognitoIdentity removeCognitoIdentityForKey:key]; } @@ -235,13 +326,20 @@ - (void)testMergeDeveloperIdentities { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCognitoIdentity registerCognitoIdentityWithConfiguration:configuration forKey:key]; + AWSCognitoIdentity *awsClient = [AWSCognitoIdentity CognitoIdentityForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCognitoIdentity CognitoIdentityForKey:key] mergeDeveloperIdentities:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCognitoIdentity removeCognitoIdentityForKey:key]; } @@ -250,13 +348,20 @@ - (void)testSetIdentityPoolRoles { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCognitoIdentity registerCognitoIdentityWithConfiguration:configuration forKey:key]; + AWSCognitoIdentity *awsClient = [AWSCognitoIdentity CognitoIdentityForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCognitoIdentity CognitoIdentityForKey:key] setIdentityPoolRoles:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCognitoIdentity removeCognitoIdentityForKey:key]; } @@ -265,13 +370,20 @@ - (void)testUnlinkDeveloperIdentity { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCognitoIdentity registerCognitoIdentityWithConfiguration:configuration forKey:key]; + AWSCognitoIdentity *awsClient = [AWSCognitoIdentity CognitoIdentityForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCognitoIdentity CognitoIdentityForKey:key] unlinkDeveloperIdentity:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCognitoIdentity removeCognitoIdentityForKey:key]; } @@ -280,13 +392,20 @@ - (void)testUnlinkIdentity { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCognitoIdentity registerCognitoIdentityWithConfiguration:configuration forKey:key]; + AWSCognitoIdentity *awsClient = [AWSCognitoIdentity CognitoIdentityForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCognitoIdentity CognitoIdentityForKey:key] unlinkIdentity:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCognitoIdentity removeCognitoIdentityForKey:key]; } @@ -295,13 +414,20 @@ - (void)testUpdateIdentityPool { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSCognitoIdentity registerCognitoIdentityWithConfiguration:configuration forKey:key]; + AWSCognitoIdentity *awsClient = [AWSCognitoIdentity CognitoIdentityForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSCognitoIdentity CognitoIdentityForKey:key] updateIdentityPool:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSCognitoIdentity removeCognitoIdentityForKey:key]; } diff --git a/AWSCoreTests/AWSGeneralSTSTests.m b/AWSCoreTests/AWSGeneralSTSTests.m index 7b1262ebd1a..6284ea09ae2 100644 --- a/AWSCoreTests/AWSGeneralSTSTests.m +++ b/AWSCoreTests/AWSGeneralSTSTests.m @@ -15,9 +15,12 @@ #import #import +#import #import "AWSTestUtility.h" #import "AWSSTS.h" +static id mockNetworking = nil; + @interface AWSGeneralSTSTests : XCTestCase @end @@ -26,7 +29,11 @@ @implementation AWSGeneralSTSTests - (void)setUp { [super setUp]; - [AWSTestUtility setupCognitoCredentialsProvider]; + [AWSTestUtility setupFakeCognitoCredentialsProvider]; + + mockNetworking = OCMClassMock([AWSNetworking class]); + AWSTask *errorTask = [AWSTask taskWithError:[NSError errorWithDomain:@"OCMockExpectedNetworkingError" code:8848 userInfo:nil]]; + OCMStub([mockNetworking sendRequest:[OCMArg isKindOfClass:[AWSNetworkingRequest class]]]).andReturn(errorTask); } - (void)tearDown { @@ -55,13 +62,20 @@ - (void)testAssumeRole { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSTS registerSTSWithConfiguration:configuration forKey:key]; + AWSSTS *awsClient = [AWSSTS STSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSTS STSForKey:key] assumeRole:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSTS removeSTSForKey:key]; } @@ -70,13 +84,20 @@ - (void)testAssumeRoleWithSAML { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSTS registerSTSWithConfiguration:configuration forKey:key]; + AWSSTS *awsClient = [AWSSTS STSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSTS STSForKey:key] assumeRoleWithSAML:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSTS removeSTSForKey:key]; } @@ -85,13 +106,20 @@ - (void)testAssumeRoleWithWebIdentity { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSTS registerSTSWithConfiguration:configuration forKey:key]; + AWSSTS *awsClient = [AWSSTS STSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSTS STSForKey:key] assumeRoleWithWebIdentity:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSTS removeSTSForKey:key]; } @@ -100,13 +128,20 @@ - (void)testDecodeAuthorizationMessage { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSTS registerSTSWithConfiguration:configuration forKey:key]; + AWSSTS *awsClient = [AWSSTS STSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSTS STSForKey:key] decodeAuthorizationMessage:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSTS removeSTSForKey:key]; } @@ -115,13 +150,20 @@ - (void)testGetFederationToken { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSTS registerSTSWithConfiguration:configuration forKey:key]; + AWSSTS *awsClient = [AWSSTS STSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSTS STSForKey:key] getFederationToken:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSTS removeSTSForKey:key]; } @@ -130,13 +172,20 @@ - (void)testGetSessionToken { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSTS registerSTSWithConfiguration:configuration forKey:key]; + AWSSTS *awsClient = [AWSSTS STSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSTS STSForKey:key] getSessionToken:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSTS removeSTSForKey:key]; } diff --git a/AWSCoreTests/AWSServiceTests.m b/AWSCoreTests/AWSServiceTests.m index dd0ccc21650..a8f59ac1a7f 100644 --- a/AWSCoreTests/AWSServiceTests.m +++ b/AWSCoreTests/AWSServiceTests.m @@ -26,7 +26,7 @@ @implementation AWSServiceTests - (void)setUp { [super setUp]; - [AWSTestUtility setupCognitoCredentialsProvider]; + [AWSTestUtility setupFakeCognitoCredentialsProvider]; } - (void)tearDown { diff --git a/AWSCoreTests/AWSTestUtility.h b/AWSCoreTests/AWSTestUtility.h index 7cada7dbebb..a57658bd83c 100644 --- a/AWSCoreTests/AWSTestUtility.h +++ b/AWSCoreTests/AWSTestUtility.h @@ -21,6 +21,7 @@ FOUNDATION_EXPORT NSString *const AWSTestUtilityCognitoIdentityServiceKey; @interface AWSTestUtility : NSObject +(void)setupCrdentialsViaFile; ++ (void)setupFakeCognitoCredentialsProvider; + (void)setupCognitoCredentialsProvider; + (void)setupSTS; + (void)setupCognitoIdentityService; diff --git a/AWSCoreTests/AWSTestUtility.m b/AWSCoreTests/AWSTestUtility.m index ba81dd30518..4590daada8a 100644 --- a/AWSCoreTests/AWSTestUtility.m +++ b/AWSCoreTests/AWSTestUtility.m @@ -57,6 +57,17 @@ + (void)setupCrdentialsViaFile { } } ++ (void)setupFakeCognitoCredentialsProvider { + + AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:AWSRegionUSEast1 identityPoolId:@"fakeIdentityPoolId"]; + + + AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 + credentialsProvider:credentialsProvider]; + [AWSServiceManager defaultServiceManager].defaultServiceConfiguration = configuration; + +} + + (void)setupCognitoCredentialsProvider { #if AWS_TEST_BJS_INSTEAD //since BJS doesn't support Cognito, we are using STS instead diff --git a/AWSCoreTests/AWSUtilityTests.m b/AWSCoreTests/AWSUtilityTests.m index 79f852416b0..138c928807e 100644 --- a/AWSCoreTests/AWSUtilityTests.m +++ b/AWSCoreTests/AWSUtilityTests.m @@ -37,66 +37,6 @@ - (void)tearDown { [super tearDown]; } -- (void)testAtomicCopy { - - NSFileManager *fileManager = [NSFileManager defaultManager]; - - NSURL* possibleCachesURL = [[fileManager URLsForDirectory:NSCachesDirectory inDomains:NSUserDomainMask] objectAtIndex:0]; - XCTAssertNotNil(possibleCachesURL); - NSString *testCachesPath = [[possibleCachesURL path] stringByAppendingPathComponent:@"com.amazonaws.test"]; - NSError *error = nil; - - - NSURL* possibleApplicationSupportURL = [[fileManager URLsForDirectory:NSApplicationSupportDirectory inDomains:NSUserDomainMask] objectAtIndex:0]; - XCTAssertNotNil(possibleApplicationSupportURL); - NSString *testAppSupportPath = [[possibleApplicationSupportURL path] stringByAppendingPathComponent:@"com.amazonaws.test"]; - error = nil; - - //clean up - [fileManager removeItemAtPath:testCachesPath error:nil]; - [fileManager removeItemAtPath:testAppSupportPath error:nil]; - - XCTAssertTrue([fileManager createDirectoryAtPath:testCachesPath withIntermediateDirectories:YES attributes:nil error:&error]); - XCTAssertTrue([fileManager createDirectoryAtPath:testAppSupportPath withIntermediateDirectories:YES attributes:nil error:&error]); - - NSString *uuid = [[NSUUID UUID] UUIDString]; - NSDictionary *testDic = @{@"testID":uuid}; - error = nil; - NSData *testData = [NSJSONSerialization dataWithJSONObject:testDic options:kNilOptions error:&error]; - XCTAssertNotNil(testData); - XCTAssertNil(error); - - XCTAssertTrue([testData writeToFile:[testCachesPath stringByAppendingPathComponent:@"testFile"] atomically:YES]); - - error = nil; - BOOL result = [fileManager aws_atomicallyCopyItemAtURL:[NSURL fileURLWithPath:testCachesPath] - toURL:[NSURL fileURLWithPath:testAppSupportPath] - backupItemName:@"com.amazonaws.MobileAnalytics.backupItem" - error:&error]; - if ( NO == result) { - XCTFail(@"aws_atomicCopyItemAtURL failed. %@",error); - } - - XCTAssertTrue([fileManager fileExistsAtPath:[testCachesPath stringByAppendingPathComponent:@"testFile"]]); - XCTAssertTrue([fileManager fileExistsAtPath:[testAppSupportPath stringByAppendingPathComponent:@"testFile"]]); - - NSData *resultTestData = [NSData dataWithContentsOfFile:[testAppSupportPath stringByAppendingPathComponent:@"testFile"]]; - XCTAssertNotNil(resultTestData); - XCTAssertEqualObjects(testData, resultTestData); - error = nil; - NSDictionary *resultTestDic = [NSJSONSerialization JSONObjectWithData:resultTestData options:kNilOptions error:&error]; - XCTAssertNotNil(resultTestDic); - XCTAssertNil(error); - - NSString *resultUUID = resultTestDic[@"testID"]; - XCTAssertEqualObjects(uuid, resultUUID); - - - //clean up - [fileManager removeItemAtPath:testCachesPath error:nil]; - [fileManager removeItemAtPath:testAppSupportPath error:nil]; - -} - (void)testCategoryNSString { NSString *inputString = @"U29tZSBpbnB1dCBzdHJpbmc="; // Base64 encoded "Some input string" XCTAssertTrue([inputString aws_isBase64Data]); diff --git a/AWSCoreTests/OCMock/OCMock/NSNotificationCenter+OCMAdditions.h b/AWSCoreTests/OCMock/OCMock/NSNotificationCenter+OCMAdditions.h new file mode 100644 index 00000000000..c20a9c2b208 --- /dev/null +++ b/AWSCoreTests/OCMock/OCMock/NSNotificationCenter+OCMAdditions.h @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2009-2014 Erik Doernenburg and contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use these files except in compliance with the License. You may obtain + * a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +#import + +@class OCObserverMockObject; + + +@interface NSNotificationCenter(OCMAdditions) + +- (void)addMockObserver:(OCObserverMockObject *)notificationObserver name:(NSString *)notificationName object:(id)notificationSender; + +@end diff --git a/AWSMobileAnalyticsTests/usr/include/OCMock/OCMArg.h b/AWSCoreTests/OCMock/OCMock/OCMArg.h similarity index 55% rename from AWSMobileAnalyticsTests/usr/include/OCMock/OCMArg.h rename to AWSCoreTests/OCMock/OCMock/OCMArg.h index 670dd3bade9..d53437cb7dc 100644 --- a/AWSMobileAnalyticsTests/usr/include/OCMock/OCMArg.h +++ b/AWSCoreTests/OCMock/OCMock/OCMArg.h @@ -1,7 +1,18 @@ -//--------------------------------------------------------------------------------------- -// $Id$ -// Copyright (c) 2009-2013 by Mulle Kybernetik. See License file for details. -//--------------------------------------------------------------------------------------- +/* + * Copyright (c) 2009-2014 Erik Doernenburg and contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use these files except in compliance with the License. You may obtain + * a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ #import @@ -15,11 +26,11 @@ + (id __autoreleasing *)anyObjectRef; + (id)isNil; + (id)isNotNil; ++ (id)isEqual:(id)value; + (id)isNotEqual:(id)value; ++ (id)isKindOfClass:(Class)cls; + (id)checkWithSelector:(SEL)selector onObject:(id)anObject; -#if NS_BLOCKS_AVAILABLE + (id)checkWithBlock:(BOOL (^)(id obj))block; -#endif // manipulating arguments diff --git a/AWSCoreTests/OCMock/OCMock/OCMConstraint.h b/AWSCoreTests/OCMock/OCMock/OCMConstraint.h new file mode 100644 index 00000000000..777966ab7d6 --- /dev/null +++ b/AWSCoreTests/OCMock/OCMock/OCMConstraint.h @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2007-2014 Erik Doernenburg and contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use these files except in compliance with the License. You may obtain + * a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +#import + + +@interface OCMConstraint : NSObject + ++ (instancetype)constraint; +- (BOOL)evaluate:(id)value; + +// if you are looking for any, isNil, etc, they have moved to OCMArg + +// try to use [OCMArg checkWith...] instead of the constraintWith... methods below + ++ (instancetype)constraintWithSelector:(SEL)aSelector onObject:(id)anObject; ++ (instancetype)constraintWithSelector:(SEL)aSelector onObject:(id)anObject withValue:(id)aValue; + + +@end + +@interface OCMAnyConstraint : OCMConstraint +@end + +@interface OCMIsNilConstraint : OCMConstraint +@end + +@interface OCMIsNotNilConstraint : OCMConstraint +@end + +@interface OCMIsNotEqualConstraint : OCMConstraint +{ + @public + id testValue; +} + +@end + +@interface OCMInvocationConstraint : OCMConstraint +{ + @public + NSInvocation *invocation; +} + +@end + +@interface OCMBlockConstraint : OCMConstraint +{ + BOOL (^block)(id); +} + +- (instancetype)initWithConstraintBlock:(BOOL (^)(id))block; + +@end + + +#define CONSTRAINT(aSelector) [OCMConstraint constraintWithSelector:aSelector onObject:self] +#define CONSTRAINTV(aSelector, aValue) [OCMConstraint constraintWithSelector:aSelector onObject:self withValue:(aValue)] diff --git a/AWSCoreTests/OCMock/OCMock/OCMLocation.h b/AWSCoreTests/OCMock/OCMock/OCMLocation.h new file mode 100644 index 00000000000..e510db7aaf9 --- /dev/null +++ b/AWSCoreTests/OCMock/OCMock/OCMLocation.h @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2014 Erik Doernenburg and contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use these files except in compliance with the License. You may obtain + * a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +#import + +@interface OCMLocation : NSObject +{ + id testCase; + NSString *file; + NSUInteger line; +} + ++ (instancetype)locationWithTestCase:(id)aTestCase file:(NSString *)aFile line:(NSUInteger)aLine; + +- (instancetype)initWithTestCase:(id)aTestCase file:(NSString *)aFile line:(NSUInteger)aLine; + +- (id)testCase; +- (NSString *)file; +- (NSUInteger)line; + +@end + +extern OCMLocation *OCMMakeLocation(id testCase, const char *file, int line); diff --git a/AWSCoreTests/OCMock/OCMock/OCMMacroState.h b/AWSCoreTests/OCMock/OCMock/OCMMacroState.h new file mode 100644 index 00000000000..4b2d635086f --- /dev/null +++ b/AWSCoreTests/OCMock/OCMock/OCMMacroState.h @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2014 Erik Doernenburg and contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use these files except in compliance with the License. You may obtain + * a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +#import + +@class OCMLocation; +@class OCMRecorder; +@class OCMStubRecorder; +@class OCMockObject; + + +@interface OCMMacroState : NSObject +{ + OCMRecorder *recorder; +} + ++ (void)beginStubMacro; ++ (OCMStubRecorder *)endStubMacro; + ++ (void)beginExpectMacro; ++ (OCMStubRecorder *)endExpectMacro; + ++ (void)beginVerifyMacroAtLocation:(OCMLocation *)aLocation; ++ (void)endVerifyMacro; + ++ (OCMMacroState *)globalState; + +- (OCMRecorder *)recorder; + +- (void)switchToClassMethod; + +@end diff --git a/AWSCoreTests/OCMock/OCMock/OCMRecorder.h b/AWSCoreTests/OCMock/OCMock/OCMRecorder.h new file mode 100644 index 00000000000..f56d2ca4c03 --- /dev/null +++ b/AWSCoreTests/OCMock/OCMock/OCMRecorder.h @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2014 Erik Doernenburg and contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use these files except in compliance with the License. You may obtain + * a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +#import + +@class OCMockObject; +@class OCMInvocationMatcher; + + +@interface OCMRecorder : NSProxy +{ + OCMockObject *mockObject; + OCMInvocationMatcher *invocationMatcher; +} + +- (instancetype)init; +- (instancetype)initWithMockObject:(OCMockObject *)aMockObject; + +- (void)setMockObject:(OCMockObject *)aMockObject; + +- (OCMInvocationMatcher *)invocationMatcher; + +- (id)classMethod; +- (id)ignoringNonObjectArgs; + +@end diff --git a/AWSCoreTests/OCMock/OCMock/OCMStubRecorder.h b/AWSCoreTests/OCMock/OCMock/OCMStubRecorder.h new file mode 100644 index 00000000000..890c9ef3bc6 --- /dev/null +++ b/AWSCoreTests/OCMock/OCMock/OCMStubRecorder.h @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2004-2014 Erik Doernenburg and contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use these files except in compliance with the License. You may obtain + * a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +#import "OCMRecorder.h" + + +@interface OCMStubRecorder : OCMRecorder + +- (id)andReturn:(id)anObject; +- (id)andReturnValue:(NSValue *)aValue; +- (id)andThrow:(NSException *)anException; +- (id)andPost:(NSNotification *)aNotification; +- (id)andCall:(SEL)selector onObject:(id)anObject; +- (id)andDo:(void (^)(NSInvocation *invocation))block; +- (id)andForwardToRealObject; + +@end + + +@interface OCMStubRecorder (Properties) + +#define andReturn(aValue) _andReturn(({ __typeof__(aValue) _v = (aValue); [NSValue value:&_v withObjCType:@encode(__typeof__(_v))]; })) +@property (nonatomic, readonly) OCMStubRecorder *(^ _andReturn)(NSValue *); + +#define andThrow(anException) _andThrow(anException) +@property (nonatomic, readonly) OCMStubRecorder *(^ _andThrow)(NSException *); + +#define andPost(aNotification) _andPost(aNotification) +@property (nonatomic, readonly) OCMStubRecorder *(^ _andPost)(NSNotification *); + +#define andCall(anObject, aSelector) _andCall(anObject, aSelector) +@property (nonatomic, readonly) OCMStubRecorder *(^ _andCall)(id, SEL); + +#define andDo(aBlock) _andDo(aBlock) +@property (nonatomic, readonly) OCMStubRecorder *(^ _andDo)(void (^)(NSInvocation *)); + +#define andForwardToRealObject() _andForwardToRealObject() +@property (nonatomic, readonly) OCMStubRecorder *(^ _andForwardToRealObject)(void); + +@end + + + diff --git a/AWSCoreTests/OCMock/OCMock/OCMock.h b/AWSCoreTests/OCMock/OCMock/OCMock.h new file mode 100644 index 00000000000..f0083b3507e --- /dev/null +++ b/AWSCoreTests/OCMock/OCMock/OCMock.h @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2004-2014 Erik Doernenburg and contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use these files except in compliance with the License. You may obtain + * a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +#import +#import +#import +#import +#import +#import +#import +#import + + +#define OCMClassMock(cls) [OCMockObject niceMockForClass:cls] + +#define OCMStrictClassMock(cls) [OCMockObject mockForClass:cls] + +#define OCMProtocolMock(protocol) [OCMockObject niceMockForProtocol:protocol] + +#define OCMStrictProtocolMock(protocol) [OCMockObject mockForProtocol:protocol] + +#define OCMPartialMock(obj) [OCMockObject partialMockForObject:obj] + +#define OCMObserverMock() [OCMockObject observerMock] + + +#define OCMStub(invocation) \ +({ \ + _OCMSilenceWarnings( \ + [OCMMacroState beginStubMacro]; \ + invocation; \ + [OCMMacroState endStubMacro]; \ + ); \ +}) + +#define OCMExpect(invocation) \ +({ \ + _OCMSilenceWarnings( \ + [OCMMacroState beginExpectMacro]; \ + invocation; \ + [OCMMacroState endExpectMacro]; \ + ); \ +}) + +#define ClassMethod(invocation) \ + _OCMSilenceWarnings( \ + [[OCMMacroState globalState] switchToClassMethod]; \ + invocation; \ + ); + + +#define OCMVerifyAll(mock) [mock verifyAtLocation:OCMMakeLocation(self, __FILE__, __LINE__)] + +#define OCMVerifyAllWithDelay(mock, delay) [mock verifyWithDelay:delay atLocation:OCMMakeLocation(self, __FILE__, __LINE__)] + +#define OCMVerify(invocation) \ +({ \ + _OCMSilenceWarnings( \ + [OCMMacroState beginVerifyMacroAtLocation:OCMMakeLocation(self, __FILE__, __LINE__)]; \ + invocation; \ + [OCMMacroState endVerifyMacro]; \ + ); \ +}) + +#define _OCMSilenceWarnings(macro) \ +({ \ + _Pragma("clang diagnostic push") \ + _Pragma("clang diagnostic ignored \"-Wunused-value\"") \ + macro \ + _Pragma("clang diagnostic pop") \ +}) diff --git a/AWSCoreTests/OCMock/OCMock/OCMockObject.h b/AWSCoreTests/OCMock/OCMock/OCMockObject.h new file mode 100644 index 00000000000..63f2bae2be9 --- /dev/null +++ b/AWSCoreTests/OCMock/OCMock/OCMockObject.h @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2004-2014 Erik Doernenburg and contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use these files except in compliance with the License. You may obtain + * a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +#import + +@class OCMLocation; +@class OCMInvocationStub; +@class OCMStubRecorder; +@class OCMInvocationMatcher; +@class OCMInvocationExpectation; + + +@interface OCMockObject : NSProxy +{ + BOOL isNice; + BOOL expectationOrderMatters; + NSMutableArray *stubs; + NSMutableArray *expectations; + NSMutableArray *exceptions; + NSMutableArray *invocations; +} + ++ (id)mockForClass:(Class)aClass; ++ (id)mockForProtocol:(Protocol *)aProtocol; ++ (id)partialMockForObject:(NSObject *)anObject; + ++ (id)niceMockForClass:(Class)aClass; ++ (id)niceMockForProtocol:(Protocol *)aProtocol; + ++ (id)observerMock; + +- (instancetype)init; + +- (void)setExpectationOrderMatters:(BOOL)flag; + +- (id)stub; +- (id)expect; +- (id)reject; + +- (id)verify; +- (id)verifyAtLocation:(OCMLocation *)location; + +- (void)verifyWithDelay:(NSTimeInterval)delay; +- (void)verifyWithDelay:(NSTimeInterval)delay atLocation:(OCMLocation *)location; + +- (void)stopMocking; + +// internal use only + +- (void)addStub:(OCMInvocationStub *)aStub; +- (void)addExpectation:(OCMInvocationExpectation *)anExpectation; + +- (BOOL)handleInvocation:(NSInvocation *)anInvocation; +- (void)handleUnRecordedInvocation:(NSInvocation *)anInvocation; +- (BOOL)handleSelector:(SEL)sel; + +- (void)verifyInvocation:(OCMInvocationMatcher *)matcher; +- (void)verifyInvocation:(OCMInvocationMatcher *)matcher atLocation:(OCMLocation *)location; + +@end + diff --git a/AWSCoreTests/OCMock/libOCMock.a b/AWSCoreTests/OCMock/libOCMock.a new file mode 100644 index 00000000000..9bb38e21a3b Binary files /dev/null and b/AWSCoreTests/OCMock/libOCMock.a differ diff --git a/AWSDynamoDB.podspec b/AWSDynamoDB.podspec index f3f10d5cce5..6d14019115f 100644 --- a/AWSDynamoDB.podspec +++ b/AWSDynamoDB.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = 'AWSDynamoDB' - s.version = '2.2.0' + s.version = '2.2.1' s.summary = 'Amazon Web Services SDK for iOS.' s.description = 'The AWS SDK for iOS provides a library, code samples, and documentation for developers to build connected mobile applications using AWS.' @@ -13,7 +13,7 @@ Pod::Spec.new do |s| s.source = { :git => 'https://github.com/aws/aws-sdk-ios.git', :tag => s.version} s.requires_arc = true - s.dependency 'AWSCore', '2.2.0' + s.dependency 'AWSCore', '2.2.1' s.source_files = 'AWSDynamoDB/*.{h,m}' end diff --git a/AWSDynamoDB.xcodeproj/project.pbxproj b/AWSDynamoDB.xcodeproj/project.pbxproj index 534e0d47fa5..09b1fae1ff1 100644 --- a/AWSDynamoDB.xcodeproj/project.pbxproj +++ b/AWSDynamoDB.xcodeproj/project.pbxproj @@ -7,7 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - BD0000001AB8C461004496EF /* AWSGeneralDynamoDBTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFFC1AB8C461004496EF /* AWSGeneralDynamoDBTests.m */; }; BD0000011AB8C461004496EF /* AWSDynamoDBObjectMapperSwiftTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFFD1AB8C461004496EF /* AWSDynamoDBObjectMapperSwiftTests.swift */; }; BD0000021AB8C461004496EF /* AWSDynamoDBObjectMapperTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFFE1AB8C461004496EF /* AWSDynamoDBObjectMapperTests.m */; }; BD0000031AB8C461004496EF /* AWSDynamoDBTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFFF1AB8C461004496EF /* AWSDynamoDBTests.m */; }; @@ -20,6 +19,12 @@ BDC91C571ABBA0E900F74D49 /* AWSDynamoDB.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDF559431AB375260067F4F1 /* AWSDynamoDB.h */; }; BDC91C581ABBA0E900F74D49 /* AWSDynamoDBModel.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDF559451AB375260067F4F1 /* AWSDynamoDBModel.h */; }; BDC91C591ABBA0E900F74D49 /* AWSDynamoDBObjectMapper.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDF559471AB375260067F4F1 /* AWSDynamoDBObjectMapper.h */; }; + BDD876A41B4B52AE009268C7 /* libOCMock.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDD876A31B4B52AE009268C7 /* libOCMock.a */; }; + BDF1258E1B45C12600DFBFEC /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0000631AB8E20C004496EF /* AWSTestUtility.m */; }; + BDF1258F1B45C12600DFBFEC /* AWSGeneralDynamoDBTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFFC1AB8C461004496EF /* AWSGeneralDynamoDBTests.m */; }; + BDF125921B45C12600DFBFEC /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE532591B03D374002CED62 /* libz.dylib */; }; + BDF125931B45C12600DFBFEC /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BD00FF481AB8B6F8004496EF /* libAWSCore.a */; }; + BDF125941B45C12600DFBFEC /* libAWSDynamoDB.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDF559271AB374F00067F4F1 /* libAWSDynamoDB.a */; }; BDF559331AB374F00067F4F1 /* libAWSDynamoDB.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDF559271AB374F00067F4F1 /* libAWSDynamoDB.a */; }; BDF5594B1AB375270067F4F1 /* AWSDynamoDB.h in Headers */ = {isa = PBXBuildFile; fileRef = BDF559431AB375260067F4F1 /* AWSDynamoDB.h */; settings = {ATTRIBUTES = (Public, ); }; }; BDF5594C1AB375270067F4F1 /* AWSDynamoDBService.m in Sources */ = {isa = PBXBuildFile; fileRef = BDF559441AB375260067F4F1 /* AWSDynamoDBService.m */; }; @@ -32,6 +37,13 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + BDF1258A1B45C12600DFBFEC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BDF5591F1AB374F00067F4F1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BDF559261AB374F00067F4F1; + remoteInfo = DynamoDB; + }; BDF559341AB374F00067F4F1 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BDF5591F1AB374F00067F4F1 /* Project object */; @@ -58,7 +70,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 9F85B3DCB7942BDFD5AC15D6 /* Pods-AWSDynamoDB.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSDynamoDB.release.xcconfig"; path = "Pods/Target Support Files/Pods-AWSDynamoDB/Pods-AWSDynamoDB.release.xcconfig"; sourceTree = ""; }; BD0000411AB8C56E004496EF /* credentials.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = credentials.json; path = AWSCoreTests/credentials.json; sourceTree = SOURCE_ROOT; }; BD0000621AB8E20C004496EF /* AWSTestUtility.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AWSTestUtility.h; path = AWSCoreTests/AWSTestUtility.h; sourceTree = SOURCE_ROOT; }; BD0000631AB8E20C004496EF /* AWSTestUtility.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AWSTestUtility.m; path = AWSCoreTests/AWSTestUtility.m; sourceTree = SOURCE_ROOT; }; @@ -70,6 +81,8 @@ BDB6EC2E1AB915B9004C4D80 /* AWSiOSSDKv2Tests-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "AWSiOSSDKv2Tests-Bridging-Header.h"; path = "AWSCoreTests/AWSiOSSDKv2Tests-Bridging-Header.h"; sourceTree = SOURCE_ROOT; }; BDB73D6D1B1D3E9B00717559 /* AWSDynamoDBResources.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AWSDynamoDBResources.h; sourceTree = ""; }; BDB73D6E1B1D3E9B00717559 /* AWSDynamoDBResources.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSDynamoDBResources.m; sourceTree = ""; }; + BDD876A31B4B52AE009268C7 /* libOCMock.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libOCMock.a; path = AWSCoreTests/OCMock/libOCMock.a; sourceTree = ""; }; + BDF1259A1B45C12600DFBFEC /* AWSDynamoDBUnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AWSDynamoDBUnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; BDF559271AB374F00067F4F1 /* libAWSDynamoDB.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libAWSDynamoDB.a; sourceTree = BUILT_PRODUCTS_DIR; }; BDF559321AB374F00067F4F1 /* AWSDynamoDBTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AWSDynamoDBTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; BDF559381AB374F00067F4F1 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = ../AWSDynamoDBTests/Info.plist; sourceTree = ""; }; @@ -81,11 +94,20 @@ BDF559481AB375260067F4F1 /* AWSDynamoDBObjectMapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AWSDynamoDBObjectMapper.m; path = ../AWSDynamoDB/AWSDynamoDBObjectMapper.m; sourceTree = ""; }; CEE532591B03D374002CED62 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; CEE7DE6A1AC1E1500095C4B7 /* AWSDynamoDBService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AWSDynamoDBService.h; path = ../AWSDynamoDB/AWSDynamoDBService.h; sourceTree = ""; }; - DDFD2473B32B034328A614B9 /* libPods-AWSDynamoDB.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AWSDynamoDB.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - EBAF4E5A29F812E8DB81C584 /* Pods-AWSDynamoDB.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSDynamoDB.debug.xcconfig"; path = "Pods/Target Support Files/Pods-AWSDynamoDB/Pods-AWSDynamoDB.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + BDF125911B45C12600DFBFEC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BDD876A41B4B52AE009268C7 /* libOCMock.a in Frameworks */, + BDF125921B45C12600DFBFEC /* libz.dylib in Frameworks */, + BDF125931B45C12600DFBFEC /* libAWSCore.a in Frameworks */, + BDF125941B45C12600DFBFEC /* libAWSDynamoDB.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; BDF559241AB374F00067F4F1 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -109,9 +131,9 @@ A5F6D5DAB609D2CE34387FFD /* Frameworks */ = { isa = PBXGroup; children = ( + BDD876A31B4B52AE009268C7 /* libOCMock.a */, CEE532591B03D374002CED62 /* libz.dylib */, BD00FF481AB8B6F8004496EF /* libAWSCore.a */, - DDFD2473B32B034328A614B9 /* libPods-AWSDynamoDB.a */, ); name = Frameworks; sourceTree = ""; @@ -122,7 +144,6 @@ BDF559291AB374F00067F4F1 /* AWSDynamoDB */, BDF559361AB374F00067F4F1 /* AWSDynamoDBTests */, BDF559281AB374F00067F4F1 /* Products */, - FB0C9163F76D9A9E125E73BA /* Pods */, A5F6D5DAB609D2CE34387FFD /* Frameworks */, ); sourceTree = ""; @@ -132,6 +153,7 @@ children = ( BDF559271AB374F00067F4F1 /* libAWSDynamoDB.a */, BDF559321AB374F00067F4F1 /* AWSDynamoDBTests.xctest */, + BDF1259A1B45C12600DFBFEC /* AWSDynamoDBUnitTests.xctest */, ); name = Products; sourceTree = ""; @@ -176,15 +198,6 @@ name = "Supporting Files"; sourceTree = ""; }; - FB0C9163F76D9A9E125E73BA /* Pods */ = { - isa = PBXGroup; - children = ( - EBAF4E5A29F812E8DB81C584 /* Pods-AWSDynamoDB.debug.xcconfig */, - 9F85B3DCB7942BDFD5AC15D6 /* Pods-AWSDynamoDB.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -203,6 +216,24 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ + BDF125881B45C12600DFBFEC /* AWSDynamoDBUnitTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = BDF125971B45C12600DFBFEC /* Build configuration list for PBXNativeTarget "AWSDynamoDBUnitTests" */; + buildPhases = ( + BDF1258B1B45C12600DFBFEC /* Sources */, + BDF125911B45C12600DFBFEC /* Frameworks */, + BDF125951B45C12600DFBFEC /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + BDF125891B45C12600DFBFEC /* PBXTargetDependency */, + ); + name = AWSDynamoDBUnitTests; + productName = DynamoDBTests; + productReference = BDF1259A1B45C12600DFBFEC /* AWSDynamoDBUnitTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; BDF559261AB374F00067F4F1 /* AWSDynamoDB */ = { isa = PBXNativeTarget; buildConfigurationList = BDF5593B1AB374F00067F4F1 /* Build configuration list for PBXNativeTarget "AWSDynamoDB" */; @@ -270,11 +301,19 @@ targets = ( BDF559261AB374F00067F4F1 /* AWSDynamoDB */, BDF559311AB374F00067F4F1 /* AWSDynamoDBTests */, + BDF125881B45C12600DFBFEC /* AWSDynamoDBUnitTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + BDF125951B45C12600DFBFEC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; BDF559301AB374F00067F4F1 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -286,6 +325,15 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + BDF1258B1B45C12600DFBFEC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BDF1258E1B45C12600DFBFEC /* AWSTestUtility.m in Sources */, + BDF1258F1B45C12600DFBFEC /* AWSGeneralDynamoDBTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; BDF559231AB374F00067F4F1 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -304,7 +352,6 @@ BD0000021AB8C461004496EF /* AWSDynamoDBObjectMapperTests.m in Sources */, BD0000031AB8C461004496EF /* AWSDynamoDBTests.m in Sources */, BD0000641AB8E20C004496EF /* AWSTestUtility.m in Sources */, - BD0000001AB8C461004496EF /* AWSGeneralDynamoDBTests.m in Sources */, BD0000011AB8C461004496EF /* AWSDynamoDBObjectMapperSwiftTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -312,6 +359,11 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + BDF125891B45C12600DFBFEC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BDF559261AB374F00067F4F1 /* AWSDynamoDB */; + targetProxy = BDF1258A1B45C12600DFBFEC /* PBXContainerItemProxy */; + }; BDF559351AB374F00067F4F1 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = BDF559261AB374F00067F4F1 /* AWSDynamoDB */; @@ -320,10 +372,74 @@ /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ + BDF125981B45C12600DFBFEC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = AWSDynamoDBTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSDynamoDBUnitTests; + SWIFT_OBJC_BRIDGING_HEADER = "$(SRCROOT)/AWSCoreTests/AWSiOSSDKv2Tests-Bridging-Header.h"; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Debug; + }; + BDF125991B45C12600DFBFEC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + INFOPLIST_FILE = AWSDynamoDBTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSDynamoDBUnitTests; + SWIFT_OBJC_BRIDGING_HEADER = "$(SRCROOT)/AWSCoreTests/AWSiOSSDKv2Tests-Bridging-Header.h"; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Release; + }; BDF559391AB374F00067F4F1 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -365,6 +481,10 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -439,6 +559,7 @@ ); INFOPLIST_FILE = AWSDynamoDBTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = AWSDynamoDBTests; SWIFT_OBJC_BRIDGING_HEADER = "$(SRCROOT)/AWSCoreTests/AWSiOSSDKv2Tests-Bridging-Header.h"; }; @@ -455,6 +576,7 @@ GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; INFOPLIST_FILE = AWSDynamoDBTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = AWSDynamoDBTests; SWIFT_OBJC_BRIDGING_HEADER = "$(SRCROOT)/AWSCoreTests/AWSiOSSDKv2Tests-Bridging-Header.h"; }; @@ -463,6 +585,15 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + BDF125971B45C12600DFBFEC /* Build configuration list for PBXNativeTarget "AWSDynamoDBUnitTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BDF125981B45C12600DFBFEC /* Debug */, + BDF125991B45C12600DFBFEC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; BDF559221AB374F00067F4F1 /* Build configuration list for PBXProject "AWSDynamoDB" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/AWSDynamoDB.xcodeproj/xcshareddata/xcschemes/AWSDynamoDB.xcscheme b/AWSDynamoDB.xcodeproj/xcshareddata/xcschemes/AWSDynamoDB.xcscheme new file mode 100644 index 00000000000..a806a4d1694 --- /dev/null +++ b/AWSDynamoDB.xcodeproj/xcshareddata/xcschemes/AWSDynamoDB.xcscheme @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AWSDynamoDB/AWSDynamoDBService.m b/AWSDynamoDB/AWSDynamoDBService.m index 1ac789f41eb..1996bb46679 100644 --- a/AWSDynamoDB/AWSDynamoDBService.m +++ b/AWSDynamoDB/AWSDynamoDBService.m @@ -217,9 +217,7 @@ - (instancetype)initWithConfiguration:(AWSServiceConfiguration *)configuration { _configuration.requestSerializer = [AWSJSONRequestSerializer new]; _configuration.requestInterceptors = @[[AWSNetworkingRequestInterceptor new], signer]; _configuration.retryHandler = [[AWSDynamoDBRequestRetryHandler alloc] initWithMaximumRetryCount:_configuration.maxRetryCount]; - _configuration.headers = @{@"Host" : _configuration.endpoint.hostName, - @"Content-Type" : @"application/x-amz-json-1.0", - @"Accept-Encoding" : @""}; + _configuration.headers = @{@"Content-Type" : @"application/x-amz-json-1.0"}; _networking = [[AWSNetworking alloc] initWithConfiguration:_configuration]; } diff --git a/AWSDynamoDBTests/AWSGeneralDynamoDBTests.m b/AWSDynamoDBTests/AWSGeneralDynamoDBTests.m index 6e298d54b7b..5da769ca399 100644 --- a/AWSDynamoDBTests/AWSGeneralDynamoDBTests.m +++ b/AWSDynamoDBTests/AWSGeneralDynamoDBTests.m @@ -15,9 +15,12 @@ #import #import +#import #import "AWSTestUtility.h" #import "AWSDynamoDB.h" +static id mockNetworking = nil; + @interface AWSGeneralDynamoDBTests : XCTestCase @end @@ -26,7 +29,11 @@ @implementation AWSGeneralDynamoDBTests - (void)setUp { [super setUp]; - [AWSTestUtility setupCognitoCredentialsProvider]; + [AWSTestUtility setupFakeCognitoCredentialsProvider]; + + mockNetworking = OCMClassMock([AWSNetworking class]); + AWSTask *errorTask = [AWSTask taskWithError:[NSError errorWithDomain:@"OCMockExpectedNetworkingError" code:8848 userInfo:nil]]; + OCMStub([mockNetworking sendRequest:[OCMArg isKindOfClass:[AWSNetworkingRequest class]]]).andReturn(errorTask); } - (void)tearDown { @@ -55,13 +62,20 @@ - (void)testBatchGetItem { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSDynamoDB registerDynamoDBWithConfiguration:configuration forKey:key]; + AWSDynamoDB *awsClient = [AWSDynamoDB DynamoDBForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSDynamoDB DynamoDBForKey:key] batchGetItem:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSDynamoDB removeDynamoDBForKey:key]; } @@ -70,13 +84,20 @@ - (void)testBatchWriteItem { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSDynamoDB registerDynamoDBWithConfiguration:configuration forKey:key]; + AWSDynamoDB *awsClient = [AWSDynamoDB DynamoDBForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSDynamoDB DynamoDBForKey:key] batchWriteItem:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSDynamoDB removeDynamoDBForKey:key]; } @@ -85,13 +106,20 @@ - (void)testCreateTable { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSDynamoDB registerDynamoDBWithConfiguration:configuration forKey:key]; + AWSDynamoDB *awsClient = [AWSDynamoDB DynamoDBForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSDynamoDB DynamoDBForKey:key] createTable:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSDynamoDB removeDynamoDBForKey:key]; } @@ -100,13 +128,20 @@ - (void)testDeleteItem { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSDynamoDB registerDynamoDBWithConfiguration:configuration forKey:key]; + AWSDynamoDB *awsClient = [AWSDynamoDB DynamoDBForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSDynamoDB DynamoDBForKey:key] deleteItem:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSDynamoDB removeDynamoDBForKey:key]; } @@ -115,13 +150,20 @@ - (void)testDeleteTable { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSDynamoDB registerDynamoDBWithConfiguration:configuration forKey:key]; + AWSDynamoDB *awsClient = [AWSDynamoDB DynamoDBForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSDynamoDB DynamoDBForKey:key] deleteTable:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSDynamoDB removeDynamoDBForKey:key]; } @@ -130,13 +172,20 @@ - (void)testDescribeTable { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSDynamoDB registerDynamoDBWithConfiguration:configuration forKey:key]; + AWSDynamoDB *awsClient = [AWSDynamoDB DynamoDBForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSDynamoDB DynamoDBForKey:key] describeTable:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSDynamoDB removeDynamoDBForKey:key]; } @@ -145,13 +194,20 @@ - (void)testGetItem { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSDynamoDB registerDynamoDBWithConfiguration:configuration forKey:key]; + AWSDynamoDB *awsClient = [AWSDynamoDB DynamoDBForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSDynamoDB DynamoDBForKey:key] getItem:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSDynamoDB removeDynamoDBForKey:key]; } @@ -160,13 +216,20 @@ - (void)testListTables { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSDynamoDB registerDynamoDBWithConfiguration:configuration forKey:key]; + AWSDynamoDB *awsClient = [AWSDynamoDB DynamoDBForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSDynamoDB DynamoDBForKey:key] listTables:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSDynamoDB removeDynamoDBForKey:key]; } @@ -175,13 +238,20 @@ - (void)testPutItem { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSDynamoDB registerDynamoDBWithConfiguration:configuration forKey:key]; + AWSDynamoDB *awsClient = [AWSDynamoDB DynamoDBForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSDynamoDB DynamoDBForKey:key] putItem:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSDynamoDB removeDynamoDBForKey:key]; } @@ -190,13 +260,20 @@ - (void)testQuery { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSDynamoDB registerDynamoDBWithConfiguration:configuration forKey:key]; + AWSDynamoDB *awsClient = [AWSDynamoDB DynamoDBForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSDynamoDB DynamoDBForKey:key] query:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSDynamoDB removeDynamoDBForKey:key]; } @@ -205,13 +282,20 @@ - (void)testScan { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSDynamoDB registerDynamoDBWithConfiguration:configuration forKey:key]; + AWSDynamoDB *awsClient = [AWSDynamoDB DynamoDBForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSDynamoDB DynamoDBForKey:key] scan:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSDynamoDB removeDynamoDBForKey:key]; } @@ -220,13 +304,20 @@ - (void)testUpdateItem { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSDynamoDB registerDynamoDBWithConfiguration:configuration forKey:key]; + AWSDynamoDB *awsClient = [AWSDynamoDB DynamoDBForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSDynamoDB DynamoDBForKey:key] updateItem:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSDynamoDB removeDynamoDBForKey:key]; } @@ -235,13 +326,20 @@ - (void)testUpdateTable { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSDynamoDB registerDynamoDBWithConfiguration:configuration forKey:key]; + AWSDynamoDB *awsClient = [AWSDynamoDB DynamoDBForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSDynamoDB DynamoDBForKey:key] updateTable:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSDynamoDB removeDynamoDBForKey:key]; } diff --git a/AWSEC2.podspec b/AWSEC2.podspec index 282dbf9f4dd..7930290ded0 100644 --- a/AWSEC2.podspec +++ b/AWSEC2.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = 'AWSEC2' - s.version = '2.2.0' + s.version = '2.2.1' s.summary = 'Amazon Web Services SDK for iOS.' s.description = 'The AWS SDK for iOS provides a library, code samples, and documentation for developers to build connected mobile applications using AWS.' @@ -13,7 +13,7 @@ Pod::Spec.new do |s| s.source = { :git => 'https://github.com/aws/aws-sdk-ios.git', :tag => s.version} s.requires_arc = true - s.dependency 'AWSCore', '2.2.0' + s.dependency 'AWSCore', '2.2.1' s.source_files = 'AWSEC2/*.{h,m}' end diff --git a/AWSEC2.xcodeproj/project.pbxproj b/AWSEC2.xcodeproj/project.pbxproj index 932c542ca1a..19ee3cf3bdf 100644 --- a/AWSEC2.xcodeproj/project.pbxproj +++ b/AWSEC2.xcodeproj/project.pbxproj @@ -10,13 +10,18 @@ BD0000401AB8C560004496EF /* credentials.json in Resources */ = {isa = PBXBuildFile; fileRef = BD00003F1AB8C560004496EF /* credentials.json */; }; BD0000611AB8E1FD004496EF /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0000601AB8E1FD004496EF /* AWSTestUtility.m */; }; BD00FF471AB8B6F0004496EF /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BD00FF461AB8B6F0004496EF /* libAWSCore.a */; }; - BD00FFFA1AB8C456004496EF /* AWSGeneralEC2Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFF81AB8C456004496EF /* AWSGeneralEC2Tests.m */; }; BD00FFFB1AB8C456004496EF /* AWSEC2Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFF91AB8C456004496EF /* AWSEC2Tests.m */; }; BD9D97601AC1EE9700CEEE08 /* AWSEC2Service.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = CEE7DE6C1AC1E1780095C4B7 /* AWSEC2Service.h */; }; BDB73D731B1D3ECD00717559 /* AWSEC2Resources.h in Headers */ = {isa = PBXBuildFile; fileRef = BDB73D711B1D3ECD00717559 /* AWSEC2Resources.h */; }; BDB73D741B1D3ECD00717559 /* AWSEC2Resources.m in Sources */ = {isa = PBXBuildFile; fileRef = BDB73D721B1D3ECD00717559 /* AWSEC2Resources.m */; }; BDC91C541ABBA0DB00F74D49 /* AWSEC2.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDF559761AB375AE0067F4F1 /* AWSEC2.h */; }; BDC91C551ABBA0DB00F74D49 /* AWSEC2Model.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDF559781AB375AE0067F4F1 /* AWSEC2Model.h */; }; + BDD876A61B4B52C1009268C7 /* libOCMock.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDD876A51B4B52C0009268C7 /* libOCMock.a */; }; + BDF125A11B45C17D00DFBFEC /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0000601AB8E1FD004496EF /* AWSTestUtility.m */; }; + BDF125A21B45C17D00DFBFEC /* AWSGeneralEC2Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFF81AB8C456004496EF /* AWSGeneralEC2Tests.m */; }; + BDF125A41B45C17D00DFBFEC /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE5326B1B03D3C4002CED62 /* libz.dylib */; }; + BDF125A51B45C17D00DFBFEC /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BD00FF461AB8B6F0004496EF /* libAWSCore.a */; }; + BDF125A61B45C17D00DFBFEC /* libAWSEC2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDF5595A1AB375800067F4F1 /* libAWSEC2.a */; }; BDF559661AB375800067F4F1 /* libAWSEC2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDF5595A1AB375800067F4F1 /* libAWSEC2.a */; }; BDF5597C1AB375AE0067F4F1 /* AWSEC2.h in Headers */ = {isa = PBXBuildFile; fileRef = BDF559761AB375AE0067F4F1 /* AWSEC2.h */; settings = {ATTRIBUTES = (Public, ); }; }; BDF5597D1AB375AE0067F4F1 /* AWSEC2Service.m in Sources */ = {isa = PBXBuildFile; fileRef = BDF559771AB375AE0067F4F1 /* AWSEC2Service.m */; }; @@ -27,6 +32,13 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + BDF1259E1B45C17D00DFBFEC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BDF559521AB375800067F4F1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BDF559591AB375800067F4F1; + remoteInfo = EC2; + }; BDF559671AB375800067F4F1 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BDF559521AB375800067F4F1 /* Project object */; @@ -52,7 +64,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 1652315196F8BFB7080141B4 /* libPods-AWSEC2.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AWSEC2.a"; sourceTree = BUILT_PRODUCTS_DIR; }; BD00003F1AB8C560004496EF /* credentials.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = credentials.json; path = AWSCoreTests/credentials.json; sourceTree = SOURCE_ROOT; }; BD00005F1AB8E1FD004496EF /* AWSTestUtility.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AWSTestUtility.h; path = AWSCoreTests/AWSTestUtility.h; sourceTree = SOURCE_ROOT; }; BD0000601AB8E1FD004496EF /* AWSTestUtility.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AWSTestUtility.m; path = AWSCoreTests/AWSTestUtility.m; sourceTree = SOURCE_ROOT; }; @@ -61,6 +72,8 @@ BD00FFF91AB8C456004496EF /* AWSEC2Tests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AWSEC2Tests.m; path = ../AWSEC2Tests/AWSEC2Tests.m; sourceTree = ""; }; BDB73D711B1D3ECD00717559 /* AWSEC2Resources.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AWSEC2Resources.h; sourceTree = ""; }; BDB73D721B1D3ECD00717559 /* AWSEC2Resources.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSEC2Resources.m; sourceTree = ""; }; + BDD876A51B4B52C0009268C7 /* libOCMock.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libOCMock.a; path = AWSCoreTests/OCMock/libOCMock.a; sourceTree = ""; }; + BDF125AC1B45C17D00DFBFEC /* AWSEC2UnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AWSEC2UnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; BDF5595A1AB375800067F4F1 /* libAWSEC2.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libAWSEC2.a; sourceTree = BUILT_PRODUCTS_DIR; }; BDF559651AB375800067F4F1 /* AWSEC2Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AWSEC2Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; BDF5596B1AB375800067F4F1 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = ../AWSEC2Tests/Info.plist; sourceTree = ""; }; @@ -68,13 +81,22 @@ BDF559771AB375AE0067F4F1 /* AWSEC2Service.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AWSEC2Service.m; path = ../AWSEC2/AWSEC2Service.m; sourceTree = ""; }; BDF559781AB375AE0067F4F1 /* AWSEC2Model.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AWSEC2Model.h; path = ../AWSEC2/AWSEC2Model.h; sourceTree = ""; }; BDF559791AB375AE0067F4F1 /* AWSEC2Model.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AWSEC2Model.m; path = ../AWSEC2/AWSEC2Model.m; sourceTree = ""; }; - C77BF0C233DD79AB8C40D0C2 /* Pods-AWSEC2.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSEC2.debug.xcconfig"; path = "Pods/Target Support Files/Pods-AWSEC2/Pods-AWSEC2.debug.xcconfig"; sourceTree = ""; }; CEE5326B1B03D3C4002CED62 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; CEE7DE6C1AC1E1780095C4B7 /* AWSEC2Service.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AWSEC2Service.h; path = ../AWSEC2/AWSEC2Service.h; sourceTree = ""; }; - DC7D62494B298408B770C894 /* Pods-AWSEC2.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSEC2.release.xcconfig"; path = "Pods/Target Support Files/Pods-AWSEC2/Pods-AWSEC2.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + BDF125A31B45C17D00DFBFEC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BDD876A61B4B52C1009268C7 /* libOCMock.a in Frameworks */, + BDF125A41B45C17D00DFBFEC /* libz.dylib in Frameworks */, + BDF125A51B45C17D00DFBFEC /* libAWSCore.a in Frameworks */, + BDF125A61B45C17D00DFBFEC /* libAWSEC2.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; BDF559571AB375800067F4F1 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -98,9 +120,9 @@ 44F883773B67388A29D3A410 /* Frameworks */ = { isa = PBXGroup; children = ( + BDD876A51B4B52C0009268C7 /* libOCMock.a */, CEE5326B1B03D3C4002CED62 /* libz.dylib */, BD00FF461AB8B6F0004496EF /* libAWSCore.a */, - 1652315196F8BFB7080141B4 /* libPods-AWSEC2.a */, ); name = Frameworks; sourceTree = ""; @@ -111,7 +133,6 @@ BDF5595C1AB375800067F4F1 /* AWSEC2 */, BDF559691AB375800067F4F1 /* AWSEC2Tests */, BDF5595B1AB375800067F4F1 /* Products */, - CB7989A3CE5779C4C4D6F37E /* Pods */, 44F883773B67388A29D3A410 /* Frameworks */, ); sourceTree = ""; @@ -121,6 +142,7 @@ children = ( BDF5595A1AB375800067F4F1 /* libAWSEC2.a */, BDF559651AB375800067F4F1 /* AWSEC2Tests.xctest */, + BDF125AC1B45C17D00DFBFEC /* AWSEC2UnitTests.xctest */, ); name = Products; sourceTree = ""; @@ -160,15 +182,6 @@ name = "Supporting Files"; sourceTree = ""; }; - CB7989A3CE5779C4C4D6F37E /* Pods */ = { - isa = PBXGroup; - children = ( - C77BF0C233DD79AB8C40D0C2 /* Pods-AWSEC2.debug.xcconfig */, - DC7D62494B298408B770C894 /* Pods-AWSEC2.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -186,6 +199,24 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ + BDF1259C1B45C17D00DFBFEC /* AWSEC2UnitTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = BDF125A91B45C17D00DFBFEC /* Build configuration list for PBXNativeTarget "AWSEC2UnitTests" */; + buildPhases = ( + BDF1259F1B45C17D00DFBFEC /* Sources */, + BDF125A31B45C17D00DFBFEC /* Frameworks */, + BDF125A71B45C17D00DFBFEC /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + BDF1259D1B45C17D00DFBFEC /* PBXTargetDependency */, + ); + name = AWSEC2UnitTests; + productName = EC2Tests; + productReference = BDF125AC1B45C17D00DFBFEC /* AWSEC2UnitTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; BDF559591AB375800067F4F1 /* AWSEC2 */ = { isa = PBXNativeTarget; buildConfigurationList = BDF5596E1AB375800067F4F1 /* Build configuration list for PBXNativeTarget "AWSEC2" */; @@ -253,11 +284,19 @@ targets = ( BDF559591AB375800067F4F1 /* AWSEC2 */, BDF559641AB375800067F4F1 /* AWSEC2Tests */, + BDF1259C1B45C17D00DFBFEC /* AWSEC2UnitTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + BDF125A71B45C17D00DFBFEC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; BDF559631AB375800067F4F1 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -269,6 +308,15 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + BDF1259F1B45C17D00DFBFEC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BDF125A11B45C17D00DFBFEC /* AWSTestUtility.m in Sources */, + BDF125A21B45C17D00DFBFEC /* AWSGeneralEC2Tests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; BDF559561AB375800067F4F1 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -285,13 +333,17 @@ files = ( BD00FFFB1AB8C456004496EF /* AWSEC2Tests.m in Sources */, BD0000611AB8E1FD004496EF /* AWSTestUtility.m in Sources */, - BD00FFFA1AB8C456004496EF /* AWSGeneralEC2Tests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + BDF1259D1B45C17D00DFBFEC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BDF559591AB375800067F4F1 /* AWSEC2 */; + targetProxy = BDF1259E1B45C17D00DFBFEC /* PBXContainerItemProxy */; + }; BDF559681AB375800067F4F1 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = BDF559591AB375800067F4F1 /* AWSEC2 */; @@ -300,10 +352,72 @@ /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ + BDF125AA1B45C17D00DFBFEC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = AWSEC2Tests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSEC2UnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Debug; + }; + BDF125AB1B45C17D00DFBFEC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + INFOPLIST_FILE = AWSEC2Tests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSEC2UnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Release; + }; BDF5596C1AB375800067F4F1 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -345,6 +459,10 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -419,6 +537,7 @@ ); INFOPLIST_FILE = AWSEC2Tests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = AWSEC2Tests; }; name = Debug; @@ -434,6 +553,7 @@ GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; INFOPLIST_FILE = AWSEC2Tests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = AWSEC2Tests; }; name = Release; @@ -441,6 +561,15 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + BDF125A91B45C17D00DFBFEC /* Build configuration list for PBXNativeTarget "AWSEC2UnitTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BDF125AA1B45C17D00DFBFEC /* Debug */, + BDF125AB1B45C17D00DFBFEC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; BDF559551AB375800067F4F1 /* Build configuration list for PBXProject "AWSEC2" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/AWSEC2.xcodeproj/xcshareddata/xcschemes/AWSEC2.xcscheme b/AWSEC2.xcodeproj/xcshareddata/xcschemes/AWSEC2.xcscheme new file mode 100644 index 00000000000..d3b57ecb835 --- /dev/null +++ b/AWSEC2.xcodeproj/xcshareddata/xcschemes/AWSEC2.xcscheme @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AWSEC2/AWSEC2Service.m b/AWSEC2/AWSEC2Service.m index 821d4477723..35e1f67fe63 100644 --- a/AWSEC2/AWSEC2Service.m +++ b/AWSEC2/AWSEC2Service.m @@ -201,7 +201,6 @@ - (instancetype)initWithConfiguration:(AWSServiceConfiguration *)configuration { _configuration.baseURL = _configuration.endpoint.URL; _configuration.requestInterceptors = @[[AWSNetworkingRequestInterceptor new], signer]; _configuration.retryHandler = [[AWSEC2RequestRetryHandler alloc] initWithMaximumRetryCount:_configuration.maxRetryCount]; - _configuration.headers = @{@"Host" : _configuration.endpoint.hostName}; _networking = [[AWSNetworking alloc] initWithConfiguration:_configuration]; } diff --git a/AWSEC2Tests/AWSEC2Tests.m b/AWSEC2Tests/AWSEC2Tests.m index 838fac1af70..44c84211099 100644 --- a/AWSEC2Tests/AWSEC2Tests.m +++ b/AWSEC2Tests/AWSEC2Tests.m @@ -13,6 +13,7 @@ permissions and limitations under the License. */ +#import #import #import "AWSEC2.h" #import "AWSTestUtility.h" diff --git a/AWSEC2Tests/AWSGeneralEC2Tests.m b/AWSEC2Tests/AWSGeneralEC2Tests.m index 34f244dff9e..e2ac6c7a76a 100644 --- a/AWSEC2Tests/AWSGeneralEC2Tests.m +++ b/AWSEC2Tests/AWSGeneralEC2Tests.m @@ -15,9 +15,12 @@ #import #import +#import #import "AWSTestUtility.h" #import "AWSEC2.h" +static id mockNetworking = nil; + @interface AWSGeneralEC2Tests : XCTestCase @end @@ -26,7 +29,11 @@ @implementation AWSGeneralEC2Tests - (void)setUp { [super setUp]; - [AWSTestUtility setupCognitoCredentialsProvider]; + [AWSTestUtility setupFakeCognitoCredentialsProvider]; + + mockNetworking = OCMClassMock([AWSNetworking class]); + AWSTask *errorTask = [AWSTask taskWithError:[NSError errorWithDomain:@"OCMockExpectedNetworkingError" code:8848 userInfo:nil]]; + OCMStub([mockNetworking sendRequest:[OCMArg isKindOfClass:[AWSNetworkingRequest class]]]).andReturn(errorTask); } - (void)tearDown { @@ -55,13 +62,20 @@ - (void)testAcceptVpcPeeringConnection { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] acceptVpcPeeringConnection:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -70,13 +84,20 @@ - (void)testAllocateAddress { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] allocateAddress:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -85,13 +106,20 @@ - (void)testAssignPrivateIpAddresses { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] assignPrivateIpAddresses:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -100,13 +128,20 @@ - (void)testAssociateAddress { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] associateAddress:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -115,13 +150,20 @@ - (void)testAssociateDhcpOptions { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] associateDhcpOptions:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -130,13 +172,42 @@ - (void)testAssociateRouteTable { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] associateRouteTable:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); + XCTAssertNil(task.exception); + XCTAssertNil(task.result); + return nil; + }] waitUntilFinished]; + + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + + [AWSEC2 removeEC2ForKey:key]; +} + +- (void)testAttachClassicLinkVpc { + NSString *key = @"testAttachClassicLinkVpc"; + AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; + [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; + [[[[AWSEC2 EC2ForKey:key] attachClassicLinkVpc:nil] continueWithBlock:^id(AWSTask *task) { + XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -145,13 +216,20 @@ - (void)testAttachInternetGateway { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] attachInternetGateway:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -160,13 +238,20 @@ - (void)testAttachNetworkInterface { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] attachNetworkInterface:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -175,13 +260,20 @@ - (void)testAttachVolume { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] attachVolume:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -190,13 +282,20 @@ - (void)testAttachVpnGateway { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] attachVpnGateway:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -205,13 +304,20 @@ - (void)testAuthorizeSecurityGroupEgress { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] authorizeSecurityGroupEgress:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -220,13 +326,20 @@ - (void)testAuthorizeSecurityGroupIngress { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] authorizeSecurityGroupIngress:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -235,13 +348,20 @@ - (void)testBundleInstance { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] bundleInstance:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -250,13 +370,20 @@ - (void)testCancelBundleTask { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] cancelBundleTask:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -265,13 +392,20 @@ - (void)testCancelConversionTask { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] cancelConversionTask:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -280,13 +414,20 @@ - (void)testCancelExportTask { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] cancelExportTask:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -295,13 +436,20 @@ - (void)testCancelReservedInstancesListing { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] cancelReservedInstancesListing:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -310,13 +458,20 @@ - (void)testCancelSpotInstanceRequests { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] cancelSpotInstanceRequests:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -325,13 +480,20 @@ - (void)testConfirmProductInstance { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] confirmProductInstance:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -340,13 +502,20 @@ - (void)testCreateCustomerGateway { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] createCustomerGateway:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -355,13 +524,20 @@ - (void)testCreateDhcpOptions { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] createDhcpOptions:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -370,13 +546,20 @@ - (void)testCreateImage { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] createImage:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -385,13 +568,20 @@ - (void)testCreateInstanceExportTask { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] createInstanceExportTask:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -400,13 +590,20 @@ - (void)testCreateInternetGateway { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] createInternetGateway:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -415,13 +612,20 @@ - (void)testCreateKeyPair { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] createKeyPair:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -430,13 +634,20 @@ - (void)testCreateNetworkAcl { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] createNetworkAcl:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -445,13 +656,20 @@ - (void)testCreateNetworkAclEntry { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] createNetworkAclEntry:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -460,13 +678,20 @@ - (void)testCreateNetworkInterface { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] createNetworkInterface:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -475,13 +700,20 @@ - (void)testCreatePlacementGroup { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] createPlacementGroup:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -490,13 +722,20 @@ - (void)testCreateReservedInstancesListing { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] createReservedInstancesListing:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -505,13 +744,20 @@ - (void)testCreateRoute { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] createRoute:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -520,13 +766,20 @@ - (void)testCreateRouteTable { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] createRouteTable:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -535,13 +788,20 @@ - (void)testCreateSecurityGroup { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] createSecurityGroup:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -550,13 +810,20 @@ - (void)testCreateSnapshot { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] createSnapshot:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -565,13 +832,20 @@ - (void)testCreateSpotDatafeedSubscription { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] createSpotDatafeedSubscription:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -580,13 +854,20 @@ - (void)testCreateSubnet { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] createSubnet:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -595,13 +876,20 @@ - (void)testCreateTags { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] createTags:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -610,13 +898,20 @@ - (void)testCreateVolume { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] createVolume:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -625,13 +920,20 @@ - (void)testCreateVpc { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] createVpc:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -640,13 +942,20 @@ - (void)testCreateVpcPeeringConnection { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] createVpcPeeringConnection:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -655,13 +964,20 @@ - (void)testCreateVpnConnection { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] createVpnConnection:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -670,13 +986,20 @@ - (void)testCreateVpnConnectionRoute { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] createVpnConnectionRoute:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -685,13 +1008,20 @@ - (void)testCreateVpnGateway { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] createVpnGateway:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -700,13 +1030,20 @@ - (void)testDeleteCustomerGateway { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] deleteCustomerGateway:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -715,13 +1052,20 @@ - (void)testDeleteDhcpOptions { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] deleteDhcpOptions:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -730,13 +1074,20 @@ - (void)testDeleteInternetGateway { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] deleteInternetGateway:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -745,13 +1096,20 @@ - (void)testDeleteKeyPair { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] deleteKeyPair:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -760,13 +1118,20 @@ - (void)testDeleteNetworkAcl { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] deleteNetworkAcl:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -775,13 +1140,20 @@ - (void)testDeleteNetworkAclEntry { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] deleteNetworkAclEntry:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -790,13 +1162,20 @@ - (void)testDeleteNetworkInterface { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] deleteNetworkInterface:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -805,13 +1184,20 @@ - (void)testDeletePlacementGroup { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] deletePlacementGroup:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -820,13 +1206,20 @@ - (void)testDeleteRoute { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] deleteRoute:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -835,13 +1228,20 @@ - (void)testDeleteRouteTable { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] deleteRouteTable:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -850,13 +1250,20 @@ - (void)testDeleteSecurityGroup { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] deleteSecurityGroup:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -865,13 +1272,20 @@ - (void)testDeleteSnapshot { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] deleteSnapshot:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -880,13 +1294,20 @@ - (void)testDeleteSpotDatafeedSubscription { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] deleteSpotDatafeedSubscription:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -895,13 +1316,20 @@ - (void)testDeleteSubnet { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] deleteSubnet:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -910,13 +1338,20 @@ - (void)testDeleteTags { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] deleteTags:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -925,13 +1360,20 @@ - (void)testDeleteVolume { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] deleteVolume:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -940,13 +1382,20 @@ - (void)testDeleteVpc { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] deleteVpc:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -955,13 +1404,20 @@ - (void)testDeleteVpcPeeringConnection { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] deleteVpcPeeringConnection:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -970,13 +1426,20 @@ - (void)testDeleteVpnConnection { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] deleteVpnConnection:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -985,13 +1448,20 @@ - (void)testDeleteVpnConnectionRoute { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] deleteVpnConnectionRoute:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1000,13 +1470,20 @@ - (void)testDeleteVpnGateway { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] deleteVpnGateway:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1015,13 +1492,20 @@ - (void)testDeregisterImage { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] deregisterImage:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1030,13 +1514,20 @@ - (void)testDescribeAccountAttributes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeAccountAttributes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1045,13 +1536,20 @@ - (void)testDescribeAddresses { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeAddresses:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1060,13 +1558,20 @@ - (void)testDescribeAvailabilityZones { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeAvailabilityZones:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1075,13 +1580,42 @@ - (void)testDescribeBundleTasks { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeBundleTasks:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); + XCTAssertNil(task.exception); + XCTAssertNil(task.result); + return nil; + }] waitUntilFinished]; + + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + + [AWSEC2 removeEC2ForKey:key]; +} + +- (void)testDescribeClassicLinkInstances { + NSString *key = @"testDescribeClassicLinkInstances"; + AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; + [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; + [[[[AWSEC2 EC2ForKey:key] describeClassicLinkInstances:nil] continueWithBlock:^id(AWSTask *task) { + XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1090,13 +1624,20 @@ - (void)testDescribeConversionTasks { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeConversionTasks:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1105,13 +1646,20 @@ - (void)testDescribeCustomerGateways { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeCustomerGateways:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1120,13 +1668,20 @@ - (void)testDescribeDhcpOptions { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeDhcpOptions:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1135,13 +1690,20 @@ - (void)testDescribeExportTasks { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeExportTasks:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1150,13 +1712,20 @@ - (void)testDescribeImageAttribute { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeImageAttribute:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1165,13 +1734,20 @@ - (void)testDescribeImages { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeImages:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1180,13 +1756,20 @@ - (void)testDescribeInstanceAttribute { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeInstanceAttribute:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1195,13 +1778,20 @@ - (void)testDescribeInstanceStatus { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeInstanceStatus:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1210,13 +1800,20 @@ - (void)testDescribeInstances { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeInstances:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1225,13 +1822,20 @@ - (void)testDescribeInternetGateways { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeInternetGateways:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1240,13 +1844,20 @@ - (void)testDescribeKeyPairs { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeKeyPairs:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1255,13 +1866,20 @@ - (void)testDescribeNetworkAcls { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeNetworkAcls:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1270,13 +1888,20 @@ - (void)testDescribeNetworkInterfaceAttribute { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeNetworkInterfaceAttribute:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1285,13 +1910,20 @@ - (void)testDescribeNetworkInterfaces { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeNetworkInterfaces:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1300,13 +1932,20 @@ - (void)testDescribePlacementGroups { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describePlacementGroups:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1315,13 +1954,20 @@ - (void)testDescribeRegions { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeRegions:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1330,13 +1976,20 @@ - (void)testDescribeReservedInstances { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeReservedInstances:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1345,13 +1998,20 @@ - (void)testDescribeReservedInstancesListings { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeReservedInstancesListings:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1360,13 +2020,20 @@ - (void)testDescribeReservedInstancesModifications { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeReservedInstancesModifications:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1375,13 +2042,20 @@ - (void)testDescribeReservedInstancesOfferings { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeReservedInstancesOfferings:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1390,13 +2064,20 @@ - (void)testDescribeRouteTables { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeRouteTables:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1405,13 +2086,20 @@ - (void)testDescribeSecurityGroups { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeSecurityGroups:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1420,13 +2108,20 @@ - (void)testDescribeSnapshotAttribute { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeSnapshotAttribute:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1435,13 +2130,20 @@ - (void)testDescribeSnapshots { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeSnapshots:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1450,13 +2152,20 @@ - (void)testDescribeSpotDatafeedSubscription { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeSpotDatafeedSubscription:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1465,13 +2174,20 @@ - (void)testDescribeSpotInstanceRequests { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeSpotInstanceRequests:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1480,13 +2196,20 @@ - (void)testDescribeSpotPriceHistory { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeSpotPriceHistory:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1495,13 +2218,20 @@ - (void)testDescribeSubnets { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeSubnets:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1510,13 +2240,20 @@ - (void)testDescribeTags { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeTags:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1525,13 +2262,20 @@ - (void)testDescribeVolumeAttribute { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeVolumeAttribute:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1540,13 +2284,20 @@ - (void)testDescribeVolumeStatus { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeVolumeStatus:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1555,13 +2306,20 @@ - (void)testDescribeVolumes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeVolumes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1570,13 +2328,42 @@ - (void)testDescribeVpcAttribute { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeVpcAttribute:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); + XCTAssertNil(task.exception); + XCTAssertNil(task.result); + return nil; + }] waitUntilFinished]; + + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + + [AWSEC2 removeEC2ForKey:key]; +} + +- (void)testDescribeVpcClassicLink { + NSString *key = @"testDescribeVpcClassicLink"; + AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; + [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; + [[[[AWSEC2 EC2ForKey:key] describeVpcClassicLink:nil] continueWithBlock:^id(AWSTask *task) { + XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1585,13 +2372,20 @@ - (void)testDescribeVpcPeeringConnections { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeVpcPeeringConnections:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1600,13 +2394,20 @@ - (void)testDescribeVpcs { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeVpcs:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1615,13 +2416,20 @@ - (void)testDescribeVpnConnections { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeVpnConnections:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1630,13 +2438,42 @@ - (void)testDescribeVpnGateways { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] describeVpnGateways:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + + [AWSEC2 removeEC2ForKey:key]; +} + +- (void)testDetachClassicLinkVpc { + NSString *key = @"testDetachClassicLinkVpc"; + AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; + [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; + [[[[AWSEC2 EC2ForKey:key] detachClassicLinkVpc:nil] continueWithBlock:^id(AWSTask *task) { + XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); + XCTAssertNil(task.exception); + XCTAssertNil(task.result); + return nil; + }] waitUntilFinished]; + + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1645,13 +2482,20 @@ - (void)testDetachInternetGateway { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] detachInternetGateway:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1660,13 +2504,20 @@ - (void)testDetachNetworkInterface { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] detachNetworkInterface:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1675,13 +2526,20 @@ - (void)testDetachVolume { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] detachVolume:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1690,13 +2548,20 @@ - (void)testDetachVpnGateway { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] detachVpnGateway:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1705,13 +2570,42 @@ - (void)testDisableVgwRoutePropagation { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] disableVgwRoutePropagation:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + + [AWSEC2 removeEC2ForKey:key]; +} + +- (void)testDisableVpcClassicLink { + NSString *key = @"testDisableVpcClassicLink"; + AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; + [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; + [[[[AWSEC2 EC2ForKey:key] disableVpcClassicLink:nil] continueWithBlock:^id(AWSTask *task) { + XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); + XCTAssertNil(task.exception); + XCTAssertNil(task.result); + return nil; + }] waitUntilFinished]; + + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1720,13 +2614,20 @@ - (void)testDisassociateAddress { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] disassociateAddress:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1735,13 +2636,20 @@ - (void)testDisassociateRouteTable { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] disassociateRouteTable:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1750,13 +2658,20 @@ - (void)testEnableVgwRoutePropagation { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] enableVgwRoutePropagation:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1765,13 +2680,42 @@ - (void)testEnableVolumeIO { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] enableVolumeIO:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + + [AWSEC2 removeEC2ForKey:key]; +} + +- (void)testEnableVpcClassicLink { + NSString *key = @"testEnableVpcClassicLink"; + AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; + [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; + [[[[AWSEC2 EC2ForKey:key] enableVpcClassicLink:nil] continueWithBlock:^id(AWSTask *task) { + XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); + XCTAssertNil(task.exception); + XCTAssertNil(task.result); + return nil; + }] waitUntilFinished]; + + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1780,13 +2724,20 @@ - (void)testGetConsoleOutput { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] getConsoleOutput:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1795,13 +2746,20 @@ - (void)testGetPasswordData { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] getPasswordData:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1810,13 +2768,20 @@ - (void)testImportInstance { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] importInstance:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1825,13 +2790,20 @@ - (void)testImportKeyPair { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] importKeyPair:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1840,13 +2812,20 @@ - (void)testImportVolume { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] importVolume:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1855,13 +2834,20 @@ - (void)testModifyImageAttribute { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] modifyImageAttribute:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1870,13 +2856,20 @@ - (void)testModifyInstanceAttribute { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] modifyInstanceAttribute:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1885,13 +2878,20 @@ - (void)testModifyNetworkInterfaceAttribute { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] modifyNetworkInterfaceAttribute:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1900,13 +2900,20 @@ - (void)testModifyReservedInstances { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] modifyReservedInstances:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1915,13 +2922,20 @@ - (void)testModifySnapshotAttribute { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] modifySnapshotAttribute:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1930,13 +2944,20 @@ - (void)testModifySubnetAttribute { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] modifySubnetAttribute:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1945,13 +2966,20 @@ - (void)testModifyVolumeAttribute { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] modifyVolumeAttribute:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1960,13 +2988,20 @@ - (void)testModifyVpcAttribute { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] modifyVpcAttribute:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1975,13 +3010,20 @@ - (void)testMonitorInstances { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] monitorInstances:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -1990,13 +3032,20 @@ - (void)testPurchaseReservedInstancesOffering { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] purchaseReservedInstancesOffering:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -2005,13 +3054,20 @@ - (void)testRebootInstances { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] rebootInstances:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -2020,13 +3076,20 @@ - (void)testRegisterImage { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] registerImage:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -2035,13 +3098,20 @@ - (void)testRejectVpcPeeringConnection { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] rejectVpcPeeringConnection:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -2050,13 +3120,20 @@ - (void)testReleaseAddress { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] releaseAddress:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -2065,13 +3142,20 @@ - (void)testReplaceNetworkAclAssociation { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] replaceNetworkAclAssociation:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -2080,13 +3164,20 @@ - (void)testReplaceNetworkAclEntry { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] replaceNetworkAclEntry:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -2095,13 +3186,20 @@ - (void)testReplaceRoute { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] replaceRoute:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -2110,13 +3208,20 @@ - (void)testReplaceRouteTableAssociation { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] replaceRouteTableAssociation:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -2125,13 +3230,20 @@ - (void)testReplicateImage { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] replicateImage:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -2140,13 +3252,20 @@ - (void)testReplicateSnapshot { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] replicateSnapshot:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -2155,13 +3274,20 @@ - (void)testReportInstanceStatus { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] reportInstanceStatus:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -2170,13 +3296,20 @@ - (void)testRequestSpotInstances { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] requestSpotInstances:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -2185,13 +3318,20 @@ - (void)testResetImageAttribute { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] resetImageAttribute:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -2200,13 +3340,20 @@ - (void)testResetInstanceAttribute { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] resetInstanceAttribute:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -2215,13 +3362,20 @@ - (void)testResetNetworkInterfaceAttribute { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] resetNetworkInterfaceAttribute:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -2230,13 +3384,20 @@ - (void)testResetSnapshotAttribute { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] resetSnapshotAttribute:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -2245,13 +3406,20 @@ - (void)testRevokeSecurityGroupEgress { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] revokeSecurityGroupEgress:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -2260,13 +3428,20 @@ - (void)testRevokeSecurityGroupIngress { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] revokeSecurityGroupIngress:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -2275,13 +3450,20 @@ - (void)testRunInstances { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] runInstances:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -2290,13 +3472,20 @@ - (void)testStartInstances { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] startInstances:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -2305,13 +3494,20 @@ - (void)testStopInstances { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] stopInstances:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -2320,13 +3516,20 @@ - (void)testTerminateInstances { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] terminateInstances:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -2335,13 +3538,20 @@ - (void)testUnassignPrivateIpAddresses { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] unassignPrivateIpAddresses:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } @@ -2350,13 +3560,20 @@ - (void)testUnmonitorInstances { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSEC2 registerEC2WithConfiguration:configuration forKey:key]; + AWSEC2 *awsClient = [AWSEC2 EC2ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSEC2 EC2ForKey:key] unmonitorInstances:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSEC2 removeEC2ForKey:key]; } diff --git a/AWSElasticLoadBalancing.podspec b/AWSElasticLoadBalancing.podspec index 144585f9e2d..2ce5d35f729 100644 --- a/AWSElasticLoadBalancing.podspec +++ b/AWSElasticLoadBalancing.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = 'AWSElasticLoadBalancing' - s.version = '2.2.0' + s.version = '2.2.1' s.summary = 'Amazon Web Services SDK for iOS.' s.description = 'The AWS SDK for iOS provides a library, code samples, and documentation for developers to build connected mobile applications using AWS.' @@ -13,7 +13,7 @@ Pod::Spec.new do |s| s.source = { :git => 'https://github.com/aws/aws-sdk-ios.git', :tag => s.version} s.requires_arc = true - s.dependency 'AWSCore', '2.2.0' + s.dependency 'AWSCore', '2.2.1' s.source_files = 'AWSElasticLoadBalancing/*.{h,m}' end diff --git a/AWSElasticLoadBalancing.xcodeproj/project.pbxproj b/AWSElasticLoadBalancing.xcodeproj/project.pbxproj index 8ebc3781d45..79b32c39970 100644 --- a/AWSElasticLoadBalancing.xcodeproj/project.pbxproj +++ b/AWSElasticLoadBalancing.xcodeproj/project.pbxproj @@ -10,13 +10,18 @@ BD00003E1AB8C554004496EF /* credentials.json in Resources */ = {isa = PBXBuildFile; fileRef = BD00003D1AB8C554004496EF /* credentials.json */; }; BD00005E1AB8E1EA004496EF /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00005D1AB8E1EA004496EF /* AWSTestUtility.m */; }; BD00FF451AB8B6E2004496EF /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BD00FF441AB8B6E2004496EF /* libAWSCore.a */; }; - BD00FFF61AB8C448004496EF /* AWSGeneralElasticLoadBalancingTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFF41AB8C448004496EF /* AWSGeneralElasticLoadBalancingTests.m */; }; BD00FFF71AB8C448004496EF /* AWSElasticLoadBalancingTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFF51AB8C448004496EF /* AWSElasticLoadBalancingTests.m */; }; BD9D97611AC1EEA300CEEE08 /* AWSElasticLoadBalancingService.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = CEE7DE6E1AC1E19D0095C4B7 /* AWSElasticLoadBalancingService.h */; }; BDB73D771B1D3EEB00717559 /* AWSElasticLoadBalancingResources.h in Headers */ = {isa = PBXBuildFile; fileRef = BDB73D751B1D3EEB00717559 /* AWSElasticLoadBalancingResources.h */; }; BDB73D781B1D3EEB00717559 /* AWSElasticLoadBalancingResources.m in Sources */ = {isa = PBXBuildFile; fileRef = BDB73D761B1D3EEB00717559 /* AWSElasticLoadBalancingResources.m */; }; BDC91C511ABBA0D100F74D49 /* AWSElasticLoadBalancing.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDF559A51AB3761C0067F4F1 /* AWSElasticLoadBalancing.h */; }; BDC91C521ABBA0D100F74D49 /* AWSElasticLoadBalancingModel.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDF559A71AB3761C0067F4F1 /* AWSElasticLoadBalancingModel.h */; }; + BDD876A81B4B52CE009268C7 /* libOCMock.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDD876A71B4B52CE009268C7 /* libOCMock.a */; }; + BDF125B21B45C1A900DFBFEC /* AWSGeneralElasticLoadBalancingTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFF41AB8C448004496EF /* AWSGeneralElasticLoadBalancingTests.m */; }; + BDF125B31B45C1A900DFBFEC /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00005D1AB8E1EA004496EF /* AWSTestUtility.m */; }; + BDF125B61B45C1A900DFBFEC /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE5325F1B03D397002CED62 /* libz.dylib */; }; + BDF125B71B45C1A900DFBFEC /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BD00FF441AB8B6E2004496EF /* libAWSCore.a */; }; + BDF125B81B45C1A900DFBFEC /* libAWSElasticLoadBalancing.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDF559891AB375EC0067F4F1 /* libAWSElasticLoadBalancing.a */; }; BDF559951AB375EC0067F4F1 /* libAWSElasticLoadBalancing.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDF559891AB375EC0067F4F1 /* libAWSElasticLoadBalancing.a */; }; BDF559AB1AB3761C0067F4F1 /* AWSElasticLoadBalancing.h in Headers */ = {isa = PBXBuildFile; fileRef = BDF559A51AB3761C0067F4F1 /* AWSElasticLoadBalancing.h */; settings = {ATTRIBUTES = (Public, ); }; }; BDF559AC1AB3761C0067F4F1 /* AWSElasticLoadBalancingService.m in Sources */ = {isa = PBXBuildFile; fileRef = BDF559A61AB3761C0067F4F1 /* AWSElasticLoadBalancingService.m */; }; @@ -27,6 +32,13 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + BDF125B01B45C1A900DFBFEC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BDF559811AB375EC0067F4F1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BDF559881AB375EC0067F4F1; + remoteInfo = ElasticLoadBalancing; + }; BDF559961AB375EC0067F4F1 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BDF559811AB375EC0067F4F1 /* Project object */; @@ -52,9 +64,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 1558F3BC5E9EBE610AB64769 /* Pods-AWSElasticLoadBalancing.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSElasticLoadBalancing.debug.xcconfig"; path = "Pods/Target Support Files/Pods-AWSElasticLoadBalancing/Pods-AWSElasticLoadBalancing.debug.xcconfig"; sourceTree = ""; }; - 25B63F98149D98A84CEDCF46 /* libPods-AWSElasticLoadBalancing.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AWSElasticLoadBalancing.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - BBFBBE8FE992747E1198A3EE /* Pods-AWSElasticLoadBalancing.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSElasticLoadBalancing.release.xcconfig"; path = "Pods/Target Support Files/Pods-AWSElasticLoadBalancing/Pods-AWSElasticLoadBalancing.release.xcconfig"; sourceTree = ""; }; BD00003D1AB8C554004496EF /* credentials.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = credentials.json; path = AWSCoreTests/credentials.json; sourceTree = SOURCE_ROOT; }; BD00005C1AB8E1EA004496EF /* AWSTestUtility.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AWSTestUtility.h; path = AWSCoreTests/AWSTestUtility.h; sourceTree = SOURCE_ROOT; }; BD00005D1AB8E1EA004496EF /* AWSTestUtility.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AWSTestUtility.m; path = AWSCoreTests/AWSTestUtility.m; sourceTree = SOURCE_ROOT; }; @@ -63,6 +72,8 @@ BD00FFF51AB8C448004496EF /* AWSElasticLoadBalancingTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSElasticLoadBalancingTests.m; sourceTree = ""; }; BDB73D751B1D3EEB00717559 /* AWSElasticLoadBalancingResources.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AWSElasticLoadBalancingResources.h; sourceTree = ""; }; BDB73D761B1D3EEB00717559 /* AWSElasticLoadBalancingResources.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSElasticLoadBalancingResources.m; sourceTree = ""; }; + BDD876A71B4B52CE009268C7 /* libOCMock.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libOCMock.a; path = AWSCoreTests/OCMock/libOCMock.a; sourceTree = ""; }; + BDF125BE1B45C1A900DFBFEC /* AWSElasticLoadBalancingUnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AWSElasticLoadBalancingUnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; BDF559891AB375EC0067F4F1 /* libAWSElasticLoadBalancing.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libAWSElasticLoadBalancing.a; sourceTree = BUILT_PRODUCTS_DIR; }; BDF559941AB375EC0067F4F1 /* AWSElasticLoadBalancingTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AWSElasticLoadBalancingTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; BDF5599A1AB375EC0067F4F1 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -75,6 +86,17 @@ /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + BDF125B51B45C1A900DFBFEC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BDD876A81B4B52CE009268C7 /* libOCMock.a in Frameworks */, + BDF125B61B45C1A900DFBFEC /* libz.dylib in Frameworks */, + BDF125B71B45C1A900DFBFEC /* libAWSCore.a in Frameworks */, + BDF125B81B45C1A900DFBFEC /* libAWSElasticLoadBalancing.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; BDF559861AB375EC0067F4F1 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -98,29 +120,19 @@ 412CEC016EC21D18D1D11C56 /* Frameworks */ = { isa = PBXGroup; children = ( + BDD876A71B4B52CE009268C7 /* libOCMock.a */, CEE5325F1B03D397002CED62 /* libz.dylib */, BD00FF441AB8B6E2004496EF /* libAWSCore.a */, - 25B63F98149D98A84CEDCF46 /* libPods-AWSElasticLoadBalancing.a */, ); name = Frameworks; sourceTree = ""; }; - 4EF3408BFEAC16E73120B5DF /* Pods */ = { - isa = PBXGroup; - children = ( - 1558F3BC5E9EBE610AB64769 /* Pods-AWSElasticLoadBalancing.debug.xcconfig */, - BBFBBE8FE992747E1198A3EE /* Pods-AWSElasticLoadBalancing.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; BDF559801AB375EC0067F4F1 = { isa = PBXGroup; children = ( BDF5598B1AB375EC0067F4F1 /* AWSElasticLoadBalancing */, BDF559981AB375EC0067F4F1 /* AWSElasticLoadBalancingTests */, BDF5598A1AB375EC0067F4F1 /* Products */, - 4EF3408BFEAC16E73120B5DF /* Pods */, 412CEC016EC21D18D1D11C56 /* Frameworks */, ); sourceTree = ""; @@ -130,6 +142,7 @@ children = ( BDF559891AB375EC0067F4F1 /* libAWSElasticLoadBalancing.a */, BDF559941AB375EC0067F4F1 /* AWSElasticLoadBalancingTests.xctest */, + BDF125BE1B45C1A900DFBFEC /* AWSElasticLoadBalancingUnitTests.xctest */, ); name = Products; sourceTree = ""; @@ -186,6 +199,24 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ + BDF125AE1B45C1A900DFBFEC /* AWSElasticLoadBalancingUnitTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = BDF125BB1B45C1A900DFBFEC /* Build configuration list for PBXNativeTarget "AWSElasticLoadBalancingUnitTests" */; + buildPhases = ( + BDF125B11B45C1A900DFBFEC /* Sources */, + BDF125B51B45C1A900DFBFEC /* Frameworks */, + BDF125B91B45C1A900DFBFEC /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + BDF125AF1B45C1A900DFBFEC /* PBXTargetDependency */, + ); + name = AWSElasticLoadBalancingUnitTests; + productName = ElasticLoadBalancingTests; + productReference = BDF125BE1B45C1A900DFBFEC /* AWSElasticLoadBalancingUnitTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; BDF559881AB375EC0067F4F1 /* AWSElasticLoadBalancing */ = { isa = PBXNativeTarget; buildConfigurationList = BDF5599D1AB375EC0067F4F1 /* Build configuration list for PBXNativeTarget "AWSElasticLoadBalancing" */; @@ -253,11 +284,19 @@ targets = ( BDF559881AB375EC0067F4F1 /* AWSElasticLoadBalancing */, BDF559931AB375EC0067F4F1 /* AWSElasticLoadBalancingTests */, + BDF125AE1B45C1A900DFBFEC /* AWSElasticLoadBalancingUnitTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + BDF125B91B45C1A900DFBFEC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; BDF559921AB375EC0067F4F1 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -269,6 +308,15 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + BDF125B11B45C1A900DFBFEC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BDF125B21B45C1A900DFBFEC /* AWSGeneralElasticLoadBalancingTests.m in Sources */, + BDF125B31B45C1A900DFBFEC /* AWSTestUtility.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; BDF559851AB375EC0067F4F1 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -283,7 +331,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BD00FFF61AB8C448004496EF /* AWSGeneralElasticLoadBalancingTests.m in Sources */, BD00005E1AB8E1EA004496EF /* AWSTestUtility.m in Sources */, BD00FFF71AB8C448004496EF /* AWSElasticLoadBalancingTests.m in Sources */, ); @@ -292,6 +339,11 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + BDF125AF1B45C1A900DFBFEC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BDF559881AB375EC0067F4F1 /* AWSElasticLoadBalancing */; + targetProxy = BDF125B01B45C1A900DFBFEC /* PBXContainerItemProxy */; + }; BDF559971AB375EC0067F4F1 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = BDF559881AB375EC0067F4F1 /* AWSElasticLoadBalancing */; @@ -300,10 +352,72 @@ /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ + BDF125BC1B45C1A900DFBFEC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = AWSElasticLoadBalancingTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSElasticLoadBalancingUnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Debug; + }; + BDF125BD1B45C1A900DFBFEC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + INFOPLIST_FILE = AWSElasticLoadBalancingTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSElasticLoadBalancingUnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Release; + }; BDF5599B1AB375EC0067F4F1 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -345,6 +459,10 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -419,6 +537,7 @@ ); INFOPLIST_FILE = AWSElasticLoadBalancingTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = AWSElasticLoadBalancingTests; }; name = Debug; @@ -434,6 +553,7 @@ GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; INFOPLIST_FILE = AWSElasticLoadBalancingTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = AWSElasticLoadBalancingTests; }; name = Release; @@ -441,6 +561,15 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + BDF125BB1B45C1A900DFBFEC /* Build configuration list for PBXNativeTarget "AWSElasticLoadBalancingUnitTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BDF125BC1B45C1A900DFBFEC /* Debug */, + BDF125BD1B45C1A900DFBFEC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; BDF559841AB375EC0067F4F1 /* Build configuration list for PBXProject "AWSElasticLoadBalancing" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/AWSElasticLoadBalancing.xcodeproj/xcshareddata/xcschemes/AWSElasticLoadBalancing.xcscheme b/AWSElasticLoadBalancing.xcodeproj/xcshareddata/xcschemes/AWSElasticLoadBalancing.xcscheme new file mode 100644 index 00000000000..ad2a244aaee --- /dev/null +++ b/AWSElasticLoadBalancing.xcodeproj/xcshareddata/xcschemes/AWSElasticLoadBalancing.xcscheme @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AWSElasticLoadBalancing/AWSElasticLoadBalancingService.m b/AWSElasticLoadBalancing/AWSElasticLoadBalancingService.m index 49b8bacf487..7601fcbb38e 100644 --- a/AWSElasticLoadBalancing/AWSElasticLoadBalancingService.m +++ b/AWSElasticLoadBalancing/AWSElasticLoadBalancingService.m @@ -231,7 +231,6 @@ - (instancetype)initWithConfiguration:(AWSServiceConfiguration *)configuration { _configuration.baseURL = _configuration.endpoint.URL; _configuration.requestInterceptors = @[[AWSNetworkingRequestInterceptor new], signer]; _configuration.retryHandler = [[AWSElasticLoadBalancingRequestRetryHandler alloc] initWithMaximumRetryCount:_configuration.maxRetryCount]; - _configuration.headers = @{@"Host" : _configuration.endpoint.hostName}; _networking = [[AWSNetworking alloc] initWithConfiguration:_configuration]; } diff --git a/AWSElasticLoadBalancingTests/AWSElasticLoadBalancingTests.m b/AWSElasticLoadBalancingTests/AWSElasticLoadBalancingTests.m index a202dc3d657..72c8c4d694b 100644 --- a/AWSElasticLoadBalancingTests/AWSElasticLoadBalancingTests.m +++ b/AWSElasticLoadBalancingTests/AWSElasticLoadBalancingTests.m @@ -13,6 +13,7 @@ permissions and limitations under the License. */ +#import #import #import "AWSElasticLoadBalancing.h" #import "AWSTestUtility.h" diff --git a/AWSElasticLoadBalancingTests/AWSGeneralElasticLoadBalancingTests.m b/AWSElasticLoadBalancingTests/AWSGeneralElasticLoadBalancingTests.m index 426a8edd88c..e77c934bfa9 100644 --- a/AWSElasticLoadBalancingTests/AWSGeneralElasticLoadBalancingTests.m +++ b/AWSElasticLoadBalancingTests/AWSGeneralElasticLoadBalancingTests.m @@ -15,9 +15,12 @@ #import #import +#import #import "AWSTestUtility.h" #import "AWSElasticLoadBalancing.h" +static id mockNetworking = nil; + @interface AWSGeneralElasticLoadBalancingTests : XCTestCase @end @@ -26,7 +29,11 @@ @implementation AWSGeneralElasticLoadBalancingTests - (void)setUp { [super setUp]; - [AWSTestUtility setupCognitoCredentialsProvider]; + [AWSTestUtility setupFakeCognitoCredentialsProvider]; + + mockNetworking = OCMClassMock([AWSNetworking class]); + AWSTask *errorTask = [AWSTask taskWithError:[NSError errorWithDomain:@"OCMockExpectedNetworkingError" code:8848 userInfo:nil]]; + OCMStub([mockNetworking sendRequest:[OCMArg isKindOfClass:[AWSNetworkingRequest class]]]).andReturn(errorTask); } - (void)tearDown { @@ -55,13 +62,20 @@ - (void)testAddTags { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] addTags:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -70,13 +84,20 @@ - (void)testApplySecurityGroupsToLoadBalancer { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] applySecurityGroupsToLoadBalancer:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -85,13 +106,20 @@ - (void)testAttachLoadBalancerToSubnets { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] attachLoadBalancerToSubnets:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -100,13 +128,20 @@ - (void)testConfigureHealthCheck { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] configureHealthCheck:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -115,13 +150,20 @@ - (void)testCreateAppCookieStickinessPolicy { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] createAppCookieStickinessPolicy:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -130,13 +172,20 @@ - (void)testCreateLBCookieStickinessPolicy { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] createLBCookieStickinessPolicy:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -145,13 +194,20 @@ - (void)testCreateLoadBalancer { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] createLoadBalancer:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -160,13 +216,20 @@ - (void)testCreateLoadBalancerListeners { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] createLoadBalancerListeners:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -175,13 +238,20 @@ - (void)testCreateLoadBalancerPolicy { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] createLoadBalancerPolicy:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -190,13 +260,20 @@ - (void)testDeleteLoadBalancer { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] deleteLoadBalancer:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -205,13 +282,20 @@ - (void)testDeleteLoadBalancerListeners { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] deleteLoadBalancerListeners:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -220,13 +304,20 @@ - (void)testDeleteLoadBalancerPolicy { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] deleteLoadBalancerPolicy:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -235,13 +326,20 @@ - (void)testDeregisterInstancesFromLoadBalancer { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] deregisterInstancesFromLoadBalancer:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -250,13 +348,20 @@ - (void)testDescribeInstanceHealth { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] describeInstanceHealth:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -265,13 +370,20 @@ - (void)testDescribeLoadBalancerAttributes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] describeLoadBalancerAttributes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -280,13 +392,20 @@ - (void)testDescribeLoadBalancerPolicies { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] describeLoadBalancerPolicies:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -295,13 +414,20 @@ - (void)testDescribeLoadBalancerPolicyTypes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] describeLoadBalancerPolicyTypes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -310,13 +436,20 @@ - (void)testDescribeLoadBalancers { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] describeLoadBalancers:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -325,13 +458,20 @@ - (void)testDescribeTags { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] describeTags:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -340,13 +480,20 @@ - (void)testDetachLoadBalancerFromSubnets { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] detachLoadBalancerFromSubnets:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -355,13 +502,20 @@ - (void)testDisableAvailabilityZonesForLoadBalancer { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] disableAvailabilityZonesForLoadBalancer:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -370,13 +524,20 @@ - (void)testEnableAvailabilityZonesForLoadBalancer { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] enableAvailabilityZonesForLoadBalancer:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -385,13 +546,20 @@ - (void)testModifyLoadBalancerAttributes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] modifyLoadBalancerAttributes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -400,13 +568,20 @@ - (void)testRegisterInstancesWithLoadBalancer { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] registerInstancesWithLoadBalancer:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -415,13 +590,20 @@ - (void)testRemoveTags { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] removeTags:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -430,13 +612,20 @@ - (void)testSetLoadBalancerListenerSSLCertificate { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] setLoadBalancerListenerSSLCertificate:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -445,13 +634,20 @@ - (void)testSetLoadBalancerPoliciesForBackendServer { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] setLoadBalancerPoliciesForBackendServer:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } @@ -460,13 +656,20 @@ - (void)testSetLoadBalancerPoliciesOfListener { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSElasticLoadBalancing registerElasticLoadBalancingWithConfiguration:configuration forKey:key]; + AWSElasticLoadBalancing *awsClient = [AWSElasticLoadBalancing ElasticLoadBalancingForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSElasticLoadBalancing ElasticLoadBalancingForKey:key] setLoadBalancerPoliciesOfListener:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSElasticLoadBalancing removeElasticLoadBalancingForKey:key]; } diff --git a/AWSKinesis.podspec b/AWSKinesis.podspec index 60b42e54e26..c893c69e7c4 100644 --- a/AWSKinesis.podspec +++ b/AWSKinesis.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = 'AWSKinesis' - s.version = '2.2.0' + s.version = '2.2.1' s.summary = 'Amazon Web Services SDK for iOS.' s.description = 'The AWS SDK for iOS provides a library, code samples, and documentation for developers to build connected mobile applications using AWS.' @@ -13,7 +13,7 @@ Pod::Spec.new do |s| s.source = { :git => 'https://github.com/aws/aws-sdk-ios.git', :tag => s.version} s.requires_arc = true - s.dependency 'AWSCore', '2.2.0' + s.dependency 'AWSCore', '2.2.1' s.source_files = 'AWSKinesis/*.{h,m}' end diff --git a/AWSKinesis.xcodeproj/project.pbxproj b/AWSKinesis.xcodeproj/project.pbxproj index c6c22e0e72d..97675ecc257 100644 --- a/AWSKinesis.xcodeproj/project.pbxproj +++ b/AWSKinesis.xcodeproj/project.pbxproj @@ -10,15 +10,21 @@ BD00003C1AB8C533004496EF /* credentials.json in Resources */ = {isa = PBXBuildFile; fileRef = BD00003B1AB8C533004496EF /* credentials.json */; }; BD00005B1AB8E19E004496EF /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00005A1AB8E19E004496EF /* AWSTestUtility.m */; }; BD00FF431AB8B6DA004496EF /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BD00FF421AB8B6DA004496EF /* libAWSCore.a */; }; - BD00FFF11AB8C437004496EF /* AWSGeneralKinesisTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFEE1AB8C437004496EF /* AWSGeneralKinesisTests.m */; }; BD00FFF21AB8C437004496EF /* AWSKinesisRecorderTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFEF1AB8C437004496EF /* AWSKinesisRecorderTests.m */; }; - BD00FFF31AB8C437004496EF /* AWSKinesisTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFF01AB8C437004496EF /* AWSKinesisTests.m */; }; BD9D97621AC1EEAE00CEEE08 /* AWSKinesisService.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = CEE7DE701AC1E1AF0095C4B7 /* AWSKinesisService.h */; }; BDB73D7B1B1D3EFC00717559 /* AWSKinesisResources.h in Headers */ = {isa = PBXBuildFile; fileRef = BDB73D791B1D3EFC00717559 /* AWSKinesisResources.h */; }; BDB73D7C1B1D3EFC00717559 /* AWSKinesisResources.m in Sources */ = {isa = PBXBuildFile; fileRef = BDB73D7A1B1D3EFC00717559 /* AWSKinesisResources.m */; }; BDC91C4D1ABBA0C600F74D49 /* AWSKinesis.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDF559D51AB376A50067F4F1 /* AWSKinesis.h */; }; BDC91C4E1ABBA0C600F74D49 /* AWSKinesisModel.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDF559D71AB376A50067F4F1 /* AWSKinesisModel.h */; }; BDC91C4F1ABBA0C600F74D49 /* AWSKinesisRecorder.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDF559D91AB376A50067F4F1 /* AWSKinesisRecorder.h */; }; + BDD876AA1B4B52E3009268C7 /* libOCMock.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDD876A91B4B52E3009268C7 /* libOCMock.a */; }; + BDF125C61B45C1D000DFBFEC /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00005A1AB8E19E004496EF /* AWSTestUtility.m */; }; + BDF125C71B45C1D000DFBFEC /* AWSGeneralKinesisTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFEE1AB8C437004496EF /* AWSGeneralKinesisTests.m */; }; + BDF125C91B45C1D000DFBFEC /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE532651B03D3B2002CED62 /* libz.dylib */; }; + BDF125CA1B45C1D000DFBFEC /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CE14DF8C1B02DEBC00EF6D09 /* libsqlite3.dylib */; }; + BDF125CB1B45C1D000DFBFEC /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BD00FF421AB8B6DA004496EF /* libAWSCore.a */; }; + BDF125CC1B45C1D000DFBFEC /* libAWSKinesis.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDF559B91AB376720067F4F1 /* libAWSKinesis.a */; }; + BDF126941B45CF4700DFBFEC /* AWSKinesisTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFF01AB8C437004496EF /* AWSKinesisTests.m */; }; BDF559C51AB376720067F4F1 /* libAWSKinesis.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDF559B91AB376720067F4F1 /* libAWSKinesis.a */; }; BDF559DD1AB376A50067F4F1 /* AWSKinesis.h in Headers */ = {isa = PBXBuildFile; fileRef = BDF559D51AB376A50067F4F1 /* AWSKinesis.h */; settings = {ATTRIBUTES = (Public, ); }; }; BDF559DE1AB376A50067F4F1 /* AWSKinesisService.m in Sources */ = {isa = PBXBuildFile; fileRef = BDF559D61AB376A50067F4F1 /* AWSKinesisService.m */; }; @@ -32,6 +38,13 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + BDF125C21B45C1D000DFBFEC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BDF559B11AB376720067F4F1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BDF559B81AB376720067F4F1; + remoteInfo = Kinesis; + }; BDF559C61AB376720067F4F1 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BDF559B11AB376720067F4F1 /* Project object */; @@ -58,7 +71,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 95B2CCFC84B571337F663D6B /* Pods-AWSKinesis.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSKinesis.debug.xcconfig"; path = "Pods/Target Support Files/Pods-AWSKinesis/Pods-AWSKinesis.debug.xcconfig"; sourceTree = ""; }; BD00003B1AB8C533004496EF /* credentials.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = credentials.json; path = AWSCoreTests/credentials.json; sourceTree = SOURCE_ROOT; }; BD0000591AB8E19E004496EF /* AWSTestUtility.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AWSTestUtility.h; path = AWSCoreTests/AWSTestUtility.h; sourceTree = SOURCE_ROOT; }; BD00005A1AB8E19E004496EF /* AWSTestUtility.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AWSTestUtility.m; path = AWSCoreTests/AWSTestUtility.m; sourceTree = SOURCE_ROOT; }; @@ -68,6 +80,8 @@ BD00FFF01AB8C437004496EF /* AWSKinesisTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AWSKinesisTests.m; path = ../AWSKinesisTests/AWSKinesisTests.m; sourceTree = ""; }; BDB73D791B1D3EFC00717559 /* AWSKinesisResources.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AWSKinesisResources.h; sourceTree = ""; }; BDB73D7A1B1D3EFC00717559 /* AWSKinesisResources.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSKinesisResources.m; sourceTree = ""; }; + BDD876A91B4B52E3009268C7 /* libOCMock.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libOCMock.a; path = AWSCoreTests/OCMock/libOCMock.a; sourceTree = ""; }; + BDF125D21B45C1D000DFBFEC /* AWSKinesisUnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AWSKinesisUnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; BDF559B91AB376720067F4F1 /* libAWSKinesis.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libAWSKinesis.a; sourceTree = BUILT_PRODUCTS_DIR; }; BDF559C41AB376720067F4F1 /* AWSKinesisTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AWSKinesisTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; BDF559CA1AB376720067F4F1 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = ../AWSKinesisTests/Info.plist; sourceTree = ""; }; @@ -80,11 +94,21 @@ CE14DF8C1B02DEBC00EF6D09 /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; }; CEE532651B03D3B2002CED62 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; CEE7DE701AC1E1AF0095C4B7 /* AWSKinesisService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AWSKinesisService.h; sourceTree = ""; }; - DBA83CD943CFA60EB1C5FEE6 /* libPods-AWSKinesis.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AWSKinesis.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - ED71922BE28C5B428EAC7898 /* Pods-AWSKinesis.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSKinesis.release.xcconfig"; path = "Pods/Target Support Files/Pods-AWSKinesis/Pods-AWSKinesis.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + BDF125C81B45C1D000DFBFEC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BDD876AA1B4B52E3009268C7 /* libOCMock.a in Frameworks */, + BDF125C91B45C1D000DFBFEC /* libz.dylib in Frameworks */, + BDF125CA1B45C1D000DFBFEC /* libsqlite3.dylib in Frameworks */, + BDF125CB1B45C1D000DFBFEC /* libAWSCore.a in Frameworks */, + BDF125CC1B45C1D000DFBFEC /* libAWSKinesis.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; BDF559B61AB376720067F4F1 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -112,7 +136,6 @@ BDF559BB1AB376720067F4F1 /* AWSKinesis */, BDF559C81AB376720067F4F1 /* AWSKinesisTests */, BDF559BA1AB376720067F4F1 /* Products */, - D34ABF3BE6D22A110003BCB2 /* Pods */, D34BD40ED7327D8616BDFE58 /* Frameworks */, ); sourceTree = ""; @@ -122,6 +145,7 @@ children = ( BDF559B91AB376720067F4F1 /* libAWSKinesis.a */, BDF559C41AB376720067F4F1 /* AWSKinesisTests.xctest */, + BDF125D21B45C1D000DFBFEC /* AWSKinesisUnitTests.xctest */, ); name = Products; sourceTree = ""; @@ -164,22 +188,13 @@ name = "Supporting Files"; sourceTree = ""; }; - D34ABF3BE6D22A110003BCB2 /* Pods */ = { - isa = PBXGroup; - children = ( - 95B2CCFC84B571337F663D6B /* Pods-AWSKinesis.debug.xcconfig */, - ED71922BE28C5B428EAC7898 /* Pods-AWSKinesis.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; D34BD40ED7327D8616BDFE58 /* Frameworks */ = { isa = PBXGroup; children = ( + BDD876A91B4B52E3009268C7 /* libOCMock.a */, CEE532651B03D3B2002CED62 /* libz.dylib */, CE14DF8C1B02DEBC00EF6D09 /* libsqlite3.dylib */, BD00FF421AB8B6DA004496EF /* libAWSCore.a */, - DBA83CD943CFA60EB1C5FEE6 /* libPods-AWSKinesis.a */, ); name = Frameworks; sourceTree = ""; @@ -202,6 +217,24 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ + BDF125C01B45C1D000DFBFEC /* AWSKinesisUnitTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = BDF125CF1B45C1D000DFBFEC /* Build configuration list for PBXNativeTarget "AWSKinesisUnitTests" */; + buildPhases = ( + BDF125C31B45C1D000DFBFEC /* Sources */, + BDF125C81B45C1D000DFBFEC /* Frameworks */, + BDF125CD1B45C1D000DFBFEC /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + BDF125C11B45C1D000DFBFEC /* PBXTargetDependency */, + ); + name = AWSKinesisUnitTests; + productName = KinesisTests; + productReference = BDF125D21B45C1D000DFBFEC /* AWSKinesisUnitTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; BDF559B81AB376720067F4F1 /* AWSKinesis */ = { isa = PBXNativeTarget; buildConfigurationList = BDF559CD1AB376720067F4F1 /* Build configuration list for PBXNativeTarget "AWSKinesis" */; @@ -269,11 +302,19 @@ targets = ( BDF559B81AB376720067F4F1 /* AWSKinesis */, BDF559C31AB376720067F4F1 /* AWSKinesisTests */, + BDF125C01B45C1D000DFBFEC /* AWSKinesisUnitTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + BDF125CD1B45C1D000DFBFEC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; BDF559C21AB376720067F4F1 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -285,6 +326,15 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + BDF125C31B45C1D000DFBFEC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BDF125C61B45C1D000DFBFEC /* AWSTestUtility.m in Sources */, + BDF125C71B45C1D000DFBFEC /* AWSGeneralKinesisTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; BDF559B51AB376720067F4F1 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -301,15 +351,19 @@ buildActionMask = 2147483647; files = ( BD00FFF21AB8C437004496EF /* AWSKinesisRecorderTests.m in Sources */, - BD00FFF31AB8C437004496EF /* AWSKinesisTests.m in Sources */, + BDF126941B45CF4700DFBFEC /* AWSKinesisTests.m in Sources */, BD00005B1AB8E19E004496EF /* AWSTestUtility.m in Sources */, - BD00FFF11AB8C437004496EF /* AWSGeneralKinesisTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + BDF125C11B45C1D000DFBFEC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BDF559B81AB376720067F4F1 /* AWSKinesis */; + targetProxy = BDF125C21B45C1D000DFBFEC /* PBXContainerItemProxy */; + }; BDF559C71AB376720067F4F1 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = BDF559B81AB376720067F4F1 /* AWSKinesis */; @@ -318,10 +372,72 @@ /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ + BDF125D01B45C1D000DFBFEC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = AWSKinesisTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSKinesisUnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Debug; + }; + BDF125D11B45C1D000DFBFEC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + INFOPLIST_FILE = AWSKinesisTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSKinesisUnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Release; + }; BDF559CB1AB376720067F4F1 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -363,6 +479,10 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -437,6 +557,7 @@ ); INFOPLIST_FILE = AWSKinesisTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = AWSKinesisTests; }; name = Debug; @@ -452,6 +573,7 @@ GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; INFOPLIST_FILE = AWSKinesisTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = AWSKinesisTests; }; name = Release; @@ -459,6 +581,15 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + BDF125CF1B45C1D000DFBFEC /* Build configuration list for PBXNativeTarget "AWSKinesisUnitTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BDF125D01B45C1D000DFBFEC /* Debug */, + BDF125D11B45C1D000DFBFEC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; BDF559B41AB376720067F4F1 /* Build configuration list for PBXProject "AWSKinesis" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/AWSKinesis.xcodeproj/xcshareddata/xcschemes/AWSKinesis.xcscheme b/AWSKinesis.xcodeproj/xcshareddata/xcschemes/AWSKinesis.xcscheme new file mode 100644 index 00000000000..86210c2c601 --- /dev/null +++ b/AWSKinesis.xcodeproj/xcshareddata/xcschemes/AWSKinesis.xcscheme @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AWSKinesis/AWSKinesisService.m b/AWSKinesis/AWSKinesisService.m index 13fbfca0ac4..de5e8c20a24 100644 --- a/AWSKinesis/AWSKinesisService.m +++ b/AWSKinesis/AWSKinesisService.m @@ -116,6 +116,10 @@ - (AWSNetworkingRetryType)shouldRetry:(uint32_t)currentRetryCount retryType = AWSNetworkingRetryTypeShouldRefreshCredentialsAndRetry; break; + case AWSKinesisErrorProvisionedThroughputExceeded: + retryType = AWSNetworkingRetryTypeShouldRetry; + break; + default: break; } @@ -207,10 +211,7 @@ - (instancetype)initWithConfiguration:(AWSServiceConfiguration *)configuration { _configuration.baseURL = _configuration.endpoint.URL; _configuration.requestInterceptors = @[[AWSNetworkingRequestInterceptor new], signer]; _configuration.retryHandler = [[AWSKinesisRequestRetryHandler alloc] initWithMaximumRetryCount:_configuration.maxRetryCount]; - _configuration.headers = @{ - @"Host" : _configuration.endpoint.hostName, - @"Content-Type" : @"application/x-amz-json-1.1" - }; + _configuration.headers = @{@"Content-Type" : @"application/x-amz-json-1.1"}; _networking = [[AWSNetworking alloc] initWithConfiguration:_configuration]; } diff --git a/AWSKinesisTests/AWSGeneralKinesisTests.m b/AWSKinesisTests/AWSGeneralKinesisTests.m index ca82f5d236a..874f6606856 100644 --- a/AWSKinesisTests/AWSGeneralKinesisTests.m +++ b/AWSKinesisTests/AWSGeneralKinesisTests.m @@ -15,9 +15,12 @@ #import #import +#import #import "AWSTestUtility.h" #import "AWSKinesis.h" +static id mockNetworking = nil; + @interface AWSGeneralKinesisTests : XCTestCase @end @@ -26,7 +29,11 @@ @implementation AWSGeneralKinesisTests - (void)setUp { [super setUp]; - [AWSTestUtility setupCognitoCredentialsProvider]; + [AWSTestUtility setupFakeCognitoCredentialsProvider]; + + mockNetworking = OCMClassMock([AWSNetworking class]); + AWSTask *errorTask = [AWSTask taskWithError:[NSError errorWithDomain:@"OCMockExpectedNetworkingError" code:8848 userInfo:nil]]; + OCMStub([mockNetworking sendRequest:[OCMArg isKindOfClass:[AWSNetworkingRequest class]]]).andReturn(errorTask); } - (void)tearDown { @@ -55,13 +62,20 @@ - (void)testAddTagsToStream { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSKinesis registerKinesisWithConfiguration:configuration forKey:key]; + AWSKinesis *awsClient = [AWSKinesis KinesisForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSKinesis KinesisForKey:key] addTagsToStream:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSKinesis removeKinesisForKey:key]; } @@ -70,13 +84,20 @@ - (void)testCreateStream { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSKinesis registerKinesisWithConfiguration:configuration forKey:key]; + AWSKinesis *awsClient = [AWSKinesis KinesisForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSKinesis KinesisForKey:key] createStream:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSKinesis removeKinesisForKey:key]; } @@ -85,13 +106,20 @@ - (void)testDeleteStream { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSKinesis registerKinesisWithConfiguration:configuration forKey:key]; + AWSKinesis *awsClient = [AWSKinesis KinesisForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSKinesis KinesisForKey:key] deleteStream:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSKinesis removeKinesisForKey:key]; } @@ -100,13 +128,20 @@ - (void)testDescribeStream { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSKinesis registerKinesisWithConfiguration:configuration forKey:key]; + AWSKinesis *awsClient = [AWSKinesis KinesisForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSKinesis KinesisForKey:key] describeStream:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSKinesis removeKinesisForKey:key]; } @@ -115,13 +150,20 @@ - (void)testGetRecords { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSKinesis registerKinesisWithConfiguration:configuration forKey:key]; + AWSKinesis *awsClient = [AWSKinesis KinesisForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSKinesis KinesisForKey:key] getRecords:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSKinesis removeKinesisForKey:key]; } @@ -130,13 +172,20 @@ - (void)testGetShardIterator { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSKinesis registerKinesisWithConfiguration:configuration forKey:key]; + AWSKinesis *awsClient = [AWSKinesis KinesisForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSKinesis KinesisForKey:key] getShardIterator:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSKinesis removeKinesisForKey:key]; } @@ -145,13 +194,20 @@ - (void)testListStreams { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSKinesis registerKinesisWithConfiguration:configuration forKey:key]; + AWSKinesis *awsClient = [AWSKinesis KinesisForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSKinesis KinesisForKey:key] listStreams:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSKinesis removeKinesisForKey:key]; } @@ -160,13 +216,20 @@ - (void)testListTagsForStream { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSKinesis registerKinesisWithConfiguration:configuration forKey:key]; + AWSKinesis *awsClient = [AWSKinesis KinesisForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSKinesis KinesisForKey:key] listTagsForStream:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSKinesis removeKinesisForKey:key]; } @@ -175,13 +238,20 @@ - (void)testMergeShards { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSKinesis registerKinesisWithConfiguration:configuration forKey:key]; + AWSKinesis *awsClient = [AWSKinesis KinesisForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSKinesis KinesisForKey:key] mergeShards:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSKinesis removeKinesisForKey:key]; } @@ -190,13 +260,20 @@ - (void)testPutRecord { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSKinesis registerKinesisWithConfiguration:configuration forKey:key]; + AWSKinesis *awsClient = [AWSKinesis KinesisForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSKinesis KinesisForKey:key] putRecord:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSKinesis removeKinesisForKey:key]; } @@ -205,13 +282,20 @@ - (void)testPutRecords { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSKinesis registerKinesisWithConfiguration:configuration forKey:key]; + AWSKinesis *awsClient = [AWSKinesis KinesisForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSKinesis KinesisForKey:key] putRecords:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSKinesis removeKinesisForKey:key]; } @@ -220,13 +304,20 @@ - (void)testRemoveTagsFromStream { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSKinesis registerKinesisWithConfiguration:configuration forKey:key]; + AWSKinesis *awsClient = [AWSKinesis KinesisForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSKinesis KinesisForKey:key] removeTagsFromStream:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSKinesis removeKinesisForKey:key]; } @@ -235,13 +326,20 @@ - (void)testSplitShard { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSKinesis registerKinesisWithConfiguration:configuration forKey:key]; + AWSKinesis *awsClient = [AWSKinesis KinesisForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSKinesis KinesisForKey:key] splitShard:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSKinesis removeKinesisForKey:key]; } diff --git a/AWSKinesisTests/AWSKinesisRecorderTests.m b/AWSKinesisTests/AWSKinesisRecorderTests.m index bc06af02ca6..c79e8b611fb 100644 --- a/AWSKinesisTests/AWSKinesisRecorderTests.m +++ b/AWSKinesisTests/AWSKinesisRecorderTests.m @@ -15,6 +15,7 @@ #if !AWS_TEST_BJS_INSTEAD +#import #import #import "AWSKinesis.h" #import "AWSTestUtility.h" diff --git a/AWSKinesisTests/AWSKinesisTests.m b/AWSKinesisTests/AWSKinesisTests.m index 2337097626f..356745646e6 100644 --- a/AWSKinesisTests/AWSKinesisTests.m +++ b/AWSKinesisTests/AWSKinesisTests.m @@ -141,7 +141,7 @@ - (void)testListStreams { - (void)testAll { AWSKinesis *kinesis = [AWSKinesis defaultKinesis]; - NSMutableArray *tasks = [NSMutableArray new]; + AWSTask *task = [AWSTask taskWithResult:nil]; NSMutableArray *returnedRecords = [NSMutableArray new]; for (int32_t i = 0; i < 100; i++) { @@ -150,11 +150,12 @@ - (void)testAll { putRecordInput.data = [[NSString stringWithFormat:@"TestString-%02d", i] dataUsingEncoding:NSUTF8StringEncoding]; putRecordInput.partitionKey = @"test-partition-key"; - [tasks addObject:[kinesis putRecord:putRecordInput]]; + task = [task continueWithSuccessBlock:^id(AWSTask *task) { + return [kinesis putRecord:putRecordInput]; + }]; } - [[[[[[AWSTask taskForCompletionOfAllTasks:tasks] continueWithSuccessBlock:^id(AWSTask *task) { - sleep(10); + [[[[[task continueWithSuccessBlock:^id(AWSTask *task) { AWSKinesisDescribeStreamInput *describeStreamInput = [AWSKinesisDescribeStreamInput new]; describeStreamInput.streamName = testStreamName; return [kinesis describeStream:describeStreamInput]; @@ -168,7 +169,6 @@ - (void)testAll { getShardIteratorInput.shardId = shard.shardId; getShardIteratorInput.shardIteratorType = AWSKinesisShardIteratorTypeAtSequenceNumber; getShardIteratorInput.startingSequenceNumber = shard.sequenceNumberRange.startingSequenceNumber; - return [kinesis getShardIterator:getShardIteratorInput]; }] continueWithSuccessBlock:^id(AWSTask *task) { AWSKinesisGetShardIteratorOutput *getShardIteratorOutput = task.result; diff --git a/AWSLambda.podspec b/AWSLambda.podspec index 089aac89e6d..68020844c60 100644 --- a/AWSLambda.podspec +++ b/AWSLambda.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = 'AWSLambda' - s.version = '2.2.0' + s.version = '2.2.1' s.summary = 'Amazon Web Services SDK for iOS.' s.description = 'The AWS SDK for iOS provides a library, code samples, and documentation for developers to build connected mobile applications using AWS.' @@ -13,7 +13,7 @@ Pod::Spec.new do |s| s.source = { :git => 'https://github.com/aws/aws-sdk-ios.git', :tag => s.version} s.requires_arc = true - s.dependency 'AWSCore', '2.2.0' + s.dependency 'AWSCore', '2.2.1' s.source_files = 'AWSLambda/*.{h,m}' end diff --git a/AWSLambda.xcodeproj/project.pbxproj b/AWSLambda.xcodeproj/project.pbxproj index 6253cae457f..a947af45a34 100644 --- a/AWSLambda.xcodeproj/project.pbxproj +++ b/AWSLambda.xcodeproj/project.pbxproj @@ -9,9 +9,14 @@ /* Begin PBXBuildFile section */ BDB73D7F1B1D3F1400717559 /* AWSLambdaResources.h in Headers */ = {isa = PBXBuildFile; fileRef = BDB73D7D1B1D3F1400717559 /* AWSLambdaResources.h */; }; BDB73D801B1D3F1400717559 /* AWSLambdaResources.m in Sources */ = {isa = PBXBuildFile; fileRef = BDB73D7E1B1D3F1400717559 /* AWSLambdaResources.m */; }; + BDD876AC1B4B52F0009268C7 /* libOCMock.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDD876AB1B4B52F0009268C7 /* libOCMock.a */; }; + BDF125D91B45C22300DFBFEC /* AWSGeneralLambdaTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CE6397141AC494C100459E23 /* AWSGeneralLambdaTests.m */; }; + BDF125DD1B45C22300DFBFEC /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE532631B03D3A8002CED62 /* libz.dylib */; }; + BDF125DE1B45C22300DFBFEC /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CE6397121AC48EF300459E23 /* libAWSCore.a */; }; + BDF125DF1B45C22300DFBFEC /* libAWSLambda.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CED822151AC4895F0017E687 /* libAWSLambda.a */; }; + BDF126931B45C98400DFBFEC /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = CE63971E1AC495CD00459E23 /* AWSTestUtility.m */; }; CE5502C81AD361AC00AE9F4A /* AWSLambdaInvoker.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE6397261AC4A7F300459E23 /* AWSLambdaInvoker.h */; }; CE6397131AC48EF300459E23 /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CE6397121AC48EF300459E23 /* libAWSCore.a */; }; - CE6397151AC494C100459E23 /* AWSGeneralLambdaTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CE6397141AC494C100459E23 /* AWSGeneralLambdaTests.m */; }; CE63971D1AC4957D00459E23 /* credentials.json in Resources */ = {isa = PBXBuildFile; fileRef = CE63971C1AC4957D00459E23 /* credentials.json */; }; CE63971F1AC495CD00459E23 /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = CE63971E1AC495CD00459E23 /* AWSTestUtility.m */; }; CE6397251AC4A4CC00459E23 /* AWSLambdaTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CE6397241AC4A4CC00459E23 /* AWSLambdaTests.m */; }; @@ -31,6 +36,13 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + BDF125D61B45C22300DFBFEC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = CED8220D1AC4895F0017E687 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CED822141AC4895F0017E687; + remoteInfo = AWSLambda; + }; CED822221AC4895F0017E687 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = CED8220D1AC4895F0017E687 /* Project object */; @@ -57,10 +69,10 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 0B0DD4512530E61F3A5F0F9D /* libPods-AWSLambda.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AWSLambda.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 177BE039058FBD96196C8D2B /* Pods-AWSLambda.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSLambda.release.xcconfig"; path = "Pods/Target Support Files/Pods-AWSLambda/Pods-AWSLambda.release.xcconfig"; sourceTree = ""; }; BDB73D7D1B1D3F1400717559 /* AWSLambdaResources.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AWSLambdaResources.h; sourceTree = ""; }; BDB73D7E1B1D3F1400717559 /* AWSLambdaResources.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSLambdaResources.m; sourceTree = ""; }; + BDD876AB1B4B52F0009268C7 /* libOCMock.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libOCMock.a; path = AWSCoreTests/OCMock/libOCMock.a; sourceTree = ""; }; + BDF125E51B45C22300DFBFEC /* AWSLambdaUnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AWSLambdaUnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; CE6397121AC48EF300459E23 /* libAWSCore.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libAWSCore.a; path = "build/Debug-iphoneos/libAWSCore.a"; sourceTree = ""; }; CE6397141AC494C100459E23 /* AWSGeneralLambdaTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSGeneralLambdaTests.m; sourceTree = ""; }; CE63971C1AC4957D00459E23 /* credentials.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = credentials.json; path = AWSCoreTests/credentials.json; sourceTree = SOURCE_ROOT; }; @@ -78,10 +90,20 @@ CED822381AC48A3D0017E687 /* AWSLambdaService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AWSLambdaService.h; sourceTree = ""; }; CEDE75EF1ACA1D9E002A0D94 /* AWSLambdaInvokerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSLambdaInvokerTests.m; sourceTree = ""; }; CEE532631B03D3A8002CED62 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; - F85E905FF100126C225C0066 /* Pods-AWSLambda.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSLambda.debug.xcconfig"; path = "Pods/Target Support Files/Pods-AWSLambda/Pods-AWSLambda.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + BDF125DC1B45C22300DFBFEC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BDD876AC1B4B52F0009268C7 /* libOCMock.a in Frameworks */, + BDF125DD1B45C22300DFBFEC /* libz.dylib in Frameworks */, + BDF125DE1B45C22300DFBFEC /* libAWSCore.a in Frameworks */, + BDF125DF1B45C22300DFBFEC /* libAWSLambda.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; CED822121AC4895F0017E687 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -105,29 +127,19 @@ 3EAFA3A380A2651599D9FC74 /* Frameworks */ = { isa = PBXGroup; children = ( + BDD876AB1B4B52F0009268C7 /* libOCMock.a */, CEE532631B03D3A8002CED62 /* libz.dylib */, CE6397121AC48EF300459E23 /* libAWSCore.a */, - 0B0DD4512530E61F3A5F0F9D /* libPods-AWSLambda.a */, ); name = Frameworks; sourceTree = ""; }; - 7B5CA8D6936C9696BA07283C /* Pods */ = { - isa = PBXGroup; - children = ( - F85E905FF100126C225C0066 /* Pods-AWSLambda.debug.xcconfig */, - 177BE039058FBD96196C8D2B /* Pods-AWSLambda.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; CED8220C1AC4895F0017E687 = { isa = PBXGroup; children = ( CED822171AC4895F0017E687 /* AWSLambda */, CED822241AC4895F0017E687 /* AWSLambdaTests */, 3EAFA3A380A2651599D9FC74 /* Frameworks */, - 7B5CA8D6936C9696BA07283C /* Pods */, CED822161AC4895F0017E687 /* Products */, ); sourceTree = ""; @@ -137,6 +149,7 @@ children = ( CED822151AC4895F0017E687 /* libAWSLambda.a */, CED822201AC4895F0017E687 /* AWSLambdaTests.xctest */, + BDF125E51B45C22300DFBFEC /* AWSLambdaUnitTests.xctest */, ); name = Products; sourceTree = ""; @@ -196,6 +209,24 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ + BDF125D41B45C22300DFBFEC /* AWSLambdaUnitTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = BDF125E21B45C22300DFBFEC /* Build configuration list for PBXNativeTarget "AWSLambdaUnitTests" */; + buildPhases = ( + BDF125D71B45C22300DFBFEC /* Sources */, + BDF125DC1B45C22300DFBFEC /* Frameworks */, + BDF125E01B45C22300DFBFEC /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + BDF125D51B45C22300DFBFEC /* PBXTargetDependency */, + ); + name = AWSLambdaUnitTests; + productName = AWSLambdaTests; + productReference = BDF125E51B45C22300DFBFEC /* AWSLambdaUnitTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; CED822141AC4895F0017E687 /* AWSLambda */ = { isa = PBXNativeTarget; buildConfigurationList = CED822291AC4895F0017E687 /* Build configuration list for PBXNativeTarget "AWSLambda" */; @@ -263,11 +294,19 @@ targets = ( CED822141AC4895F0017E687 /* AWSLambda */, CED8221F1AC4895F0017E687 /* AWSLambdaTests */, + BDF125D41B45C22300DFBFEC /* AWSLambdaUnitTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + BDF125E01B45C22300DFBFEC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; CED8221E1AC4895F0017E687 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -279,6 +318,15 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + BDF125D71B45C22300DFBFEC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BDF126931B45C98400DFBFEC /* AWSTestUtility.m in Sources */, + BDF125D91B45C22300DFBFEC /* AWSGeneralLambdaTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; CED822111AC4895F0017E687 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -295,7 +343,6 @@ buildActionMask = 2147483647; files = ( CE63971F1AC495CD00459E23 /* AWSTestUtility.m in Sources */, - CE6397151AC494C100459E23 /* AWSGeneralLambdaTests.m in Sources */, CE6397251AC4A4CC00459E23 /* AWSLambdaTests.m in Sources */, CEDE75F01ACA1D9E002A0D94 /* AWSLambdaInvokerTests.m in Sources */, ); @@ -304,6 +351,11 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + BDF125D51B45C22300DFBFEC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = CED822141AC4895F0017E687 /* AWSLambda */; + targetProxy = BDF125D61B45C22300DFBFEC /* PBXContainerItemProxy */; + }; CED822231AC4895F0017E687 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = CED822141AC4895F0017E687 /* AWSLambda */; @@ -312,10 +364,72 @@ /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ + BDF125E31B45C22300DFBFEC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = AWSLambdaTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSLambdaUnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Debug; + }; + BDF125E41B45C22300DFBFEC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + INFOPLIST_FILE = AWSLambdaTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSLambdaUnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Release; + }; CED822271AC4895F0017E687 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -357,6 +471,10 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -431,6 +549,7 @@ ); INFOPLIST_FILE = AWSLambdaTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -446,6 +565,7 @@ GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; INFOPLIST_FILE = AWSLambdaTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -453,6 +573,15 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + BDF125E21B45C22300DFBFEC /* Build configuration list for PBXNativeTarget "AWSLambdaUnitTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BDF125E31B45C22300DFBFEC /* Debug */, + BDF125E41B45C22300DFBFEC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; CED822101AC4895F0017E687 /* Build configuration list for PBXProject "AWSLambda" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/AWSLambda.xcodeproj/xcshareddata/xcschemes/AWSLambda.xcscheme b/AWSLambda.xcodeproj/xcshareddata/xcschemes/AWSLambda.xcscheme new file mode 100644 index 00000000000..0353fad365d --- /dev/null +++ b/AWSLambda.xcodeproj/xcshareddata/xcschemes/AWSLambda.xcscheme @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AWSLambda/AWSLambdaService.m b/AWSLambda/AWSLambdaService.m index c2395776621..74b3320e5a1 100644 --- a/AWSLambda/AWSLambdaService.m +++ b/AWSLambda/AWSLambdaService.m @@ -259,9 +259,7 @@ - (instancetype)initWithConfiguration:(AWSServiceConfiguration *)configuration { _configuration.requestSerializer = [AWSJSONRequestSerializer new]; _configuration.requestInterceptors = @[[AWSNetworkingRequestInterceptor new], signer]; _configuration.retryHandler = [[AWSLambdaRequestRetryHandler alloc] initWithMaximumRetryCount:_configuration.maxRetryCount]; - _configuration.headers = @{@"Host" : _configuration.endpoint.hostName, - @"Content-Type" : @"application/x-amz-json-1.0", - @"Accept-Encoding" : @""}; + _configuration.headers = @{@"Content-Type" : @"application/x-amz-json-1.0"}; _networking = [[AWSNetworking alloc] initWithConfiguration:_configuration]; } diff --git a/AWSLambdaTests/AWSGeneralLambdaTests.m b/AWSLambdaTests/AWSGeneralLambdaTests.m index 8ad5f8b58da..f1143fec7ac 100644 --- a/AWSLambdaTests/AWSGeneralLambdaTests.m +++ b/AWSLambdaTests/AWSGeneralLambdaTests.m @@ -15,9 +15,12 @@ #import #import +#import #import "AWSTestUtility.h" #import "AWSLambda.h" +static id mockNetworking = nil; + @interface AWSGeneralLambdaTests : XCTestCase @end @@ -26,7 +29,11 @@ @implementation AWSGeneralLambdaTests - (void)setUp { [super setUp]; - [AWSTestUtility setupCognitoCredentialsProvider]; + [AWSTestUtility setupFakeCognitoCredentialsProvider]; + + mockNetworking = OCMClassMock([AWSNetworking class]); + AWSTask *errorTask = [AWSTask taskWithError:[NSError errorWithDomain:@"OCMockExpectedNetworkingError" code:8848 userInfo:nil]]; + OCMStub([mockNetworking sendRequest:[OCMArg isKindOfClass:[AWSNetworkingRequest class]]]).andReturn(errorTask); } - (void)tearDown { @@ -55,13 +62,20 @@ - (void)testAddPermission { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSLambda registerLambdaWithConfiguration:configuration forKey:key]; + AWSLambda *awsClient = [AWSLambda LambdaForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSLambda LambdaForKey:key] addPermission:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSLambda removeLambdaForKey:key]; } @@ -70,13 +84,20 @@ - (void)testCreateEventSourceMapping { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSLambda registerLambdaWithConfiguration:configuration forKey:key]; + AWSLambda *awsClient = [AWSLambda LambdaForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSLambda LambdaForKey:key] createEventSourceMapping:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSLambda removeLambdaForKey:key]; } @@ -85,13 +106,20 @@ - (void)testCreateFunction { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSLambda registerLambdaWithConfiguration:configuration forKey:key]; + AWSLambda *awsClient = [AWSLambda LambdaForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSLambda LambdaForKey:key] createFunction:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSLambda removeLambdaForKey:key]; } @@ -100,13 +128,20 @@ - (void)testDeleteEventSourceMapping { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSLambda registerLambdaWithConfiguration:configuration forKey:key]; + AWSLambda *awsClient = [AWSLambda LambdaForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSLambda LambdaForKey:key] deleteEventSourceMapping:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSLambda removeLambdaForKey:key]; } @@ -115,13 +150,20 @@ - (void)testDeleteFunction { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSLambda registerLambdaWithConfiguration:configuration forKey:key]; + AWSLambda *awsClient = [AWSLambda LambdaForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSLambda LambdaForKey:key] deleteFunction:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSLambda removeLambdaForKey:key]; } @@ -130,13 +172,20 @@ - (void)testGetEventSourceMapping { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSLambda registerLambdaWithConfiguration:configuration forKey:key]; + AWSLambda *awsClient = [AWSLambda LambdaForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSLambda LambdaForKey:key] getEventSourceMapping:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSLambda removeLambdaForKey:key]; } @@ -145,13 +194,20 @@ - (void)testGetFunction { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSLambda registerLambdaWithConfiguration:configuration forKey:key]; + AWSLambda *awsClient = [AWSLambda LambdaForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSLambda LambdaForKey:key] getFunction:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSLambda removeLambdaForKey:key]; } @@ -160,13 +216,20 @@ - (void)testGetFunctionConfiguration { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSLambda registerLambdaWithConfiguration:configuration forKey:key]; + AWSLambda *awsClient = [AWSLambda LambdaForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSLambda LambdaForKey:key] getFunctionConfiguration:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSLambda removeLambdaForKey:key]; } @@ -175,13 +238,20 @@ - (void)testGetPolicy { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSLambda registerLambdaWithConfiguration:configuration forKey:key]; + AWSLambda *awsClient = [AWSLambda LambdaForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSLambda LambdaForKey:key] getPolicy:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSLambda removeLambdaForKey:key]; } @@ -190,13 +260,20 @@ - (void)testInvoke { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSLambda registerLambdaWithConfiguration:configuration forKey:key]; + AWSLambda *awsClient = [AWSLambda LambdaForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSLambda LambdaForKey:key] invoke:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSLambda removeLambdaForKey:key]; } @@ -205,13 +282,20 @@ - (void)testInvokeAsync { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSLambda registerLambdaWithConfiguration:configuration forKey:key]; + AWSLambda *awsClient = [AWSLambda LambdaForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSLambda LambdaForKey:key] invokeAsync:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSLambda removeLambdaForKey:key]; } @@ -220,13 +304,20 @@ - (void)testListEventSourceMappings { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSLambda registerLambdaWithConfiguration:configuration forKey:key]; + AWSLambda *awsClient = [AWSLambda LambdaForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSLambda LambdaForKey:key] listEventSourceMappings:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSLambda removeLambdaForKey:key]; } @@ -235,13 +326,20 @@ - (void)testListFunctions { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSLambda registerLambdaWithConfiguration:configuration forKey:key]; + AWSLambda *awsClient = [AWSLambda LambdaForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSLambda LambdaForKey:key] listFunctions:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSLambda removeLambdaForKey:key]; } @@ -250,13 +348,20 @@ - (void)testRemovePermission { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSLambda registerLambdaWithConfiguration:configuration forKey:key]; + AWSLambda *awsClient = [AWSLambda LambdaForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSLambda LambdaForKey:key] removePermission:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSLambda removeLambdaForKey:key]; } @@ -265,13 +370,20 @@ - (void)testUpdateEventSourceMapping { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSLambda registerLambdaWithConfiguration:configuration forKey:key]; + AWSLambda *awsClient = [AWSLambda LambdaForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSLambda LambdaForKey:key] updateEventSourceMapping:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSLambda removeLambdaForKey:key]; } @@ -280,13 +392,20 @@ - (void)testUpdateFunctionCode { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSLambda registerLambdaWithConfiguration:configuration forKey:key]; + AWSLambda *awsClient = [AWSLambda LambdaForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSLambda LambdaForKey:key] updateFunctionCode:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSLambda removeLambdaForKey:key]; } @@ -295,13 +414,20 @@ - (void)testUpdateFunctionConfiguration { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSLambda registerLambdaWithConfiguration:configuration forKey:key]; + AWSLambda *awsClient = [AWSLambda LambdaForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSLambda LambdaForKey:key] updateFunctionConfiguration:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSLambda removeLambdaForKey:key]; } diff --git a/AWSMachineLearning.podspec b/AWSMachineLearning.podspec index 21ea1e186b3..bf2b424b241 100644 --- a/AWSMachineLearning.podspec +++ b/AWSMachineLearning.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = 'AWSMachineLearning' - s.version = '2.2.0' + s.version = '2.2.1' s.summary = 'Amazon Web Services SDK for iOS.' s.description = 'The AWS SDK for iOS provides a library, code samples, and documentation for developers to build connected mobile applications using AWS.' @@ -13,7 +13,7 @@ Pod::Spec.new do |s| s.source = { :git => 'https://github.com/aws/aws-sdk-ios.git', :tag => s.version} s.requires_arc = true - s.dependency 'AWSCore', '2.2.0' + s.dependency 'AWSCore', '2.2.1' s.source_files = 'AWSMachineLearning/*.{h,m}' end diff --git a/AWSMachineLearning.xcodeproj/project.pbxproj b/AWSMachineLearning.xcodeproj/project.pbxproj index 7f3ef3190c2..f865a93e2fb 100644 --- a/AWSMachineLearning.xcodeproj/project.pbxproj +++ b/AWSMachineLearning.xcodeproj/project.pbxproj @@ -9,8 +9,13 @@ /* Begin PBXBuildFile section */ BDB73D831B1D3F3000717559 /* AWSMachineLearningResources.h in Headers */ = {isa = PBXBuildFile; fileRef = BDB73D811B1D3F3000717559 /* AWSMachineLearningResources.h */; }; BDB73D841B1D3F3000717559 /* AWSMachineLearningResources.m in Sources */ = {isa = PBXBuildFile; fileRef = BDB73D821B1D3F3000717559 /* AWSMachineLearningResources.m */; }; + BDD876AE1B4B5302009268C7 /* libOCMock.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDD876AD1B4B5302009268C7 /* libOCMock.a */; }; + BDF125EB1B45C24500DFBFEC /* AWSGeneralMachineLearningTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9200361ACF7BE700637171 /* AWSGeneralMachineLearningTests.m */; }; + BDF125EF1B45C24500DFBFEC /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE5325B1B03D386002CED62 /* libz.dylib */; }; + BDF125F01B45C24500DFBFEC /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CE92004C1ACF7FBB00637171 /* libAWSCore.a */; }; + BDF125F11B45C24500DFBFEC /* libAWSMachineLearning.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CE7123551ACF7A0B00D96A87 /* libAWSMachineLearning.a */; }; + BDF126921B45C87C00DFBFEC /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = CE92004A1ACF7F3700637171 /* AWSTestUtility.m */; }; CE7123611ACF7A0B00D96A87 /* libAWSMachineLearning.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CE7123551ACF7A0B00D96A87 /* libAWSMachineLearning.a */; }; - CE9200381ACF7BE700637171 /* AWSGeneralMachineLearningTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9200361ACF7BE700637171 /* AWSGeneralMachineLearningTests.m */; }; CE9200391ACF7BE700637171 /* AWSMachineLearningTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9200371ACF7BE700637171 /* AWSMachineLearningTests.m */; }; CE9200401ACF7CC500637171 /* AWSMachineLearning.h in Headers */ = {isa = PBXBuildFile; fileRef = CE92003A1ACF7CC500637171 /* AWSMachineLearning.h */; settings = {ATTRIBUTES = (Public, ); }; }; CE9200411ACF7CC500637171 /* AWSMachineLearningService.m in Sources */ = {isa = PBXBuildFile; fileRef = CE92003B1ACF7CC500637171 /* AWSMachineLearningService.m */; }; @@ -27,6 +32,13 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + BDF125E91B45C24500DFBFEC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = CE71234D1ACF7A0B00D96A87 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CE7123541ACF7A0B00D96A87; + remoteInfo = AWSMachineLearning; + }; CE7123621ACF7A0B00D96A87 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = CE71234D1ACF7A0B00D96A87 /* Project object */; @@ -52,11 +64,10 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 11873971354373936B380D88 /* Pods-AWSMachineLearning.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSMachineLearning.debug.xcconfig"; path = "Pods/Target Support Files/Pods-AWSMachineLearning/Pods-AWSMachineLearning.debug.xcconfig"; sourceTree = ""; }; - 36818999D668F95B30403A91 /* libPods-AWSMachineLearning.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AWSMachineLearning.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 983A09C75DB47041C7FC62B3 /* Pods-AWSMachineLearning.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSMachineLearning.release.xcconfig"; path = "Pods/Target Support Files/Pods-AWSMachineLearning/Pods-AWSMachineLearning.release.xcconfig"; sourceTree = ""; }; BDB73D811B1D3F3000717559 /* AWSMachineLearningResources.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AWSMachineLearningResources.h; sourceTree = ""; }; BDB73D821B1D3F3000717559 /* AWSMachineLearningResources.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSMachineLearningResources.m; sourceTree = ""; }; + BDD876AD1B4B5302009268C7 /* libOCMock.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libOCMock.a; path = AWSCoreTests/OCMock/libOCMock.a; sourceTree = ""; }; + BDF125F71B45C24500DFBFEC /* AWSMachineLearningUnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AWSMachineLearningUnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; CE7123551ACF7A0B00D96A87 /* libAWSMachineLearning.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libAWSMachineLearning.a; sourceTree = BUILT_PRODUCTS_DIR; }; CE7123601ACF7A0B00D96A87 /* AWSMachineLearningTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AWSMachineLearningTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; CE7123661ACF7A0B00D96A87 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -74,6 +85,17 @@ /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + BDF125EE1B45C24500DFBFEC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BDD876AE1B4B5302009268C7 /* libOCMock.a in Frameworks */, + BDF125EF1B45C24500DFBFEC /* libz.dylib in Frameworks */, + BDF125F01B45C24500DFBFEC /* libAWSCore.a in Frameworks */, + BDF125F11B45C24500DFBFEC /* libAWSMachineLearning.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; CE7123521ACF7A0B00D96A87 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -97,29 +119,19 @@ 13BA91A9ED2214407949A932 /* Frameworks */ = { isa = PBXGroup; children = ( + BDD876AD1B4B5302009268C7 /* libOCMock.a */, CEE5325B1B03D386002CED62 /* libz.dylib */, CE92004C1ACF7FBB00637171 /* libAWSCore.a */, - 36818999D668F95B30403A91 /* libPods-AWSMachineLearning.a */, ); name = Frameworks; sourceTree = ""; }; - B25AA71BE8549EECD8B6BF6D /* Pods */ = { - isa = PBXGroup; - children = ( - 11873971354373936B380D88 /* Pods-AWSMachineLearning.debug.xcconfig */, - 983A09C75DB47041C7FC62B3 /* Pods-AWSMachineLearning.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; CE71234C1ACF7A0B00D96A87 = { isa = PBXGroup; children = ( CE7123571ACF7A0B00D96A87 /* AWSMachineLearning */, CE7123641ACF7A0B00D96A87 /* AWSMachineLearningTests */, CE7123561ACF7A0B00D96A87 /* Products */, - B25AA71BE8549EECD8B6BF6D /* Pods */, 13BA91A9ED2214407949A932 /* Frameworks */, ); sourceTree = ""; @@ -129,6 +141,7 @@ children = ( CE7123551ACF7A0B00D96A87 /* libAWSMachineLearning.a */, CE7123601ACF7A0B00D96A87 /* AWSMachineLearningTests.xctest */, + BDF125F71B45C24500DFBFEC /* AWSMachineLearningUnitTests.xctest */, ); name = Products; sourceTree = ""; @@ -184,6 +197,24 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ + BDF125E71B45C24500DFBFEC /* AWSMachineLearningUnitTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = BDF125F41B45C24500DFBFEC /* Build configuration list for PBXNativeTarget "AWSMachineLearningUnitTests" */; + buildPhases = ( + BDF125EA1B45C24500DFBFEC /* Sources */, + BDF125EE1B45C24500DFBFEC /* Frameworks */, + BDF125F21B45C24500DFBFEC /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + BDF125E81B45C24500DFBFEC /* PBXTargetDependency */, + ); + name = AWSMachineLearningUnitTests; + productName = AWSMachineLearningTests; + productReference = BDF125F71B45C24500DFBFEC /* AWSMachineLearningUnitTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; CE7123541ACF7A0B00D96A87 /* AWSMachineLearning */ = { isa = PBXNativeTarget; buildConfigurationList = CE7123691ACF7A0B00D96A87 /* Build configuration list for PBXNativeTarget "AWSMachineLearning" */; @@ -251,11 +282,19 @@ targets = ( CE7123541ACF7A0B00D96A87 /* AWSMachineLearning */, CE71235F1ACF7A0B00D96A87 /* AWSMachineLearningTests */, + BDF125E71B45C24500DFBFEC /* AWSMachineLearningUnitTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + BDF125F21B45C24500DFBFEC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; CE71235E1ACF7A0B00D96A87 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -267,6 +306,15 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + BDF125EA1B45C24500DFBFEC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BDF126921B45C87C00DFBFEC /* AWSTestUtility.m in Sources */, + BDF125EB1B45C24500DFBFEC /* AWSGeneralMachineLearningTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; CE7123511ACF7A0B00D96A87 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -281,7 +329,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - CE9200381ACF7BE700637171 /* AWSGeneralMachineLearningTests.m in Sources */, CE92004B1ACF7F3700637171 /* AWSTestUtility.m in Sources */, CE9200391ACF7BE700637171 /* AWSMachineLearningTests.m in Sources */, ); @@ -290,6 +337,11 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + BDF125E81B45C24500DFBFEC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = CE7123541ACF7A0B00D96A87 /* AWSMachineLearning */; + targetProxy = BDF125E91B45C24500DFBFEC /* PBXContainerItemProxy */; + }; CE7123631ACF7A0B00D96A87 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = CE7123541ACF7A0B00D96A87 /* AWSMachineLearning */; @@ -298,10 +350,72 @@ /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ + BDF125F51B45C24500DFBFEC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = AWSMachineLearningTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSMachineLearningUnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Debug; + }; + BDF125F61B45C24500DFBFEC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + INFOPLIST_FILE = AWSMachineLearningTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSMachineLearningUnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Release; + }; CE7123671ACF7A0B00D96A87 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -343,6 +457,10 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -415,6 +533,7 @@ ); INFOPLIST_FILE = AWSMachineLearningTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -430,6 +549,7 @@ GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; INFOPLIST_FILE = AWSMachineLearningTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -437,6 +557,15 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + BDF125F41B45C24500DFBFEC /* Build configuration list for PBXNativeTarget "AWSMachineLearningUnitTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BDF125F51B45C24500DFBFEC /* Debug */, + BDF125F61B45C24500DFBFEC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; CE7123501ACF7A0B00D96A87 /* Build configuration list for PBXProject "AWSMachineLearning" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/AWSMachineLearning.xcodeproj/xcshareddata/xcschemes/AWSMachineLearning.xcscheme b/AWSMachineLearning.xcodeproj/xcshareddata/xcschemes/AWSMachineLearning.xcscheme new file mode 100644 index 00000000000..8445a6f0940 --- /dev/null +++ b/AWSMachineLearning.xcodeproj/xcshareddata/xcschemes/AWSMachineLearning.xcscheme @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AWSMachineLearning/AWSMachineLearningService.m b/AWSMachineLearning/AWSMachineLearningService.m index 03d9802ea8a..d6b6e4fbde2 100644 --- a/AWSMachineLearning/AWSMachineLearningService.m +++ b/AWSMachineLearning/AWSMachineLearningService.m @@ -206,10 +206,7 @@ - (instancetype)initWithConfiguration:(AWSServiceConfiguration *)configuration { _configuration.baseURL = _configuration.endpoint.URL; _configuration.requestInterceptors = @[[AWSNetworkingRequestInterceptor new], signer]; _configuration.retryHandler = [[AWSMachineLearningRequestRetryHandler alloc] initWithMaximumRetryCount:_configuration.maxRetryCount]; - _configuration.headers = @{ - @"Host" : _configuration.endpoint.hostName, - @"Content-Type" : @"application/x-amz-json-1.1" - }; + _configuration.headers = @{@"Content-Type" : @"application/x-amz-json-1.1"}; _networking = [[AWSNetworking alloc] initWithConfiguration:_configuration]; } diff --git a/AWSMachineLearningTests/AWSGeneralMachineLearningTests.m b/AWSMachineLearningTests/AWSGeneralMachineLearningTests.m index 8be679a56c6..2ec0b19a66c 100644 --- a/AWSMachineLearningTests/AWSGeneralMachineLearningTests.m +++ b/AWSMachineLearningTests/AWSGeneralMachineLearningTests.m @@ -15,9 +15,12 @@ #import #import +#import #import "AWSTestUtility.h" #import "AWSMachineLearning.h" +static id mockNetworking = nil; + @interface AWSGeneralMachineLearningTests : XCTestCase @end @@ -26,7 +29,11 @@ @implementation AWSGeneralMachineLearningTests - (void)setUp { [super setUp]; - [AWSTestUtility setupCognitoCredentialsProvider]; + [AWSTestUtility setupFakeCognitoCredentialsProvider]; + + mockNetworking = OCMClassMock([AWSNetworking class]); + AWSTask *errorTask = [AWSTask taskWithError:[NSError errorWithDomain:@"OCMockExpectedNetworkingError" code:8848 userInfo:nil]]; + OCMStub([mockNetworking sendRequest:[OCMArg isKindOfClass:[AWSNetworkingRequest class]]]).andReturn(errorTask); } - (void)tearDown { @@ -55,13 +62,20 @@ - (void)testGetMLModel { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSMachineLearning registerMachineLearningWithConfiguration:configuration forKey:key]; + AWSMachineLearning *awsClient = [AWSMachineLearning MachineLearningForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSMachineLearning MachineLearningForKey:key] getMLModel:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSMachineLearning removeMachineLearningForKey:key]; } @@ -70,13 +84,20 @@ - (void)testPredict { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSMachineLearning registerMachineLearningWithConfiguration:configuration forKey:key]; + AWSMachineLearning *awsClient = [AWSMachineLearning MachineLearningForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSMachineLearning MachineLearningForKey:key] predict:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSMachineLearning removeMachineLearningForKey:key]; } diff --git a/AWSMobileAnalytics.podspec b/AWSMobileAnalytics.podspec index 27b9f83916f..acdd53d7238 100644 --- a/AWSMobileAnalytics.podspec +++ b/AWSMobileAnalytics.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = 'AWSMobileAnalytics' - s.version = '2.2.0' + s.version = '2.2.1' s.summary = 'Amazon Web Services SDK for iOS.' s.description = 'The AWS SDK for iOS provides a library, code samples, and documentation for developers to build connected mobile applications using AWS.' @@ -13,7 +13,7 @@ Pod::Spec.new do |s| s.source = { :git => 'https://github.com/aws/aws-sdk-ios.git', :tag => s.version} s.requires_arc = true - s.dependency 'AWSCore', '2.2.0' + s.dependency 'AWSCore', '2.2.1' s.source_files = 'AWSMobileAnalytics/*.{h,m}', 'AWSMobileAnalytics/**/*.{h,m}' s.private_header_files = 'AWSMobileAnalytics/Internal/*.h' diff --git a/AWSMobileAnalytics.xcodeproj/project.pbxproj b/AWSMobileAnalytics.xcodeproj/project.pbxproj index f95952a5343..d9814bc0b8b 100644 --- a/AWSMobileAnalytics.xcodeproj/project.pbxproj +++ b/AWSMobileAnalytics.xcodeproj/project.pbxproj @@ -7,15 +7,23 @@ objects = { /* Begin PBXBuildFile section */ + BD4C9AEA1B4C697400267270 /* libOCMock.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDD876AF1B4B5316009268C7 /* libOCMock.a */; }; + BD4C9AEB1B4C69DB00267270 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2E0C901B03F2B400DE3906 /* SystemConfiguration.framework */; }; BDB73D631B1D3E3300717559 /* AWSMobileAnalyticsERSResources.h in Headers */ = {isa = PBXBuildFile; fileRef = BDB73D611B1D3E3300717559 /* AWSMobileAnalyticsERSResources.h */; }; BDB73D641B1D3E3300717559 /* AWSMobileAnalyticsERSResources.m in Sources */ = {isa = PBXBuildFile; fileRef = BDB73D621B1D3E3300717559 /* AWSMobileAnalyticsERSResources.m */; }; + BDD876B01B4B5316009268C7 /* libOCMock.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDD876AF1B4B5316009268C7 /* libOCMock.a */; }; + BDF125FE1B45C27900DFBFEC /* AWSGeneralMobileAnalyticsERSTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE533BE1B03E4FB002CED62 /* AWSGeneralMobileAnalyticsERSTests.m */; }; + BDF125FF1B45C27900DFBFEC /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE5341B1B03E5C0002CED62 /* AWSTestUtility.m */; }; + BDF126021B45C27900DFBFEC /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2E0C901B03F2B400DE3906 /* SystemConfiguration.framework */; }; + BDF126031B45C27900DFBFEC /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2E0C8E1B03F2A300DE3906 /* libAWSCore.a */; }; + BDF126041B45C27900DFBFEC /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2E0C681B03EBDB00DE3906 /* libz.dylib */; }; + BDF126051B45C27900DFBFEC /* libAWSMobileAnalytics.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE532781B03DE7F002CED62 /* libAWSMobileAnalytics.a */; }; CE2E0C671B03EB9100DE3906 /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2E0C661B03EB9100DE3906 /* libAWSCore.a */; }; CE2E0C691B03EBDB00DE3906 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2E0C681B03EBDB00DE3906 /* libz.dylib */; }; CE2E0C6B1B03EBE600DE3906 /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2E0C6A1B03EBE600DE3906 /* libsqlite3.dylib */; }; CE2E0C6D1B03EC6D00DE3906 /* credentials.json in Resources */ = {isa = PBXBuildFile; fileRef = CE2E0C6C1B03EC6D00DE3906 /* credentials.json */; }; CE2E0C7D1B03EFD300DE3906 /* libAWSMobileAnalytics.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE532781B03DE7F002CED62 /* libAWSMobileAnalytics.a */; }; CE2E0C831B03F07C00DE3906 /* AWSAnalyticsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE533BD1B03E4FB002CED62 /* AWSAnalyticsTests.m */; }; - CE2E0C841B03F08000DE3906 /* AWSGeneralMobileAnalyticsERSTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE533BE1B03E4FB002CED62 /* AWSGeneralMobileAnalyticsERSTests.m */; }; CE2E0C851B03F08000DE3906 /* AWSMobileAnalyticsERSTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE533C11B03E4FB002CED62 /* AWSMobileAnalyticsERSTests.m */; }; CE2E0C881B03F0F900DE3906 /* credentials.json in Resources */ = {isa = PBXBuildFile; fileRef = CE2E0C6C1B03EC6D00DE3906 /* credentials.json */; }; CE2E0C891B03F0F900DE3906 /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE5341B1B03E5C0002CED62 /* AWSTestUtility.m */; }; @@ -221,10 +229,16 @@ CEE534181B03E4FB002CED62 /* TestEventObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE533D51B03E4FB002CED62 /* TestEventObserver.m */; }; CEE534191B03E4FB002CED62 /* TestInsightsContext.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE533D71B03E4FB002CED62 /* TestInsightsContext.m */; }; CEE5341C1B03E5C0002CED62 /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE5341B1B03E5C0002CED62 /* AWSTestUtility.m */; }; - CEE534281B03E612002CED62 /* libOCMock.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE534271B03E612002CED62 /* libOCMock.a */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + BDF125FB1B45C27900DFBFEC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = CEE532701B03DE7F002CED62 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CEE532771B03DE7F002CED62; + remoteInfo = AWSMobileAnalytics; + }; CE2E0C7E1B03EFD300DE3906 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = CEE532701B03DE7F002CED62 /* Project object */; @@ -265,6 +279,8 @@ /* Begin PBXFileReference section */ BDB73D611B1D3E3300717559 /* AWSMobileAnalyticsERSResources.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AWSMobileAnalyticsERSResources.h; path = AWSMobileAnalytics/AWSMobileAnalyticsERS/AWSMobileAnalyticsERSResources.h; sourceTree = SOURCE_ROOT; }; BDB73D621B1D3E3300717559 /* AWSMobileAnalyticsERSResources.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AWSMobileAnalyticsERSResources.m; path = AWSMobileAnalytics/AWSMobileAnalyticsERS/AWSMobileAnalyticsERSResources.m; sourceTree = SOURCE_ROOT; }; + BDD876AF1B4B5316009268C7 /* libOCMock.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libOCMock.a; path = AWSCoreTests/OCMock/libOCMock.a; sourceTree = ""; }; + BDF1260B1B45C27900DFBFEC /* AWSMobileAnalyticsUnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AWSMobileAnalyticsUnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; CE2E0C661B03EB9100DE3906 /* libAWSCore.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libAWSCore.a; path = "../build/Debug-iphoneos/libAWSCore.a"; sourceTree = ""; }; CE2E0C681B03EBDB00DE3906 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; CE2E0C6A1B03EBE600DE3906 /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; }; @@ -520,16 +536,21 @@ CEE533D61B03E4FB002CED62 /* TestInsightsContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestInsightsContext.h; sourceTree = ""; }; CEE533D71B03E4FB002CED62 /* TestInsightsContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestInsightsContext.m; sourceTree = ""; }; CEE5341B1B03E5C0002CED62 /* AWSTestUtility.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AWSTestUtility.m; path = AWSCoreTests/AWSTestUtility.m; sourceTree = SOURCE_ROOT; }; - CEE534201B03E612002CED62 /* NSNotificationCenter+OCMAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSNotificationCenter+OCMAdditions.h"; sourceTree = ""; }; - CEE534211B03E612002CED62 /* OCMArg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMArg.h; sourceTree = ""; }; - CEE534221B03E612002CED62 /* OCMConstraint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMConstraint.h; sourceTree = ""; }; - CEE534231B03E612002CED62 /* OCMock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMock.h; sourceTree = ""; }; - CEE534241B03E612002CED62 /* OCMockObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMockObject.h; sourceTree = ""; }; - CEE534251B03E612002CED62 /* OCMockRecorder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMockRecorder.h; sourceTree = ""; }; - CEE534271B03E612002CED62 /* libOCMock.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libOCMock.a; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + BDF126011B45C27900DFBFEC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BDD876B01B4B5316009268C7 /* libOCMock.a in Frameworks */, + BDF126021B45C27900DFBFEC /* SystemConfiguration.framework in Frameworks */, + BDF126031B45C27900DFBFEC /* libAWSCore.a in Frameworks */, + BDF126041B45C27900DFBFEC /* libz.dylib in Frameworks */, + BDF126051B45C27900DFBFEC /* libAWSMobileAnalytics.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; CE2E0C741B03EFD300DE3906 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -552,10 +573,11 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + BD4C9AEB1B4C69DB00267270 /* SystemConfiguration.framework in Frameworks */, + BD4C9AEA1B4C697400267270 /* libOCMock.a in Frameworks */, CE2E0C6B1B03EBE600DE3906 /* libsqlite3.dylib in Frameworks */, CE2E0C691B03EBDB00DE3906 /* libz.dylib in Frameworks */, CE2E0C671B03EB9100DE3906 /* libAWSCore.a in Frameworks */, - CEE534281B03E612002CED62 /* libOCMock.a in Frameworks */, CEE532841B03DE7F002CED62 /* libAWSMobileAnalytics.a in Frameworks */, CEE534131B03E4FB002CED62 /* OCHamcrestIOS.framework in Frameworks */, ); @@ -590,6 +612,7 @@ CEE5326F1B03DE7F002CED62 = { isa = PBXGroup; children = ( + BDD876AF1B4B5316009268C7 /* libOCMock.a */, CEE5327A1B03DE7F002CED62 /* AWSMobileAnalytics */, CE2E0C781B03EFD300DE3906 /* AWSMobileAnalyticsTests */, CEE532871B03DE7F002CED62 /* AWSMobileAnalyticsLegacyTests */, @@ -603,6 +626,7 @@ CEE532781B03DE7F002CED62 /* libAWSMobileAnalytics.a */, CEE532831B03DE7F002CED62 /* AWSMobileAnalyticsLegacyTests.xctest */, CE2E0C771B03EFD300DE3906 /* AWSMobileAnalyticsTests.xctest */, + BDF1260B1B45C27900DFBFEC /* AWSMobileAnalyticsUnitTests.xctest */, ); name = Products; sourceTree = ""; @@ -735,7 +759,6 @@ CEE533D51B03E4FB002CED62 /* TestEventObserver.m */, CEE533D61B03E4FB002CED62 /* TestInsightsContext.h */, CEE533D71B03E4FB002CED62 /* TestInsightsContext.m */, - CEE5341D1B03E612002CED62 /* usr */, CEE532881B03DE7F002CED62 /* Supporting Files */, ); name = AWSMobileAnalyticsLegacyTests; @@ -902,44 +925,6 @@ path = Frameworks; sourceTree = ""; }; - CEE5341D1B03E612002CED62 /* usr */ = { - isa = PBXGroup; - children = ( - CEE5341E1B03E612002CED62 /* include */, - CEE534261B03E612002CED62 /* lib */, - ); - path = usr; - sourceTree = ""; - }; - CEE5341E1B03E612002CED62 /* include */ = { - isa = PBXGroup; - children = ( - CEE5341F1B03E612002CED62 /* OCMock */, - ); - path = include; - sourceTree = ""; - }; - CEE5341F1B03E612002CED62 /* OCMock */ = { - isa = PBXGroup; - children = ( - CEE534201B03E612002CED62 /* NSNotificationCenter+OCMAdditions.h */, - CEE534211B03E612002CED62 /* OCMArg.h */, - CEE534221B03E612002CED62 /* OCMConstraint.h */, - CEE534231B03E612002CED62 /* OCMock.h */, - CEE534241B03E612002CED62 /* OCMockObject.h */, - CEE534251B03E612002CED62 /* OCMockRecorder.h */, - ); - path = OCMock; - sourceTree = ""; - }; - CEE534261B03E612002CED62 /* lib */ = { - isa = PBXGroup; - children = ( - CEE534271B03E612002CED62 /* libOCMock.a */, - ); - path = lib; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -1038,6 +1023,24 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ + BDF125F91B45C27900DFBFEC /* AWSMobileAnalyticsUnitTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = BDF126081B45C27900DFBFEC /* Build configuration list for PBXNativeTarget "AWSMobileAnalyticsUnitTests" */; + buildPhases = ( + BDF125FC1B45C27900DFBFEC /* Sources */, + BDF126011B45C27900DFBFEC /* Frameworks */, + BDF126061B45C27900DFBFEC /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + BDF125FA1B45C27900DFBFEC /* PBXTargetDependency */, + ); + name = AWSMobileAnalyticsUnitTests; + productName = AWSMobileAnalyticsTests; + productReference = BDF1260B1B45C27900DFBFEC /* AWSMobileAnalyticsUnitTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; CE2E0C761B03EFD300DE3906 /* AWSMobileAnalyticsTests */ = { isa = PBXNativeTarget; buildConfigurationList = CE2E0C801B03EFD300DE3906 /* Build configuration list for PBXNativeTarget "AWSMobileAnalyticsTests" */; @@ -1127,11 +1130,19 @@ CEE532771B03DE7F002CED62 /* AWSMobileAnalytics */, CE2E0C761B03EFD300DE3906 /* AWSMobileAnalyticsTests */, CEE532821B03DE7F002CED62 /* AWSMobileAnalyticsLegacyTests */, + BDF125F91B45C27900DFBFEC /* AWSMobileAnalyticsUnitTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + BDF126061B45C27900DFBFEC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; CE2E0C751B03EFD300DE3906 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -1151,12 +1162,20 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + BDF125FC1B45C27900DFBFEC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BDF125FE1B45C27900DFBFEC /* AWSGeneralMobileAnalyticsERSTests.m in Sources */, + BDF125FF1B45C27900DFBFEC /* AWSTestUtility.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; CE2E0C731B03EFD300DE3906 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( CE2E0C851B03F08000DE3906 /* AWSMobileAnalyticsERSTests.m in Sources */, - CE2E0C841B03F08000DE3906 /* AWSGeneralMobileAnalyticsERSTests.m in Sources */, CE2E0C891B03F0F900DE3906 /* AWSTestUtility.m in Sources */, CE2E0C831B03F07C00DE3906 /* AWSAnalyticsTests.m in Sources */, ); @@ -1284,6 +1303,11 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + BDF125FA1B45C27900DFBFEC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = CEE532771B03DE7F002CED62 /* AWSMobileAnalytics */; + targetProxy = BDF125FB1B45C27900DFBFEC /* PBXContainerItemProxy */; + }; CE2E0C7F1B03EFD300DE3906 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = CEE532771B03DE7F002CED62 /* AWSMobileAnalytics */; @@ -1297,6 +1321,64 @@ /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ + BDF126091B45C27900DFBFEC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = AWSMobileAnalyticsTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSMobileAnalyticsUnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Debug; + }; + BDF1260A1B45C27900DFBFEC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + INFOPLIST_FILE = AWSMobileAnalyticsTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSMobileAnalyticsUnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Release; + }; CE2E0C811B03EFD300DE3906 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1311,7 +1393,10 @@ ); INFOPLIST_FILE = AWSMobileAnalyticsTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = "$(inherited)"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(SYMROOT)", + ); PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -1326,7 +1411,10 @@ ); INFOPLIST_FILE = AWSMobileAnalyticsTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = "$(inherited)"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(SYMROOT)", + ); PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -1335,6 +1423,10 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -1378,6 +1470,10 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -1446,13 +1542,16 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", - "$(PROJECT_DIR)/AWSMobileAnalyticsTests/usr/lib", + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", ); OTHER_LDFLAGS = ( "$(inherited)", - "-ObjC", + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", ); PRODUCT_NAME = "$(TARGET_NAME)"; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; }; name = Debug; }; @@ -1469,19 +1568,31 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", - "$(PROJECT_DIR)/AWSMobileAnalyticsTests/usr/lib", + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", ); OTHER_LDFLAGS = ( "$(inherited)", - "-ObjC", + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", ); PRODUCT_NAME = "$(TARGET_NAME)"; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + BDF126081B45C27900DFBFEC /* Build configuration list for PBXNativeTarget "AWSMobileAnalyticsUnitTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BDF126091B45C27900DFBFEC /* Debug */, + BDF1260A1B45C27900DFBFEC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; CE2E0C801B03EFD300DE3906 /* Build configuration list for PBXNativeTarget "AWSMobileAnalyticsTests" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/AWSMobileAnalytics.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/AWSMobileAnalytics.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000000..919434a6254 --- /dev/null +++ b/AWSMobileAnalytics.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/AWSMobileAnalytics.xcodeproj/xcshareddata/xcschemes/AWSMobileAnalytics.xcscheme b/AWSMobileAnalytics.xcodeproj/xcshareddata/xcschemes/AWSMobileAnalytics.xcscheme new file mode 100644 index 00000000000..4761056e181 --- /dev/null +++ b/AWSMobileAnalytics.xcodeproj/xcshareddata/xcschemes/AWSMobileAnalytics.xcscheme @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AWSMobileAnalytics/AWSMobileAnalyticsERS/AWSMobileAnalyticsERSService.m b/AWSMobileAnalytics/AWSMobileAnalyticsERS/AWSMobileAnalyticsERSService.m index 3e3646975f5..506405502ab 100644 --- a/AWSMobileAnalytics/AWSMobileAnalyticsERS/AWSMobileAnalyticsERSService.m +++ b/AWSMobileAnalytics/AWSMobileAnalyticsERS/AWSMobileAnalyticsERSService.m @@ -253,9 +253,8 @@ - (instancetype)initWithConfiguration:(AWSServiceConfiguration *)configuration { _configuration.baseURL = _configuration.endpoint.URL; _configuration.requestInterceptors = @[[AWSNetworkingRequestInterceptor new], signer]; _configuration.retryHandler = [[AWSMobileAnalyticsERSRequestRetryHandler alloc] initWithMaximumRetryCount:_configuration.maxRetryCount]; - _configuration.headers = @{@"Host" : _configuration.endpoint.hostName, + _configuration.headers = @{ @"Content-Type" : @"application/x-amz-json-1.1", - @"Accept-Encoding" : @"", @"Content-Encoding": @"gzip" }; diff --git a/AWSMobileAnalyticsTests/AIDeliveryIntegrationTests.m b/AWSMobileAnalyticsTests/AIDeliveryIntegrationTests.m index d6a6102ec58..a056c84ec94 100644 --- a/AWSMobileAnalyticsTests/AIDeliveryIntegrationTests.m +++ b/AWSMobileAnalyticsTests/AIDeliveryIntegrationTests.m @@ -373,55 +373,55 @@ - (void)test_submitEvents_forbiddenResponse_eventsDeleted assertThatBool(containsMyEvent, is(equalToBool(NO))); } -- (void)test_submitEvents_successfulDelivery_eventsDeleted -{ - [self buildTestContext]; - - AWSMobileAnalyticsDefaultDeliveryClient* deliveryClient = [AWSMobileAnalyticsDefaultDeliveryClient deliveryClientWithContext:_context - withWanDelivery:NO]; - id eventClient = [[AWSMobileAnalyticsDefaultEventClient alloc] initWithContext:_context - withDeliveryClient:deliveryClient - allowsEventCollection:YES]; - - DeliveryBlockingInterceptor* interceptor = [[DeliveryBlockingInterceptor alloc] init]; - [interceptor setExpectedRequestURL:[NSURL URLWithString:[BASE_URL stringByAppendingFormat:@"%@/events", APP_KEY]]]; - [interceptor setExpectedResponseCode:202]; - [[_context httpClient] addInterceptor:interceptor]; - - id event = [eventClient createEventWithEventType:@"my_event"]; - - //add fake session.id - [event addAttribute:@"ccesskey-11111111-20140606-231017274" forKey:AWSSessionIDAttributeKey]; - //add startTimeStamp - [event addAttribute:[[NSDate date] aws_stringValue:AWSDateISO8601DateFormat3] forKey:AWSSessionStartTimeAttributeKey]; - //set eventRecorderService object - idhttpClient = [deliveryClient valueForKey:@"httpClient"]; - httpClient.ers = [AWSMobileAnalyticsERS defaultMobileAnalyticsERS]; - - [eventClient recordEvent:event]; - [deliveryClient attemptDelivery]; - - [interceptor waitForResponse:3]; - assertThat([interceptor exception], is(nilValue())); - assertThatBool([interceptor successfulSend], is(equalToBool(YES))); - assertThatBool([interceptor receivedResponse], is(equalToBool(YES))); - [self verifyRequest:interceptor.theRequest]; - - [NSThread sleepForTimeInterval:.5]; - - NSArray *recordedEvents = [deliveryClient batchedEvents]; - BOOL containsMyEvent = NO; - for (NSString *event in recordedEvents) - { - NSDictionary *eventDict = [_serializer readObject:[event dataUsingEncoding:NSUTF8StringEncoding]]; - if ([[eventDict valueForKey:@"event_type"] isEqualToString:@"my_event"]) { - containsMyEvent = YES; - break; - } - } - - assertThatBool(containsMyEvent, is(equalToBool(NO))); -} +//- (void)test_submitEvents_successfulDelivery_eventsDeleted +//{ +// [self buildTestContext]; +// +// AWSMobileAnalyticsDefaultDeliveryClient* deliveryClient = [AWSMobileAnalyticsDefaultDeliveryClient deliveryClientWithContext:_context +// withWanDelivery:NO]; +// id eventClient = [[AWSMobileAnalyticsDefaultEventClient alloc] initWithContext:_context +// withDeliveryClient:deliveryClient +// allowsEventCollection:YES]; +// +// DeliveryBlockingInterceptor* interceptor = [[DeliveryBlockingInterceptor alloc] init]; +// [interceptor setExpectedRequestURL:[NSURL URLWithString:[BASE_URL stringByAppendingFormat:@"%@/events", APP_KEY]]]; +// [interceptor setExpectedResponseCode:202]; +// [[_context httpClient] addInterceptor:interceptor]; +// +// id event = [eventClient createEventWithEventType:@"my_event"]; +// +// //add fake session.id +// [event addAttribute:@"ccesskey-11111111-20140606-231017274" forKey:AWSSessionIDAttributeKey]; +// //add startTimeStamp +// [event addAttribute:[[NSDate date] aws_stringValue:AWSDateISO8601DateFormat3] forKey:AWSSessionStartTimeAttributeKey]; +// //set eventRecorderService object +// idhttpClient = [deliveryClient valueForKey:@"httpClient"]; +// httpClient.ers = [AWSMobileAnalyticsERS defaultMobileAnalyticsERS]; +// +// [eventClient recordEvent:event]; +// [deliveryClient attemptDelivery]; +// +// [interceptor waitForResponse:3]; +// assertThat([interceptor exception], is(nilValue())); +// assertThatBool([interceptor successfulSend], is(equalToBool(YES))); +// assertThatBool([interceptor receivedResponse], is(equalToBool(YES))); +// [self verifyRequest:interceptor.theRequest]; +// +// [NSThread sleepForTimeInterval:.5]; +// +// NSArray *recordedEvents = [deliveryClient batchedEvents]; +// BOOL containsMyEvent = NO; +// for (NSString *event in recordedEvents) +// { +// NSDictionary *eventDict = [_serializer readObject:[event dataUsingEncoding:NSUTF8StringEncoding]]; +// if ([[eventDict valueForKey:@"event_type"] isEqualToString:@"my_event"]) { +// containsMyEvent = YES; +// break; +// } +// } +// +// assertThatBool(containsMyEvent, is(equalToBool(NO))); +//} - (void)test_eventsReadingAndWriting_threadSafety_CoveredAtOtherPlaces { diff --git a/AWSMobileAnalyticsTests/AIMonetizationEventBuilderTests.m b/AWSMobileAnalyticsTests/AIMonetizationEventBuilderTests.m index b56ebbfe530..8d2eb208dc9 100644 --- a/AWSMobileAnalyticsTests/AIMonetizationEventBuilderTests.m +++ b/AWSMobileAnalyticsTests/AIMonetizationEventBuilderTests.m @@ -256,9 +256,8 @@ -(void) test_appleMonetizationEvent_nilValues assertThat(monetizationEvent, is(nilValue())); //nil transaction id } --(void) test_appleMonetizationEvent_manyLocaleCurrencyConversions -{ - AWSMobileAnalyticsAppleMonetizationEventBuilder* appleBuilder = [AWSMobileAnalyticsAppleMonetizationEventBuilder builderWithEventClient:mockEventClient]; +-(void) test_appleMonetizationEvent_manyLocaleCurrencyConversions { + AWSMobileAnalyticsAppleMonetizationEventBuilder* appleBuilder = nil; NSInteger quantity = 1; NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; diff --git a/AWSMobileAnalyticsTests/AISessionClientTests.m b/AWSMobileAnalyticsTests/AISessionClientTests.m index 55b2ee8da54..a920efbf501 100644 --- a/AWSMobileAnalyticsTests/AISessionClientTests.m +++ b/AWSMobileAnalyticsTests/AISessionClientTests.m @@ -474,7 +474,7 @@ -(void)test_StartSession_PreviousPersistedSessionSubmitted_DoesNotFireStopEvent_ TestEventObserver2* newInterceptor = [[TestEventObserver2 alloc] initObserver]; [AWSMobileAnalytics removeCachedInstances]; - insights = [AWSMobileAnalytics mobileAnalyticsForAppId:[NSStringFromSelector(_cmd) stringByAppendingString:@"-2"] + [AWSMobileAnalytics mobileAnalyticsForAppId:[NSStringFromSelector(_cmd) stringByAppendingString:@"-2"] configuration:[AWSMobileAnalyticsConfiguration new] completionBlock:^(AWSMobileAnalytics *newInsights) { id newEc = (id) [newInsights eventClient]; diff --git a/AWSMobileAnalyticsTests/AISubmissionTimePolicyTests.m b/AWSMobileAnalyticsTests/AISubmissionTimePolicyTests.m index 0c44710947a..18cf56e823d 100644 --- a/AWSMobileAnalyticsTests/AISubmissionTimePolicyTests.m +++ b/AWSMobileAnalyticsTests/AISubmissionTimePolicyTests.m @@ -16,7 +16,7 @@ #import "AISubmissionTimePolicyTests.h" #import "AIInsightsContextBuilder.h" #import "AWSMobileAnalyticsSubmissionTimePolicy.h" -#import "OCMock.h" +#import static id mockContext = nil; static id mockPreferences = nil; diff --git a/AWSMobileAnalyticsTests/AWSAnalyticsTests.m b/AWSMobileAnalyticsTests/AWSAnalyticsTests.m index f2f76dd4c4b..2006df31b58 100644 --- a/AWSMobileAnalyticsTests/AWSAnalyticsTests.m +++ b/AWSMobileAnalyticsTests/AWSAnalyticsTests.m @@ -44,7 +44,66 @@ - (void)tearDown { [super tearDown]; } - +- (void)testAtomicCopy { + + NSFileManager *fileManager = [NSFileManager defaultManager]; + + NSURL* possibleCachesURL = [[fileManager URLsForDirectory:NSCachesDirectory inDomains:NSUserDomainMask] objectAtIndex:0]; + XCTAssertNotNil(possibleCachesURL); + NSString *testCachesPath = [[possibleCachesURL path] stringByAppendingPathComponent:@"com.amazonaws.test"]; + NSError *error = nil; + + + NSURL* possibleApplicationSupportURL = [[fileManager URLsForDirectory:NSApplicationSupportDirectory inDomains:NSUserDomainMask] objectAtIndex:0]; + XCTAssertNotNil(possibleApplicationSupportURL); + NSString *testAppSupportPath = [[possibleApplicationSupportURL path] stringByAppendingPathComponent:@"com.amazonaws.test"]; + error = nil; + + //clean up + [fileManager removeItemAtPath:testCachesPath error:nil]; + [fileManager removeItemAtPath:testAppSupportPath error:nil]; + + XCTAssertTrue([fileManager createDirectoryAtPath:testCachesPath withIntermediateDirectories:YES attributes:nil error:&error]); + XCTAssertTrue([fileManager createDirectoryAtPath:testAppSupportPath withIntermediateDirectories:YES attributes:nil error:&error]); + + NSString *uuid = [[NSUUID UUID] UUIDString]; + NSDictionary *testDic = @{@"testID":uuid}; + error = nil; + NSData *testData = [NSJSONSerialization dataWithJSONObject:testDic options:kNilOptions error:&error]; + XCTAssertNotNil(testData); + XCTAssertNil(error); + + XCTAssertTrue([testData writeToFile:[testCachesPath stringByAppendingPathComponent:@"testFile"] atomically:YES]); + + error = nil; + BOOL result = [fileManager aws_atomicallyCopyItemAtURL:[NSURL fileURLWithPath:testCachesPath] + toURL:[NSURL fileURLWithPath:testAppSupportPath] + backupItemName:@"com.amazonaws.MobileAnalytics.backupItem" + error:&error]; + if ( NO == result) { + XCTFail(@"aws_atomicCopyItemAtURL failed. %@",error); + } + + XCTAssertTrue([fileManager fileExistsAtPath:[testCachesPath stringByAppendingPathComponent:@"testFile"]]); + XCTAssertTrue([fileManager fileExistsAtPath:[testAppSupportPath stringByAppendingPathComponent:@"testFile"]]); + + NSData *resultTestData = [NSData dataWithContentsOfFile:[testAppSupportPath stringByAppendingPathComponent:@"testFile"]]; + XCTAssertNotNil(resultTestData); + XCTAssertEqualObjects(testData, resultTestData); + error = nil; + NSDictionary *resultTestDic = [NSJSONSerialization JSONObjectWithData:resultTestData options:kNilOptions error:&error]; + XCTAssertNotNil(resultTestDic); + XCTAssertNil(error); + + NSString *resultUUID = resultTestDic[@"testID"]; + XCTAssertEqualObjects(uuid, resultUUID); + + + //clean up + [fileManager removeItemAtPath:testCachesPath error:nil]; + [fileManager removeItemAtPath:testAppSupportPath error:nil]; + +} - (void)test_clientID_persistence { #pragma clang diagnostic push diff --git a/AWSMobileAnalyticsTests/AWSGeneralMobileAnalyticsERSTests.m b/AWSMobileAnalyticsTests/AWSGeneralMobileAnalyticsERSTests.m index cd987da13d3..3c7818f86c9 100644 --- a/AWSMobileAnalyticsTests/AWSGeneralMobileAnalyticsERSTests.m +++ b/AWSMobileAnalyticsTests/AWSGeneralMobileAnalyticsERSTests.m @@ -15,9 +15,12 @@ #import #import +#import #import "AWSTestUtility.h" #import "AWSMobileAnalyticsERS.h" +static id mockNetworking = nil; + @interface AWSGeneralMobileAnalyticsERSTests : XCTestCase @end @@ -26,7 +29,11 @@ @implementation AWSGeneralMobileAnalyticsERSTests - (void)setUp { [super setUp]; - [AWSTestUtility setupCognitoCredentialsProvider]; + [AWSTestUtility setupFakeCognitoCredentialsProvider]; + + mockNetworking = OCMClassMock([AWSNetworking class]); + AWSTask *errorTask = [AWSTask taskWithError:[NSError errorWithDomain:@"OCMockExpectedNetworkingError" code:8848 userInfo:nil]]; + OCMStub([mockNetworking sendRequest:[OCMArg isKindOfClass:[AWSNetworkingRequest class]]]).andReturn(errorTask); } - (void)tearDown { @@ -55,13 +62,20 @@ - (void)testPutEvents { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSMobileAnalyticsERS registerMobileAnalyticsERSWithConfiguration:configuration forKey:key]; + AWSMobileAnalyticsERS *awsClient = [AWSMobileAnalyticsERS MobileAnalyticsERSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSMobileAnalyticsERS MobileAnalyticsERSForKey:key] putEvents:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSMobileAnalyticsERS removeMobileAnalyticsERSForKey:key]; } diff --git a/AWSMobileAnalyticsTests/AWSMobileAnalyticsERSTests.m b/AWSMobileAnalyticsTests/AWSMobileAnalyticsERSTests.m index 95711fe08af..d1dea0ce445 100644 --- a/AWSMobileAnalyticsTests/AWSMobileAnalyticsERSTests.m +++ b/AWSMobileAnalyticsTests/AWSMobileAnalyticsERSTests.m @@ -15,6 +15,7 @@ #if !AWS_TEST_BJS_INSTEAD +#import #import #import "AWSCore.h" #import "AWSTestUtility.h" diff --git a/AWSMobileAnalyticsTests/AmazonInsightsSDKTests.h b/AWSMobileAnalyticsTests/AmazonInsightsSDKTests.h index 08b40d103b6..9a19fe5c98c 100644 --- a/AWSMobileAnalyticsTests/AmazonInsightsSDKTests.h +++ b/AWSMobileAnalyticsTests/AmazonInsightsSDKTests.h @@ -18,7 +18,7 @@ #import #import #import -#import "OCMock.h" +#import @interface NSString (RegExpExtensions) - (BOOL)doesMatchRegStringExp:(NSString *)string; diff --git a/AWSMobileAnalyticsTests/usr/include/OCMock/NSNotificationCenter+OCMAdditions.h b/AWSMobileAnalyticsTests/usr/include/OCMock/NSNotificationCenter+OCMAdditions.h deleted file mode 100644 index ab4832bbfb6..00000000000 --- a/AWSMobileAnalyticsTests/usr/include/OCMock/NSNotificationCenter+OCMAdditions.h +++ /dev/null @@ -1,15 +0,0 @@ -//--------------------------------------------------------------------------------------- -// $Id$ -// Copyright (c) 2009 by Mulle Kybernetik. See License file for details. -//--------------------------------------------------------------------------------------- - -#import - -@class OCMockObserver; - - -@interface NSNotificationCenter(OCMAdditions) - -- (void)addMockObserver:(OCMockObserver *)notificationObserver name:(NSString *)notificationName object:(id)notificationSender; - -@end diff --git a/AWSMobileAnalyticsTests/usr/include/OCMock/OCMConstraint.h b/AWSMobileAnalyticsTests/usr/include/OCMock/OCMConstraint.h deleted file mode 100644 index 3ae12646038..00000000000 --- a/AWSMobileAnalyticsTests/usr/include/OCMock/OCMConstraint.h +++ /dev/null @@ -1,64 +0,0 @@ -//--------------------------------------------------------------------------------------- -// $Id$ -// Copyright (c) 2007-2010 by Mulle Kybernetik. See License file for details. -//--------------------------------------------------------------------------------------- - -#import - - -@interface OCMConstraint : NSObject - -+ (id)constraint; -- (BOOL)evaluate:(id)value; - -// if you are looking for any, isNil, etc, they have moved to OCMArg - -// try to use [OCMArg checkWith...] instead of the constraintWith... methods below - -+ (id)constraintWithSelector:(SEL)aSelector onObject:(id)anObject; -+ (id)constraintWithSelector:(SEL)aSelector onObject:(id)anObject withValue:(id)aValue; - - -@end - -@interface OCMAnyConstraint : OCMConstraint -@end - -@interface OCMIsNilConstraint : OCMConstraint -@end - -@interface OCMIsNotNilConstraint : OCMConstraint -@end - -@interface OCMIsNotEqualConstraint : OCMConstraint -{ - @public - id testValue; -} - -@end - -@interface OCMInvocationConstraint : OCMConstraint -{ - @public - NSInvocation *invocation; -} - -@end - -#if NS_BLOCKS_AVAILABLE - -@interface OCMBlockConstraint : OCMConstraint -{ - BOOL (^block)(id); -} - -- (id)initWithConstraintBlock:(BOOL (^)(id))block; - -@end - -#endif - - -#define CONSTRAINT(aSelector) [OCMConstraint constraintWithSelector:aSelector onObject:self] -#define CONSTRAINTV(aSelector, aValue) [OCMConstraint constraintWithSelector:aSelector onObject:self withValue:(aValue)] diff --git a/AWSMobileAnalyticsTests/usr/include/OCMock/OCMock.h b/AWSMobileAnalyticsTests/usr/include/OCMock/OCMock.h deleted file mode 100644 index 1b2d1a41e3f..00000000000 --- a/AWSMobileAnalyticsTests/usr/include/OCMock/OCMock.h +++ /dev/null @@ -1,10 +0,0 @@ -//--------------------------------------------------------------------------------------- -// $Id$ -// Copyright (c) 2004-2008 by Mulle Kybernetik. See License file for details. -//--------------------------------------------------------------------------------------- - -#import "OCMockObject.h" -#import "OCMockRecorder.h" -#import "OCMConstraint.h" -#import "OCMArg.h" -#import "NSNotificationCenter+OCMAdditions.h" diff --git a/AWSMobileAnalyticsTests/usr/include/OCMock/OCMockObject.h b/AWSMobileAnalyticsTests/usr/include/OCMock/OCMockObject.h deleted file mode 100644 index e796705941f..00000000000 --- a/AWSMobileAnalyticsTests/usr/include/OCMock/OCMockObject.h +++ /dev/null @@ -1,46 +0,0 @@ -//--------------------------------------------------------------------------------------- -// $Id$ -// Copyright (c) 2004-2008 by Mulle Kybernetik. See License file for details. -//--------------------------------------------------------------------------------------- - -#import - -@interface OCMockObject : NSProxy -{ - BOOL isNice; - BOOL expectationOrderMatters; - NSMutableArray *recorders; - NSMutableArray *expectations; - NSMutableArray *rejections; - NSMutableArray *exceptions; -} - -+ (id)mockForClass:(Class)aClass; -+ (id)mockForProtocol:(Protocol *)aProtocol; -+ (id)partialMockForObject:(NSObject *)anObject; - -+ (id)niceMockForClass:(Class)aClass; -+ (id)niceMockForProtocol:(Protocol *)aProtocol; - -+ (id)observerMock; - -- (id)init; - -- (void)setExpectationOrderMatters:(BOOL)flag; - -- (id)stub; -- (id)expect; -- (id)reject; - -- (void)verify; - -- (void)stopMocking; - -// internal use only - -- (id)getNewRecorder; -- (BOOL)handleInvocation:(NSInvocation *)anInvocation; -- (void)handleUnRecordedInvocation:(NSInvocation *)anInvocation; -- (BOOL)handleSelector:(SEL)sel; - -@end diff --git a/AWSMobileAnalyticsTests/usr/include/OCMock/OCMockRecorder.h b/AWSMobileAnalyticsTests/usr/include/OCMock/OCMockRecorder.h deleted file mode 100644 index 0dcd3f2c34c..00000000000 --- a/AWSMobileAnalyticsTests/usr/include/OCMock/OCMockRecorder.h +++ /dev/null @@ -1,38 +0,0 @@ -//--------------------------------------------------------------------------------------- -// $Id$ -// Copyright (c) 2004-2013 by Mulle Kybernetik. See License file for details. -//--------------------------------------------------------------------------------------- - -#import - -@interface OCMockRecorder : NSProxy -{ - id signatureResolver; - BOOL recordedAsClassMethod; - BOOL ignoreNonObjectArgs; - NSInvocation *recordedInvocation; - NSMutableArray *invocationHandlers; -} - -- (id)initWithSignatureResolver:(id)anObject; - -- (BOOL)matchesSelector:(SEL)sel; -- (BOOL)matchesInvocation:(NSInvocation *)anInvocation; -- (void)releaseInvocation; - -- (id)andReturn:(id)anObject; -- (id)andReturnValue:(NSValue *)aValue; -- (id)andThrow:(NSException *)anException; -- (id)andPost:(NSNotification *)aNotification; -- (id)andCall:(SEL)selector onObject:(id)anObject; -#if NS_BLOCKS_AVAILABLE -- (id)andDo:(void (^)(NSInvocation *))block; -#endif -- (id)andForwardToRealObject; - -- (id)classMethod; -- (id)ignoringNonObjectArgs; - -- (NSArray *)invocationHandlers; - -@end diff --git a/AWSMobileAnalyticsTests/usr/lib/libOCMock.a b/AWSMobileAnalyticsTests/usr/lib/libOCMock.a deleted file mode 100644 index a8ecb3aabe0..00000000000 Binary files a/AWSMobileAnalyticsTests/usr/lib/libOCMock.a and /dev/null differ diff --git a/AWSS3.podspec b/AWSS3.podspec index d53d8c7ef11..4dcff001634 100644 --- a/AWSS3.podspec +++ b/AWSS3.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = 'AWSS3' - s.version = '2.2.0' + s.version = '2.2.1' s.summary = 'Amazon Web Services SDK for iOS.' s.description = 'The AWS SDK for iOS provides a library, code samples, and documentation for developers to build connected mobile applications using AWS.' @@ -13,7 +13,7 @@ Pod::Spec.new do |s| s.source = { :git => 'https://github.com/aws/aws-sdk-ios.git', :tag => s.version} s.requires_arc = true - s.dependency 'AWSCore', '2.2.0' + s.dependency 'AWSCore', '2.2.1' s.source_files = 'AWSS3/*.{h,m}' end diff --git a/AWSS3.xcodeproj/project.pbxproj b/AWSS3.xcodeproj/project.pbxproj index e17af4ad01c..95798068992 100644 --- a/AWSS3.xcodeproj/project.pbxproj +++ b/AWSS3.xcodeproj/project.pbxproj @@ -10,7 +10,6 @@ BD00003A1AB8C526004496EF /* credentials.json in Resources */ = {isa = PBXBuildFile; fileRef = BD0000391AB8C526004496EF /* credentials.json */; }; BD0000581AB8E18E004496EF /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0000571AB8E18E004496EF /* AWSTestUtility.m */; }; BD00FF411AB8B6D2004496EF /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BD00FF401AB8B6D2004496EF /* libAWSCore.a */; }; - BD00FFEA1AB8C42D004496EF /* AWSGeneralS3Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFE61AB8C42D004496EF /* AWSGeneralS3Tests.m */; }; BD00FFEB1AB8C42D004496EF /* AWSS3PreSignedURLBuilderTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFE71AB8C42D004496EF /* AWSS3PreSignedURLBuilderTests.m */; }; BD00FFEC1AB8C42D004496EF /* AWSS3Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFE81AB8C42D004496EF /* AWSS3Tests.m */; }; BD00FFED1AB8C42D004496EF /* AWSS3TransferManagerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFE91AB8C42D004496EF /* AWSS3TransferManagerTests.m */; }; @@ -21,6 +20,12 @@ BDC91C491ABBA0B500F74D49 /* AWSS3TransferManager.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDF55A0A1AB377010067F4F1 /* AWSS3TransferManager.h */; }; BDC91C4A1ABBA0B500F74D49 /* AWSS3.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDF55A0C1AB377010067F4F1 /* AWSS3.h */; }; BDC91C4B1ABBA0B500F74D49 /* AWSS3Model.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDF55A0E1AB377010067F4F1 /* AWSS3Model.h */; }; + BDD876B21B4B5339009268C7 /* libOCMock.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDD876B11B4B5339009268C7 /* libOCMock.a */; }; + BDF126111B45C2C100DFBFEC /* AWSGeneralS3Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFE61AB8C42D004496EF /* AWSGeneralS3Tests.m */; }; + BDF126131B45C2C100DFBFEC /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0000571AB8E18E004496EF /* AWSTestUtility.m */; }; + BDF126171B45C2C100DFBFEC /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE5326D1B03D3CB002CED62 /* libz.dylib */; }; + BDF126181B45C2C100DFBFEC /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BD00FF401AB8B6D2004496EF /* libAWSCore.a */; }; + BDF126191B45C2C100DFBFEC /* libAWSS3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDF559EC1AB376DC0067F4F1 /* libAWSS3.a */; }; BDF559F81AB376DC0067F4F1 /* libAWSS3.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDF559EC1AB376DC0067F4F1 /* libAWSS3.a */; }; BDF55A121AB377010067F4F1 /* AWSS3PreSignedURL.h in Headers */ = {isa = PBXBuildFile; fileRef = BDF55A081AB377010067F4F1 /* AWSS3PreSignedURL.h */; settings = {ATTRIBUTES = (Public, ); }; }; BDF55A131AB377010067F4F1 /* AWSS3PreSignedURL.m in Sources */ = {isa = PBXBuildFile; fileRef = BDF55A091AB377010067F4F1 /* AWSS3PreSignedURL.m */; }; @@ -35,6 +40,13 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + BDF1260F1B45C2C100DFBFEC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BDF559E41AB376DC0067F4F1 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BDF559EB1AB376DC0067F4F1; + remoteInfo = S3; + }; BDF559F91AB376DC0067F4F1 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BDF559E41AB376DC0067F4F1 /* Project object */; @@ -62,8 +74,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 28721197CE495F3AD391E73E /* Pods-AWSS3.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSS3.debug.xcconfig"; path = "Pods/Target Support Files/Pods-AWSS3/Pods-AWSS3.debug.xcconfig"; sourceTree = ""; }; - 54CC6BB27F49823B5667DBD3 /* Pods-AWSS3.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSS3.release.xcconfig"; path = "Pods/Target Support Files/Pods-AWSS3/Pods-AWSS3.release.xcconfig"; sourceTree = ""; }; BD0000391AB8C526004496EF /* credentials.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = credentials.json; path = AWSCoreTests/credentials.json; sourceTree = SOURCE_ROOT; }; BD0000561AB8E18E004496EF /* AWSTestUtility.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AWSTestUtility.h; path = AWSCoreTests/AWSTestUtility.h; sourceTree = SOURCE_ROOT; }; BD0000571AB8E18E004496EF /* AWSTestUtility.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AWSTestUtility.m; path = AWSCoreTests/AWSTestUtility.m; sourceTree = SOURCE_ROOT; }; @@ -74,6 +84,8 @@ BD00FFE91AB8C42D004496EF /* AWSS3TransferManagerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSS3TransferManagerTests.m; sourceTree = ""; }; BDB73D851B1D3F4900717559 /* AWSS3Resources.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AWSS3Resources.h; sourceTree = ""; }; BDB73D861B1D3F4900717559 /* AWSS3Resources.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSS3Resources.m; sourceTree = ""; }; + BDD876B11B4B5339009268C7 /* libOCMock.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libOCMock.a; path = AWSCoreTests/OCMock/libOCMock.a; sourceTree = ""; }; + BDF1261F1B45C2C100DFBFEC /* AWSS3UnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AWSS3UnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; BDF559EC1AB376DC0067F4F1 /* libAWSS3.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libAWSS3.a; sourceTree = BUILT_PRODUCTS_DIR; }; BDF559F71AB376DC0067F4F1 /* AWSS3Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AWSS3Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; BDF559FD1AB376DC0067F4F1 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -85,12 +97,22 @@ BDF55A0D1AB377010067F4F1 /* AWSS3Service.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSS3Service.m; sourceTree = ""; }; BDF55A0E1AB377010067F4F1 /* AWSS3Model.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AWSS3Model.h; sourceTree = ""; }; BDF55A0F1AB377010067F4F1 /* AWSS3Model.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSS3Model.m; sourceTree = ""; }; - CBE59F7C5A92F7A54CF4B4BB /* libPods-AWSS3.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AWSS3.a"; sourceTree = BUILT_PRODUCTS_DIR; }; CEE5326D1B03D3CB002CED62 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; CEE7DE721AC1E1DA0095C4B7 /* AWSS3Service.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AWSS3Service.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + BDF126161B45C2C100DFBFEC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BDD876B21B4B5339009268C7 /* libOCMock.a in Frameworks */, + BDF126171B45C2C100DFBFEC /* libz.dylib in Frameworks */, + BDF126181B45C2C100DFBFEC /* libAWSCore.a in Frameworks */, + BDF126191B45C2C100DFBFEC /* libAWSS3.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; BDF559E91AB376DC0067F4F1 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -111,21 +133,12 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 28E12D2EBBCFB024BDA6D5BE /* Pods */ = { - isa = PBXGroup; - children = ( - 28721197CE495F3AD391E73E /* Pods-AWSS3.debug.xcconfig */, - 54CC6BB27F49823B5667DBD3 /* Pods-AWSS3.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; 7D7D82B43AAE1FAA16A74BC2 /* Frameworks */ = { isa = PBXGroup; children = ( + BDD876B11B4B5339009268C7 /* libOCMock.a */, CEE5326D1B03D3CB002CED62 /* libz.dylib */, BD00FF401AB8B6D2004496EF /* libAWSCore.a */, - CBE59F7C5A92F7A54CF4B4BB /* libPods-AWSS3.a */, ); name = Frameworks; sourceTree = ""; @@ -136,7 +149,6 @@ BDF559EE1AB376DC0067F4F1 /* AWSS3 */, BDF559FB1AB376DC0067F4F1 /* AWSS3Tests */, BDF559ED1AB376DC0067F4F1 /* Products */, - 28E12D2EBBCFB024BDA6D5BE /* Pods */, 7D7D82B43AAE1FAA16A74BC2 /* Frameworks */, ); sourceTree = ""; @@ -146,6 +158,7 @@ children = ( BDF559EC1AB376DC0067F4F1 /* libAWSS3.a */, BDF559F71AB376DC0067F4F1 /* AWSS3Tests.xctest */, + BDF1261F1B45C2C100DFBFEC /* AWSS3UnitTests.xctest */, ); name = Products; sourceTree = ""; @@ -210,6 +223,24 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ + BDF1260D1B45C2C100DFBFEC /* AWSS3UnitTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = BDF1261C1B45C2C100DFBFEC /* Build configuration list for PBXNativeTarget "AWSS3UnitTests" */; + buildPhases = ( + BDF126101B45C2C100DFBFEC /* Sources */, + BDF126161B45C2C100DFBFEC /* Frameworks */, + BDF1261A1B45C2C100DFBFEC /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + BDF1260E1B45C2C100DFBFEC /* PBXTargetDependency */, + ); + name = AWSS3UnitTests; + productName = S3Tests; + productReference = BDF1261F1B45C2C100DFBFEC /* AWSS3UnitTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; BDF559EB1AB376DC0067F4F1 /* AWSS3 */ = { isa = PBXNativeTarget; buildConfigurationList = BDF55A001AB376DC0067F4F1 /* Build configuration list for PBXNativeTarget "AWSS3" */; @@ -277,11 +308,19 @@ targets = ( BDF559EB1AB376DC0067F4F1 /* AWSS3 */, BDF559F61AB376DC0067F4F1 /* AWSS3Tests */, + BDF1260D1B45C2C100DFBFEC /* AWSS3UnitTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + BDF1261A1B45C2C100DFBFEC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; BDF559F51AB376DC0067F4F1 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -293,6 +332,15 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + BDF126101B45C2C100DFBFEC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BDF126111B45C2C100DFBFEC /* AWSGeneralS3Tests.m in Sources */, + BDF126131B45C2C100DFBFEC /* AWSTestUtility.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; BDF559E81AB376DC0067F4F1 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -309,7 +357,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BD00FFEA1AB8C42D004496EF /* AWSGeneralS3Tests.m in Sources */, BD00FFEB1AB8C42D004496EF /* AWSS3PreSignedURLBuilderTests.m in Sources */, BD0000581AB8E18E004496EF /* AWSTestUtility.m in Sources */, BD00FFED1AB8C42D004496EF /* AWSS3TransferManagerTests.m in Sources */, @@ -320,6 +367,11 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + BDF1260E1B45C2C100DFBFEC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BDF559EB1AB376DC0067F4F1 /* AWSS3 */; + targetProxy = BDF1260F1B45C2C100DFBFEC /* PBXContainerItemProxy */; + }; BDF559FA1AB376DC0067F4F1 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = BDF559EB1AB376DC0067F4F1 /* AWSS3 */; @@ -328,10 +380,72 @@ /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ + BDF1261D1B45C2C100DFBFEC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = AWSS3Tests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSS3UnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Debug; + }; + BDF1261E1B45C2C100DFBFEC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + INFOPLIST_FILE = AWSS3Tests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSS3UnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Release; + }; BDF559FE1AB376DC0067F4F1 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -373,6 +487,10 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -445,6 +563,7 @@ ); INFOPLIST_FILE = AWSS3Tests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = AWSS3Tests; }; name = Debug; @@ -460,6 +579,7 @@ GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; INFOPLIST_FILE = AWSS3Tests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = AWSS3Tests; }; name = Release; @@ -467,6 +587,15 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + BDF1261C1B45C2C100DFBFEC /* Build configuration list for PBXNativeTarget "AWSS3UnitTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BDF1261D1B45C2C100DFBFEC /* Debug */, + BDF1261E1B45C2C100DFBFEC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; BDF559E71AB376DC0067F4F1 /* Build configuration list for PBXProject "AWSS3" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/AWSS3.xcodeproj/xcshareddata/xcschemes/AWSS3.xcscheme b/AWSS3.xcodeproj/xcshareddata/xcschemes/AWSS3.xcscheme new file mode 100644 index 00000000000..f144a486b7d --- /dev/null +++ b/AWSS3.xcodeproj/xcshareddata/xcschemes/AWSS3.xcscheme @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AWSS3/AWSS3Service.m b/AWSS3/AWSS3Service.m index a3d9d90e826..5a2c1fc7434 100644 --- a/AWSS3/AWSS3Service.m +++ b/AWSS3/AWSS3Service.m @@ -221,9 +221,6 @@ - (instancetype)initWithConfiguration:(AWSServiceConfiguration *)configuration { _configuration.baseURL = _configuration.endpoint.URL; _configuration.requestInterceptors = @[[AWSNetworkingRequestInterceptor new], signer]; _configuration.retryHandler = [[AWSS3RequestRetryHandler alloc] initWithMaximumRetryCount:_configuration.maxRetryCount]; - _configuration.headers = @{ - @"Host" : _configuration.endpoint.hostName, - }; _networking = [[AWSNetworking alloc] initWithConfiguration:_configuration]; diff --git a/AWSS3Tests/AWSGeneralS3Tests.m b/AWSS3Tests/AWSGeneralS3Tests.m index e364dc16c70..c841d2133c0 100644 --- a/AWSS3Tests/AWSGeneralS3Tests.m +++ b/AWSS3Tests/AWSGeneralS3Tests.m @@ -15,9 +15,12 @@ #import #import +#import #import "AWSTestUtility.h" #import "AWSS3.h" +static id mockNetworking = nil; + @interface AWSGeneralS3Tests : XCTestCase @end @@ -26,7 +29,11 @@ @implementation AWSGeneralS3Tests - (void)setUp { [super setUp]; - [AWSTestUtility setupCognitoCredentialsProvider]; + [AWSTestUtility setupFakeCognitoCredentialsProvider]; + + mockNetworking = OCMClassMock([AWSNetworking class]); + AWSTask *errorTask = [AWSTask taskWithError:[NSError errorWithDomain:@"OCMockExpectedNetworkingError" code:8848 userInfo:nil]]; + OCMStub([mockNetworking sendRequest:[OCMArg isKindOfClass:[AWSNetworkingRequest class]]]).andReturn(errorTask); } - (void)tearDown { @@ -55,13 +62,20 @@ - (void)testAbortMultipartUpload { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] abortMultipartUpload:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -70,13 +84,20 @@ - (void)testCompleteMultipartUpload { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] completeMultipartUpload:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -85,13 +106,20 @@ - (void)testCreateBucket { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] createBucket:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -100,13 +128,20 @@ - (void)testCreateMultipartUpload { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] createMultipartUpload:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -115,13 +150,20 @@ - (void)testDeleteBucket { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] deleteBucket:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -130,13 +172,20 @@ - (void)testDeleteBucketCors { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] deleteBucketCors:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -145,13 +194,20 @@ - (void)testDeleteBucketLifecycle { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] deleteBucketLifecycle:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -160,13 +216,20 @@ - (void)testDeleteBucketPolicy { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] deleteBucketPolicy:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -175,13 +238,20 @@ - (void)testDeleteBucketTagging { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] deleteBucketTagging:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -190,13 +260,20 @@ - (void)testDeleteBucketWebsite { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] deleteBucketWebsite:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -205,13 +282,20 @@ - (void)testDeleteObject { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] deleteObject:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -220,13 +304,20 @@ - (void)testDeleteObjects { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] deleteObjects:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -235,13 +326,20 @@ - (void)testGetBucketAcl { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] getBucketAcl:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -250,13 +348,20 @@ - (void)testGetBucketCors { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] getBucketCors:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -265,13 +370,20 @@ - (void)testGetBucketLifecycle { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] getBucketLifecycle:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -280,13 +392,20 @@ - (void)testGetBucketLocation { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] getBucketLocation:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -295,13 +414,20 @@ - (void)testGetBucketLogging { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] getBucketLogging:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -310,13 +436,20 @@ - (void)testGetBucketNotification { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] getBucketNotification:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -325,13 +458,20 @@ - (void)testGetBucketPolicy { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] getBucketPolicy:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -340,13 +480,20 @@ - (void)testGetBucketRequestPayment { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] getBucketRequestPayment:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -355,13 +502,20 @@ - (void)testGetBucketTagging { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] getBucketTagging:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -370,13 +524,20 @@ - (void)testGetBucketVersioning { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] getBucketVersioning:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -385,13 +546,20 @@ - (void)testGetBucketWebsite { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] getBucketWebsite:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -400,13 +568,20 @@ - (void)testGetObject { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] getObject:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -415,13 +590,20 @@ - (void)testGetObjectAcl { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] getObjectAcl:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -430,13 +612,20 @@ - (void)testGetObjectTorrent { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] getObjectTorrent:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -445,13 +634,20 @@ - (void)testHeadBucket { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] headBucket:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -460,13 +656,20 @@ - (void)testHeadObject { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] headObject:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -475,13 +678,20 @@ - (void)testListBuckets { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] listBuckets:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -490,13 +700,20 @@ - (void)testListMultipartUploads { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] listMultipartUploads:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -505,13 +722,20 @@ - (void)testListObjectVersions { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] listObjectVersions:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -520,13 +744,20 @@ - (void)testListObjects { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] listObjects:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -535,13 +766,20 @@ - (void)testListParts { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] listParts:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -550,13 +788,20 @@ - (void)testPutBucketAcl { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] putBucketAcl:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -565,13 +810,20 @@ - (void)testPutBucketCors { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] putBucketCors:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -580,13 +832,20 @@ - (void)testPutBucketLifecycle { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] putBucketLifecycle:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -595,13 +854,20 @@ - (void)testPutBucketLogging { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] putBucketLogging:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -610,13 +876,20 @@ - (void)testPutBucketNotification { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] putBucketNotification:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -625,13 +898,20 @@ - (void)testPutBucketPolicy { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] putBucketPolicy:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -640,13 +920,20 @@ - (void)testPutBucketRequestPayment { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] putBucketRequestPayment:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -655,13 +942,20 @@ - (void)testPutBucketTagging { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] putBucketTagging:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -670,13 +964,20 @@ - (void)testPutBucketVersioning { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] putBucketVersioning:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -685,13 +986,20 @@ - (void)testPutBucketWebsite { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] putBucketWebsite:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -700,13 +1008,20 @@ - (void)testPutObject { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] putObject:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -715,13 +1030,20 @@ - (void)testPutObjectAcl { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] putObjectAcl:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -730,13 +1052,20 @@ - (void)testReplicateObject { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] replicateObject:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -745,13 +1074,20 @@ - (void)testRestoreObject { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] restoreObject:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -760,13 +1096,20 @@ - (void)testUploadPart { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] uploadPart:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } @@ -775,13 +1118,20 @@ - (void)testUploadPartCopy { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSS3 registerS3WithConfiguration:configuration forKey:key]; + AWSS3 *awsClient = [AWSS3 S3ForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSS3 S3ForKey:key] uploadPartCopy:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSS3 removeS3ForKey:key]; } diff --git a/AWSS3Tests/AWSS3Tests.m b/AWSS3Tests/AWSS3Tests.m index d33414d0e43..80ec3a97685 100644 --- a/AWSS3Tests/AWSS3Tests.m +++ b/AWSS3Tests/AWSS3Tests.m @@ -541,6 +541,26 @@ - (void)testPutGetAndDeleteObjectByFilePathWithProgressFeedback { }] waitUntilFinished]; } +/* TODO: this test gets stuck. Researching. +- (void)testPutBucketVersioning { + AWSS3 *s3 = [AWSS3 defaultS3]; + XCTAssertNotNil(s3); + + AWSS3VersioningConfiguration *conf = [AWSS3VersioningConfiguration new]; + conf.status = AWSS3BucketVersioningStatusEnabled; + + AWSS3PutBucketVersioningRequest *versionRequest = [AWSS3PutBucketVersioningRequest new]; + versionRequest.bucket = testBucketNameGeneral; + versionRequest.versioningConfiguration = conf; + NSLog(@"Config %@",versionRequest); + + [[[s3 putBucketVersioning:versionRequest] continueWithBlock:^id(AWSTask *task) { + XCTAssertNil(task.error); + return nil; + }] waitUntilFinished]; +} +*/ + - (void)testPutBucketTagging { AWSS3 *s3 = [AWSS3 defaultS3]; XCTAssertNotNil(s3); diff --git a/AWSSES.podspec b/AWSSES.podspec index 34326d8dda2..d50d4203cfe 100644 --- a/AWSSES.podspec +++ b/AWSSES.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = 'AWSSES' - s.version = '2.2.0' + s.version = '2.2.1' s.summary = 'Amazon Web Services SDK for iOS.' s.description = 'The AWS SDK for iOS provides a library, code samples, and documentation for developers to build connected mobile applications using AWS.' @@ -13,7 +13,7 @@ Pod::Spec.new do |s| s.source = { :git => 'https://github.com/aws/aws-sdk-ios.git', :tag => s.version} s.requires_arc = true - s.dependency 'AWSCore', '2.2.0' + s.dependency 'AWSCore', '2.2.1' s.source_files = 'AWSSES/*.{h,m}' end diff --git a/AWSSES.xcodeproj/project.pbxproj b/AWSSES.xcodeproj/project.pbxproj index e968fbf6649..b145b8f3ac2 100644 --- a/AWSSES.xcodeproj/project.pbxproj +++ b/AWSSES.xcodeproj/project.pbxproj @@ -10,7 +10,6 @@ BD0000381AB8C516004496EF /* credentials.json in Resources */ = {isa = PBXBuildFile; fileRef = BD0000371AB8C516004496EF /* credentials.json */; }; BD0000551AB8E17E004496EF /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0000541AB8E17E004496EF /* AWSTestUtility.m */; }; BD00FF3F1AB8B6CB004496EF /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BD00FF3E1AB8B6CB004496EF /* libAWSCore.a */; }; - BD00FFE41AB8C421004496EF /* AWSGeneralSESTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFE21AB8C421004496EF /* AWSGeneralSESTests.m */; }; BD00FFE51AB8C421004496EF /* AWSSESTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFE31AB8C421004496EF /* AWSSESTests.m */; }; BD9D97641AC1EECF00CEEE08 /* AWSSESService.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = CEE7DE741AC1E2030095C4B7 /* AWSSESService.h */; }; BDB5DE6D1AB37745002DD224 /* libAWSSES.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDB5DE611AB37745002DD224 /* libAWSSES.a */; }; @@ -22,6 +21,12 @@ BDB73D8C1B1D3F5E00717559 /* AWSSESResources.m in Sources */ = {isa = PBXBuildFile; fileRef = BDB73D8A1B1D3F5E00717559 /* AWSSESResources.m */; }; BDC91C451ABBA09E00F74D49 /* AWSSES.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDB5DE7D1AB37772002DD224 /* AWSSES.h */; }; BDC91C461ABBA09E00F74D49 /* AWSSESModel.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDB5DE7F1AB37772002DD224 /* AWSSESModel.h */; }; + BDD876B41B4B5348009268C7 /* libOCMock.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDD876B31B4B5348009268C7 /* libOCMock.a */; }; + BDF126251B45C2E400DFBFEC /* AWSGeneralSESTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFE21AB8C421004496EF /* AWSGeneralSESTests.m */; }; + BDF126261B45C2E400DFBFEC /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0000541AB8E17E004496EF /* AWSTestUtility.m */; }; + BDF126291B45C2E400DFBFEC /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE532611B03D3A1002CED62 /* libz.dylib */; }; + BDF1262A1B45C2E400DFBFEC /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BD00FF3E1AB8B6CB004496EF /* libAWSCore.a */; }; + BDF1262B1B45C2E400DFBFEC /* libAWSSES.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDB5DE611AB37745002DD224 /* libAWSSES.a */; }; CEE532621B03D3A1002CED62 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE532611B03D3A1002CED62 /* libz.dylib */; }; CEE7DE751AC1E2030095C4B7 /* AWSSESService.h in Headers */ = {isa = PBXBuildFile; fileRef = CEE7DE741AC1E2030095C4B7 /* AWSSESService.h */; settings = {ATTRIBUTES = (Public, ); }; }; /* End PBXBuildFile section */ @@ -34,6 +39,13 @@ remoteGlobalIDString = BDB5DE601AB37745002DD224; remoteInfo = SES; }; + BDF126231B45C2E400DFBFEC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BDB5DE591AB37745002DD224 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BDB5DE601AB37745002DD224; + remoteInfo = SES; + }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -52,8 +64,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 06CF55A5092BD16BD7172AC1 /* Pods-AWSSES.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSSES.debug.xcconfig"; path = "Pods/Target Support Files/Pods-AWSSES/Pods-AWSSES.debug.xcconfig"; sourceTree = ""; }; - 4530B9E98E0F66C59B302EB8 /* libPods-AWSSES.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AWSSES.a"; sourceTree = BUILT_PRODUCTS_DIR; }; BD0000371AB8C516004496EF /* credentials.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = credentials.json; path = AWSCoreTests/credentials.json; sourceTree = SOURCE_ROOT; }; BD0000531AB8E17E004496EF /* AWSTestUtility.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AWSTestUtility.h; path = AWSCoreTests/AWSTestUtility.h; sourceTree = SOURCE_ROOT; }; BD0000541AB8E17E004496EF /* AWSTestUtility.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AWSTestUtility.m; path = AWSCoreTests/AWSTestUtility.m; sourceTree = SOURCE_ROOT; }; @@ -69,9 +79,10 @@ BDB5DE801AB37772002DD224 /* AWSSESModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSSESModel.m; sourceTree = ""; }; BDB73D891B1D3F5E00717559 /* AWSSESResources.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AWSSESResources.h; sourceTree = ""; }; BDB73D8A1B1D3F5E00717559 /* AWSSESResources.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSSESResources.m; sourceTree = ""; }; + BDD876B31B4B5348009268C7 /* libOCMock.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libOCMock.a; path = AWSCoreTests/OCMock/libOCMock.a; sourceTree = ""; }; + BDF126311B45C2E400DFBFEC /* AWSSESUnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AWSSESUnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; CEE532611B03D3A1002CED62 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; CEE7DE741AC1E2030095C4B7 /* AWSSESService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AWSSESService.h; sourceTree = ""; }; - D24B87675A7E5A3174579807 /* Pods-AWSSES.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSSES.release.xcconfig"; path = "Pods/Target Support Files/Pods-AWSSES/Pods-AWSSES.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -92,35 +103,36 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + BDF126281B45C2E400DFBFEC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BDD876B41B4B5348009268C7 /* libOCMock.a in Frameworks */, + BDF126291B45C2E400DFBFEC /* libz.dylib in Frameworks */, + BDF1262A1B45C2E400DFBFEC /* libAWSCore.a in Frameworks */, + BDF1262B1B45C2E400DFBFEC /* libAWSSES.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ 3389B24E19BA4F4B5860898B /* Frameworks */ = { isa = PBXGroup; children = ( + BDD876B31B4B5348009268C7 /* libOCMock.a */, CEE532611B03D3A1002CED62 /* libz.dylib */, BD00FF3E1AB8B6CB004496EF /* libAWSCore.a */, - 4530B9E98E0F66C59B302EB8 /* libPods-AWSSES.a */, ); name = Frameworks; sourceTree = ""; }; - 5C080D10B9CEEDF1A8E1DF2A /* Pods */ = { - isa = PBXGroup; - children = ( - 06CF55A5092BD16BD7172AC1 /* Pods-AWSSES.debug.xcconfig */, - D24B87675A7E5A3174579807 /* Pods-AWSSES.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; BDB5DE581AB37745002DD224 = { isa = PBXGroup; children = ( BDB5DE631AB37745002DD224 /* AWSSES */, BDB5DE701AB37745002DD224 /* AWSSESTests */, BDB5DE621AB37745002DD224 /* Products */, - 5C080D10B9CEEDF1A8E1DF2A /* Pods */, 3389B24E19BA4F4B5860898B /* Frameworks */, ); sourceTree = ""; @@ -130,6 +142,7 @@ children = ( BDB5DE611AB37745002DD224 /* libAWSSES.a */, BDB5DE6C1AB37745002DD224 /* AWSSESTests.xctest */, + BDF126311B45C2E400DFBFEC /* AWSSESUnitTests.xctest */, ); name = Products; sourceTree = ""; @@ -223,6 +236,24 @@ productReference = BDB5DE6C1AB37745002DD224 /* AWSSESTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; + BDF126211B45C2E400DFBFEC /* AWSSESUnitTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = BDF1262E1B45C2E400DFBFEC /* Build configuration list for PBXNativeTarget "AWSSESUnitTests" */; + buildPhases = ( + BDF126241B45C2E400DFBFEC /* Sources */, + BDF126281B45C2E400DFBFEC /* Frameworks */, + BDF1262C1B45C2E400DFBFEC /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + BDF126221B45C2E400DFBFEC /* PBXTargetDependency */, + ); + name = AWSSESUnitTests; + productName = SESTests; + productReference = BDF126311B45C2E400DFBFEC /* AWSSESUnitTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -254,6 +285,7 @@ targets = ( BDB5DE601AB37745002DD224 /* AWSSES */, BDB5DE6B1AB37745002DD224 /* AWSSESTests */, + BDF126211B45C2E400DFBFEC /* AWSSESUnitTests */, ); }; /* End PBXProject section */ @@ -267,6 +299,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + BDF1262C1B45C2E400DFBFEC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -284,12 +323,20 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BD00FFE41AB8C421004496EF /* AWSGeneralSESTests.m in Sources */, BD0000551AB8E17E004496EF /* AWSTestUtility.m in Sources */, BD00FFE51AB8C421004496EF /* AWSSESTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; + BDF126241B45C2E400DFBFEC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BDF126251B45C2E400DFBFEC /* AWSGeneralSESTests.m in Sources */, + BDF126261B45C2E400DFBFEC /* AWSTestUtility.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ @@ -298,6 +345,11 @@ target = BDB5DE601AB37745002DD224 /* AWSSES */; targetProxy = BDB5DE6E1AB37745002DD224 /* PBXContainerItemProxy */; }; + BDF126221B45C2E400DFBFEC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BDB5DE601AB37745002DD224 /* AWSSES */; + targetProxy = BDF126231B45C2E400DFBFEC /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ @@ -305,6 +357,10 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -346,6 +402,10 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -420,6 +480,7 @@ ); INFOPLIST_FILE = AWSSESTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = AWSSESTests; }; name = Debug; @@ -435,10 +496,69 @@ GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; INFOPLIST_FILE = AWSSESTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = AWSSESTests; }; name = Release; }; + BDF1262F1B45C2E400DFBFEC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = AWSSESTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSSESUnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Debug; + }; + BDF126301B45C2E400DFBFEC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + INFOPLIST_FILE = AWSSESTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSSESUnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -469,6 +589,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + BDF1262E1B45C2E400DFBFEC /* Build configuration list for PBXNativeTarget "AWSSESUnitTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BDF1262F1B45C2E400DFBFEC /* Debug */, + BDF126301B45C2E400DFBFEC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = BDB5DE591AB37745002DD224 /* Project object */; diff --git a/AWSSES.xcodeproj/xcshareddata/xcschemes/AWSSES.xcscheme b/AWSSES.xcodeproj/xcshareddata/xcschemes/AWSSES.xcscheme new file mode 100644 index 00000000000..3ac05dd73fc --- /dev/null +++ b/AWSSES.xcodeproj/xcshareddata/xcschemes/AWSSES.xcscheme @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AWSSES/AWSSESService.m b/AWSSES/AWSSESService.m index c11ded0ea11..f2167ace8c6 100644 --- a/AWSSES/AWSSESService.m +++ b/AWSSES/AWSSESService.m @@ -214,7 +214,6 @@ - (instancetype)initWithConfiguration:(AWSServiceConfiguration *)configuration { _configuration.baseURL = _configuration.endpoint.URL; _configuration.requestInterceptors = @[[AWSNetworkingRequestInterceptor new], signer]; _configuration.retryHandler = [[AWSSESRequestRetryHandler alloc] initWithMaximumRetryCount:_configuration.maxRetryCount]; - _configuration.headers = @{@"Host" : _configuration.endpoint.hostName}; _networking = [[AWSNetworking alloc] initWithConfiguration:_configuration]; } diff --git a/AWSSESTests/AWSGeneralSESTests.m b/AWSSESTests/AWSGeneralSESTests.m index 2a413cf6691..1e223555001 100644 --- a/AWSSESTests/AWSGeneralSESTests.m +++ b/AWSSESTests/AWSGeneralSESTests.m @@ -15,9 +15,12 @@ #import #import +#import #import "AWSTestUtility.h" #import "AWSSES.h" +static id mockNetworking = nil; + @interface AWSGeneralSESTests : XCTestCase @end @@ -26,7 +29,11 @@ @implementation AWSGeneralSESTests - (void)setUp { [super setUp]; - [AWSTestUtility setupCognitoCredentialsProvider]; + [AWSTestUtility setupFakeCognitoCredentialsProvider]; + + mockNetworking = OCMClassMock([AWSNetworking class]); + AWSTask *errorTask = [AWSTask taskWithError:[NSError errorWithDomain:@"OCMockExpectedNetworkingError" code:8848 userInfo:nil]]; + OCMStub([mockNetworking sendRequest:[OCMArg isKindOfClass:[AWSNetworkingRequest class]]]).andReturn(errorTask); } - (void)tearDown { @@ -55,13 +62,20 @@ - (void)testDeleteIdentity { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSES registerSESWithConfiguration:configuration forKey:key]; + AWSSES *awsClient = [AWSSES SESForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSES SESForKey:key] deleteIdentity:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSES removeSESForKey:key]; } @@ -70,13 +84,20 @@ - (void)testDeleteVerifiedEmailAddress { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSES registerSESWithConfiguration:configuration forKey:key]; + AWSSES *awsClient = [AWSSES SESForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSES SESForKey:key] deleteVerifiedEmailAddress:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSES removeSESForKey:key]; } @@ -85,13 +106,20 @@ - (void)testGetIdentityDkimAttributes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSES registerSESWithConfiguration:configuration forKey:key]; + AWSSES *awsClient = [AWSSES SESForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSES SESForKey:key] getIdentityDkimAttributes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSES removeSESForKey:key]; } @@ -100,13 +128,20 @@ - (void)testGetIdentityNotificationAttributes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSES registerSESWithConfiguration:configuration forKey:key]; + AWSSES *awsClient = [AWSSES SESForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSES SESForKey:key] getIdentityNotificationAttributes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSES removeSESForKey:key]; } @@ -115,13 +150,20 @@ - (void)testGetIdentityVerificationAttributes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSES registerSESWithConfiguration:configuration forKey:key]; + AWSSES *awsClient = [AWSSES SESForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSES SESForKey:key] getIdentityVerificationAttributes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSES removeSESForKey:key]; } @@ -130,13 +172,20 @@ - (void)testGetSendQuota { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSES registerSESWithConfiguration:configuration forKey:key]; + AWSSES *awsClient = [AWSSES SESForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSES SESForKey:key] getSendQuota:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSES removeSESForKey:key]; } @@ -145,13 +194,20 @@ - (void)testGetSendStatistics { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSES registerSESWithConfiguration:configuration forKey:key]; + AWSSES *awsClient = [AWSSES SESForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSES SESForKey:key] getSendStatistics:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSES removeSESForKey:key]; } @@ -160,13 +216,20 @@ - (void)testListIdentities { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSES registerSESWithConfiguration:configuration forKey:key]; + AWSSES *awsClient = [AWSSES SESForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSES SESForKey:key] listIdentities:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSES removeSESForKey:key]; } @@ -175,13 +238,20 @@ - (void)testListVerifiedEmailAddresses { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSES registerSESWithConfiguration:configuration forKey:key]; + AWSSES *awsClient = [AWSSES SESForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSES SESForKey:key] listVerifiedEmailAddresses:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSES removeSESForKey:key]; } @@ -190,13 +260,20 @@ - (void)testSendEmail { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSES registerSESWithConfiguration:configuration forKey:key]; + AWSSES *awsClient = [AWSSES SESForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSES SESForKey:key] sendEmail:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSES removeSESForKey:key]; } @@ -205,13 +282,20 @@ - (void)testSendRawEmail { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSES registerSESWithConfiguration:configuration forKey:key]; + AWSSES *awsClient = [AWSSES SESForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSES SESForKey:key] sendRawEmail:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSES removeSESForKey:key]; } @@ -220,13 +304,20 @@ - (void)testSetIdentityDkimEnabled { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSES registerSESWithConfiguration:configuration forKey:key]; + AWSSES *awsClient = [AWSSES SESForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSES SESForKey:key] setIdentityDkimEnabled:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSES removeSESForKey:key]; } @@ -235,13 +326,20 @@ - (void)testSetIdentityFeedbackForwardingEnabled { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSES registerSESWithConfiguration:configuration forKey:key]; + AWSSES *awsClient = [AWSSES SESForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSES SESForKey:key] setIdentityFeedbackForwardingEnabled:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSES removeSESForKey:key]; } @@ -250,13 +348,20 @@ - (void)testSetIdentityNotificationTopic { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSES registerSESWithConfiguration:configuration forKey:key]; + AWSSES *awsClient = [AWSSES SESForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSES SESForKey:key] setIdentityNotificationTopic:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSES removeSESForKey:key]; } @@ -265,13 +370,20 @@ - (void)testVerifyDomainDkim { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSES registerSESWithConfiguration:configuration forKey:key]; + AWSSES *awsClient = [AWSSES SESForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSES SESForKey:key] verifyDomainDkim:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSES removeSESForKey:key]; } @@ -280,13 +392,20 @@ - (void)testVerifyDomainIdentity { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSES registerSESWithConfiguration:configuration forKey:key]; + AWSSES *awsClient = [AWSSES SESForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSES SESForKey:key] verifyDomainIdentity:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSES removeSESForKey:key]; } @@ -295,13 +414,20 @@ - (void)testVerifyEmailAddress { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSES registerSESWithConfiguration:configuration forKey:key]; + AWSSES *awsClient = [AWSSES SESForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSES SESForKey:key] verifyEmailAddress:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSES removeSESForKey:key]; } @@ -310,13 +436,20 @@ - (void)testVerifyEmailIdentity { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSES registerSESWithConfiguration:configuration forKey:key]; + AWSSES *awsClient = [AWSSES SESForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSES SESForKey:key] verifyEmailIdentity:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSES removeSESForKey:key]; } diff --git a/AWSSESTests/AWSSESTests.m b/AWSSESTests/AWSSESTests.m index 1b9538ee051..449da919d93 100644 --- a/AWSSESTests/AWSSESTests.m +++ b/AWSSESTests/AWSSESTests.m @@ -15,6 +15,7 @@ #if !AWS_TEST_BJS_INSTEAD +#import #import #import "AWSSES.h" #import "AWSTestUtility.h" diff --git a/AWSSNS.podspec b/AWSSNS.podspec index 04a3de0427b..d8582485692 100644 --- a/AWSSNS.podspec +++ b/AWSSNS.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = 'AWSSNS' - s.version = '2.2.0' + s.version = '2.2.1' s.summary = 'Amazon Web Services SDK for iOS.' s.description = 'The AWS SDK for iOS provides a library, code samples, and documentation for developers to build connected mobile applications using AWS.' @@ -13,7 +13,7 @@ Pod::Spec.new do |s| s.source = { :git => 'https://github.com/aws/aws-sdk-ios.git', :tag => s.version} s.requires_arc = true - s.dependency 'AWSCore', '2.2.0' + s.dependency 'AWSCore', '2.2.1' s.source_files = 'AWSSNS/*.{h,m}' end diff --git a/AWSSNS.xcodeproj/project.pbxproj b/AWSSNS.xcodeproj/project.pbxproj index 449de36268c..951b35e82a9 100644 --- a/AWSSNS.xcodeproj/project.pbxproj +++ b/AWSSNS.xcodeproj/project.pbxproj @@ -10,7 +10,6 @@ BD0000341AB8C4FD004496EF /* credentials.json in Resources */ = {isa = PBXBuildFile; fileRef = BD0000331AB8C4FD004496EF /* credentials.json */; }; BD00004F1AB8E15B004496EF /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00004E1AB8E15B004496EF /* AWSTestUtility.m */; }; BD00FF3B1AB8B6B6004496EF /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BD00FF3A1AB8B6B6004496EF /* libAWSCore.a */; }; - BD00FFDC1AB8C407004496EF /* AWSGeneralSNSTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFDA1AB8C407004496EF /* AWSGeneralSNSTests.m */; }; BD00FFDD1AB8C407004496EF /* AWSSNSTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFDB1AB8C407004496EF /* AWSSNSTests.m */; }; BD9D97661AC1EEE500CEEE08 /* AWSSNSService.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = CEE7DE761AC1E2270095C4B7 /* AWSSNSService.h */; }; BDB5DECB1AB377FA002DD224 /* libAWSSNS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDB5DEBF1AB377FA002DD224 /* libAWSSNS.a */; }; @@ -22,6 +21,12 @@ BDB73D941B1D3F8D00717559 /* AWSSNSResources.m in Sources */ = {isa = PBXBuildFile; fileRef = BDB73D921B1D3F8D00717559 /* AWSSNSResources.m */; }; BDC91C3F1ABBA08300F74D49 /* AWSSNS.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDB5DEDB1AB3781F002DD224 /* AWSSNS.h */; }; BDC91C401ABBA08300F74D49 /* AWSSNSModel.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDB5DEDD1AB3781F002DD224 /* AWSSNSModel.h */; }; + BDD876B81B4B5361009268C7 /* libOCMock.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDD876B71B4B5361009268C7 /* libOCMock.a */; }; + BDF1264A1B45C34100DFBFEC /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00004E1AB8E15B004496EF /* AWSTestUtility.m */; }; + BDF1264B1B45C34100DFBFEC /* AWSGeneralSNSTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFDA1AB8C407004496EF /* AWSGeneralSNSTests.m */; }; + BDF1264D1B45C34100DFBFEC /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE5325D1B03D38F002CED62 /* libz.dylib */; }; + BDF1264E1B45C34100DFBFEC /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BD00FF3A1AB8B6B6004496EF /* libAWSCore.a */; }; + BDF1264F1B45C34100DFBFEC /* libAWSSNS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDB5DEBF1AB377FA002DD224 /* libAWSSNS.a */; }; CEE5325E1B03D38F002CED62 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE5325D1B03D38F002CED62 /* libz.dylib */; }; CEE7DE771AC1E2270095C4B7 /* AWSSNSService.h in Headers */ = {isa = PBXBuildFile; fileRef = CEE7DE761AC1E2270095C4B7 /* AWSSNSService.h */; settings = {ATTRIBUTES = (Public, ); }; }; /* End PBXBuildFile section */ @@ -34,6 +39,13 @@ remoteGlobalIDString = BDB5DEBE1AB377FA002DD224; remoteInfo = SNS; }; + BDF126471B45C34100DFBFEC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BDB5DEB71AB377FA002DD224 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BDB5DEBE1AB377FA002DD224; + remoteInfo = SNS; + }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -52,8 +64,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 36630348B896F5C040E99D9C /* Pods-AWSSNS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSSNS.release.xcconfig"; path = "Pods/Target Support Files/Pods-AWSSNS/Pods-AWSSNS.release.xcconfig"; sourceTree = ""; }; - 5B06DD78D46B292D4F674CE2 /* Pods-AWSSNS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSSNS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-AWSSNS/Pods-AWSSNS.debug.xcconfig"; sourceTree = ""; }; BD0000331AB8C4FD004496EF /* credentials.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = credentials.json; path = AWSCoreTests/credentials.json; sourceTree = SOURCE_ROOT; }; BD00004D1AB8E15B004496EF /* AWSTestUtility.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AWSTestUtility.h; path = AWSCoreTests/AWSTestUtility.h; sourceTree = SOURCE_ROOT; }; BD00004E1AB8E15B004496EF /* AWSTestUtility.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AWSTestUtility.m; path = AWSCoreTests/AWSTestUtility.m; sourceTree = SOURCE_ROOT; }; @@ -69,9 +79,10 @@ BDB5DEDE1AB3781F002DD224 /* AWSSNSModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSSNSModel.m; sourceTree = ""; }; BDB73D911B1D3F8D00717559 /* AWSSNSResources.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AWSSNSResources.h; sourceTree = ""; }; BDB73D921B1D3F8D00717559 /* AWSSNSResources.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSSNSResources.m; sourceTree = ""; }; + BDD876B71B4B5361009268C7 /* libOCMock.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libOCMock.a; path = AWSCoreTests/OCMock/libOCMock.a; sourceTree = ""; }; + BDF126551B45C34100DFBFEC /* AWSSNSUnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AWSSNSUnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; CEE5325D1B03D38F002CED62 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; CEE7DE761AC1E2270095C4B7 /* AWSSNSService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AWSSNSService.h; sourceTree = ""; }; - FF4C8DA618813B12A2AD647E /* libPods-AWSSNS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AWSSNS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -92,35 +103,36 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + BDF1264C1B45C34100DFBFEC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BDD876B81B4B5361009268C7 /* libOCMock.a in Frameworks */, + BDF1264D1B45C34100DFBFEC /* libz.dylib in Frameworks */, + BDF1264E1B45C34100DFBFEC /* libAWSCore.a in Frameworks */, + BDF1264F1B45C34100DFBFEC /* libAWSSNS.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ 64A8D5459E21A3F4F06E6A97 /* Frameworks */ = { isa = PBXGroup; children = ( + BDD876B71B4B5361009268C7 /* libOCMock.a */, CEE5325D1B03D38F002CED62 /* libz.dylib */, BD00FF3A1AB8B6B6004496EF /* libAWSCore.a */, - FF4C8DA618813B12A2AD647E /* libPods-AWSSNS.a */, ); name = Frameworks; sourceTree = ""; }; - A6F36E20562C00E7C13A0FCC /* Pods */ = { - isa = PBXGroup; - children = ( - 5B06DD78D46B292D4F674CE2 /* Pods-AWSSNS.debug.xcconfig */, - 36630348B896F5C040E99D9C /* Pods-AWSSNS.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; BDB5DEB61AB377FA002DD224 = { isa = PBXGroup; children = ( BDB5DEC11AB377FA002DD224 /* AWSSNS */, BDB5DECE1AB377FA002DD224 /* AWSSNSTests */, BDB5DEC01AB377FA002DD224 /* Products */, - A6F36E20562C00E7C13A0FCC /* Pods */, 64A8D5459E21A3F4F06E6A97 /* Frameworks */, ); sourceTree = ""; @@ -130,6 +142,7 @@ children = ( BDB5DEBF1AB377FA002DD224 /* libAWSSNS.a */, BDB5DECA1AB377FA002DD224 /* AWSSNSTests.xctest */, + BDF126551B45C34100DFBFEC /* AWSSNSUnitTests.xctest */, ); name = Products; sourceTree = ""; @@ -222,6 +235,24 @@ productReference = BDB5DECA1AB377FA002DD224 /* AWSSNSTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; + BDF126451B45C34100DFBFEC /* AWSSNSUnitTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = BDF126521B45C34100DFBFEC /* Build configuration list for PBXNativeTarget "AWSSNSUnitTests" */; + buildPhases = ( + BDF126481B45C34100DFBFEC /* Sources */, + BDF1264C1B45C34100DFBFEC /* Frameworks */, + BDF126501B45C34100DFBFEC /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + BDF126461B45C34100DFBFEC /* PBXTargetDependency */, + ); + name = AWSSNSUnitTests; + productName = SNSTests; + productReference = BDF126551B45C34100DFBFEC /* AWSSNSUnitTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -253,6 +284,7 @@ targets = ( BDB5DEBE1AB377FA002DD224 /* AWSSNS */, BDB5DEC91AB377FA002DD224 /* AWSSNSTests */, + BDF126451B45C34100DFBFEC /* AWSSNSUnitTests */, ); }; /* End PBXProject section */ @@ -266,6 +298,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + BDF126501B45C34100DFBFEC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -285,7 +324,15 @@ files = ( BD00FFDD1AB8C407004496EF /* AWSSNSTests.m in Sources */, BD00004F1AB8E15B004496EF /* AWSTestUtility.m in Sources */, - BD00FFDC1AB8C407004496EF /* AWSGeneralSNSTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BDF126481B45C34100DFBFEC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BDF1264A1B45C34100DFBFEC /* AWSTestUtility.m in Sources */, + BDF1264B1B45C34100DFBFEC /* AWSGeneralSNSTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -297,6 +344,11 @@ target = BDB5DEBE1AB377FA002DD224 /* AWSSNS */; targetProxy = BDB5DECC1AB377FA002DD224 /* PBXContainerItemProxy */; }; + BDF126461B45C34100DFBFEC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BDB5DEBE1AB377FA002DD224 /* AWSSNS */; + targetProxy = BDF126471B45C34100DFBFEC /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ @@ -304,6 +356,10 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -345,6 +401,10 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -419,6 +479,7 @@ ); INFOPLIST_FILE = AWSSNSTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = AWSSNSTests; }; name = Debug; @@ -434,10 +495,69 @@ GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; INFOPLIST_FILE = AWSSNSTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = AWSSNSTests; }; name = Release; }; + BDF126531B45C34100DFBFEC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = AWSSNSTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSSNSUnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Debug; + }; + BDF126541B45C34100DFBFEC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + INFOPLIST_FILE = AWSSNSTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSSNSUnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -468,6 +588,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + BDF126521B45C34100DFBFEC /* Build configuration list for PBXNativeTarget "AWSSNSUnitTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BDF126531B45C34100DFBFEC /* Debug */, + BDF126541B45C34100DFBFEC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = BDB5DEB71AB377FA002DD224 /* Project object */; diff --git a/AWSSNS.xcodeproj/xcshareddata/xcschemes/AWSSNS.xcscheme b/AWSSNS.xcodeproj/xcshareddata/xcschemes/AWSSNS.xcscheme new file mode 100644 index 00000000000..2093badc88f --- /dev/null +++ b/AWSSNS.xcodeproj/xcshareddata/xcschemes/AWSSNS.xcscheme @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AWSSNS/AWSSNSService.m b/AWSSNS/AWSSNSService.m index f514fc2b872..1373e792af9 100644 --- a/AWSSNS/AWSSNSService.m +++ b/AWSSNS/AWSSNSService.m @@ -224,7 +224,6 @@ - (instancetype)initWithConfiguration:(AWSServiceConfiguration *)configuration { _configuration.baseURL = _configuration.endpoint.URL; _configuration.requestInterceptors = @[[AWSNetworkingRequestInterceptor new], signer]; _configuration.retryHandler = [[AWSSNSRequestRetryHandler alloc] initWithMaximumRetryCount:_configuration.maxRetryCount]; - _configuration.headers = @{@"Host" : _configuration.endpoint.hostName}; _networking = [[AWSNetworking alloc] initWithConfiguration:_configuration]; } diff --git a/AWSSNSTests/AWSGeneralSNSTests.m b/AWSSNSTests/AWSGeneralSNSTests.m index a3ccd29516c..32be6b7a58e 100644 --- a/AWSSNSTests/AWSGeneralSNSTests.m +++ b/AWSSNSTests/AWSGeneralSNSTests.m @@ -15,9 +15,12 @@ #import #import +#import #import "AWSTestUtility.h" #import "AWSSNS.h" +static id mockNetworking = nil; + @interface AWSGeneralSNSTests : XCTestCase @end @@ -26,7 +29,11 @@ @implementation AWSGeneralSNSTests - (void)setUp { [super setUp]; - [AWSTestUtility setupCognitoCredentialsProvider]; + [AWSTestUtility setupFakeCognitoCredentialsProvider]; + + mockNetworking = OCMClassMock([AWSNetworking class]); + AWSTask *errorTask = [AWSTask taskWithError:[NSError errorWithDomain:@"OCMockExpectedNetworkingError" code:8848 userInfo:nil]]; + OCMStub([mockNetworking sendRequest:[OCMArg isKindOfClass:[AWSNetworkingRequest class]]]).andReturn(errorTask); } - (void)tearDown { @@ -55,13 +62,20 @@ - (void)testAddPermission { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSNS registerSNSWithConfiguration:configuration forKey:key]; + AWSSNS *awsClient = [AWSSNS SNSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSNS SNSForKey:key] addPermission:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSNS removeSNSForKey:key]; } @@ -70,13 +84,20 @@ - (void)testConfirmSubscription { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSNS registerSNSWithConfiguration:configuration forKey:key]; + AWSSNS *awsClient = [AWSSNS SNSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSNS SNSForKey:key] confirmSubscription:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSNS removeSNSForKey:key]; } @@ -85,13 +106,20 @@ - (void)testCreatePlatformApplication { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSNS registerSNSWithConfiguration:configuration forKey:key]; + AWSSNS *awsClient = [AWSSNS SNSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSNS SNSForKey:key] createPlatformApplication:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSNS removeSNSForKey:key]; } @@ -100,13 +128,20 @@ - (void)testCreatePlatformEndpoint { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSNS registerSNSWithConfiguration:configuration forKey:key]; + AWSSNS *awsClient = [AWSSNS SNSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSNS SNSForKey:key] createPlatformEndpoint:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSNS removeSNSForKey:key]; } @@ -115,13 +150,20 @@ - (void)testCreateTopic { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSNS registerSNSWithConfiguration:configuration forKey:key]; + AWSSNS *awsClient = [AWSSNS SNSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSNS SNSForKey:key] createTopic:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSNS removeSNSForKey:key]; } @@ -130,13 +172,20 @@ - (void)testDeleteEndpoint { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSNS registerSNSWithConfiguration:configuration forKey:key]; + AWSSNS *awsClient = [AWSSNS SNSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSNS SNSForKey:key] deleteEndpoint:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSNS removeSNSForKey:key]; } @@ -145,13 +194,20 @@ - (void)testDeletePlatformApplication { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSNS registerSNSWithConfiguration:configuration forKey:key]; + AWSSNS *awsClient = [AWSSNS SNSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSNS SNSForKey:key] deletePlatformApplication:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSNS removeSNSForKey:key]; } @@ -160,13 +216,20 @@ - (void)testDeleteTopic { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSNS registerSNSWithConfiguration:configuration forKey:key]; + AWSSNS *awsClient = [AWSSNS SNSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSNS SNSForKey:key] deleteTopic:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSNS removeSNSForKey:key]; } @@ -175,13 +238,20 @@ - (void)testGetEndpointAttributes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSNS registerSNSWithConfiguration:configuration forKey:key]; + AWSSNS *awsClient = [AWSSNS SNSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSNS SNSForKey:key] getEndpointAttributes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSNS removeSNSForKey:key]; } @@ -190,13 +260,20 @@ - (void)testGetPlatformApplicationAttributes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSNS registerSNSWithConfiguration:configuration forKey:key]; + AWSSNS *awsClient = [AWSSNS SNSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSNS SNSForKey:key] getPlatformApplicationAttributes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSNS removeSNSForKey:key]; } @@ -205,13 +282,20 @@ - (void)testGetSubscriptionAttributes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSNS registerSNSWithConfiguration:configuration forKey:key]; + AWSSNS *awsClient = [AWSSNS SNSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSNS SNSForKey:key] getSubscriptionAttributes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSNS removeSNSForKey:key]; } @@ -220,13 +304,20 @@ - (void)testGetTopicAttributes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSNS registerSNSWithConfiguration:configuration forKey:key]; + AWSSNS *awsClient = [AWSSNS SNSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSNS SNSForKey:key] getTopicAttributes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSNS removeSNSForKey:key]; } @@ -235,13 +326,20 @@ - (void)testListEndpointsByPlatformApplication { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSNS registerSNSWithConfiguration:configuration forKey:key]; + AWSSNS *awsClient = [AWSSNS SNSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSNS SNSForKey:key] listEndpointsByPlatformApplication:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSNS removeSNSForKey:key]; } @@ -250,13 +348,20 @@ - (void)testListPlatformApplications { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSNS registerSNSWithConfiguration:configuration forKey:key]; + AWSSNS *awsClient = [AWSSNS SNSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSNS SNSForKey:key] listPlatformApplications:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSNS removeSNSForKey:key]; } @@ -265,13 +370,20 @@ - (void)testListSubscriptions { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSNS registerSNSWithConfiguration:configuration forKey:key]; + AWSSNS *awsClient = [AWSSNS SNSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSNS SNSForKey:key] listSubscriptions:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSNS removeSNSForKey:key]; } @@ -280,13 +392,20 @@ - (void)testListSubscriptionsByTopic { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSNS registerSNSWithConfiguration:configuration forKey:key]; + AWSSNS *awsClient = [AWSSNS SNSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSNS SNSForKey:key] listSubscriptionsByTopic:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSNS removeSNSForKey:key]; } @@ -295,13 +414,20 @@ - (void)testListTopics { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSNS registerSNSWithConfiguration:configuration forKey:key]; + AWSSNS *awsClient = [AWSSNS SNSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSNS SNSForKey:key] listTopics:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSNS removeSNSForKey:key]; } @@ -310,13 +436,20 @@ - (void)testPublish { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSNS registerSNSWithConfiguration:configuration forKey:key]; + AWSSNS *awsClient = [AWSSNS SNSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSNS SNSForKey:key] publish:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSNS removeSNSForKey:key]; } @@ -325,13 +458,20 @@ - (void)testRemovePermission { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSNS registerSNSWithConfiguration:configuration forKey:key]; + AWSSNS *awsClient = [AWSSNS SNSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSNS SNSForKey:key] removePermission:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSNS removeSNSForKey:key]; } @@ -340,13 +480,20 @@ - (void)testSetEndpointAttributes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSNS registerSNSWithConfiguration:configuration forKey:key]; + AWSSNS *awsClient = [AWSSNS SNSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSNS SNSForKey:key] setEndpointAttributes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSNS removeSNSForKey:key]; } @@ -355,13 +502,20 @@ - (void)testSetPlatformApplicationAttributes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSNS registerSNSWithConfiguration:configuration forKey:key]; + AWSSNS *awsClient = [AWSSNS SNSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSNS SNSForKey:key] setPlatformApplicationAttributes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSNS removeSNSForKey:key]; } @@ -370,13 +524,20 @@ - (void)testSetSubscriptionAttributes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSNS registerSNSWithConfiguration:configuration forKey:key]; + AWSSNS *awsClient = [AWSSNS SNSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSNS SNSForKey:key] setSubscriptionAttributes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSNS removeSNSForKey:key]; } @@ -385,13 +546,20 @@ - (void)testSetTopicAttributes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSNS registerSNSWithConfiguration:configuration forKey:key]; + AWSSNS *awsClient = [AWSSNS SNSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSNS SNSForKey:key] setTopicAttributes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSNS removeSNSForKey:key]; } @@ -400,13 +568,20 @@ - (void)testSubscribe { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSNS registerSNSWithConfiguration:configuration forKey:key]; + AWSSNS *awsClient = [AWSSNS SNSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSNS SNSForKey:key] subscribe:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSNS removeSNSForKey:key]; } @@ -415,13 +590,20 @@ - (void)testUnsubscribe { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSNS registerSNSWithConfiguration:configuration forKey:key]; + AWSSNS *awsClient = [AWSSNS SNSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSNS SNSForKey:key] unsubscribe:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSNS removeSNSForKey:key]; } diff --git a/AWSSNSTests/AWSSNSTests.m b/AWSSNSTests/AWSSNSTests.m index 84576225f3d..d2525ff8794 100644 --- a/AWSSNSTests/AWSSNSTests.m +++ b/AWSSNSTests/AWSSNSTests.m @@ -13,6 +13,7 @@ permissions and limitations under the License. */ +#import #import #import "AWSSNS.h" #import "AWSTestUtility.h" diff --git a/AWSSQS.podspec b/AWSSQS.podspec index f1940af5ca8..f1f3eeb9fb8 100644 --- a/AWSSQS.podspec +++ b/AWSSQS.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = 'AWSSQS' - s.version = '2.2.0' + s.version = '2.2.1' s.summary = 'Amazon Web Services SDK for iOS.' s.description = 'The AWS SDK for iOS provides a library, code samples, and documentation for developers to build connected mobile applications using AWS.' @@ -13,7 +13,7 @@ Pod::Spec.new do |s| s.source = { :git => 'https://github.com/aws/aws-sdk-ios.git', :tag => s.version} s.requires_arc = true - s.dependency 'AWSCore', '2.2.0' + s.dependency 'AWSCore', '2.2.1' s.source_files = 'AWSSQS/*.{h,m}' end diff --git a/AWSSQS.xcodeproj/project.pbxproj b/AWSSQS.xcodeproj/project.pbxproj index ac46e8c462c..f005c29ff2c 100644 --- a/AWSSQS.xcodeproj/project.pbxproj +++ b/AWSSQS.xcodeproj/project.pbxproj @@ -10,7 +10,6 @@ BD0000321AB8C4ED004496EF /* credentials.json in Resources */ = {isa = PBXBuildFile; fileRef = BD0000311AB8C4ED004496EF /* credentials.json */; }; BD00004C1AB8E12D004496EF /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00004B1AB8E12D004496EF /* AWSTestUtility.m */; }; BD00FF391AB8B69F004496EF /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BD00FF381AB8B69F004496EF /* libAWSCore.a */; }; - BD00FFD81AB8C3FE004496EF /* AWSGeneralSQSTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFD61AB8C3FE004496EF /* AWSGeneralSQSTests.m */; }; BD00FFD91AB8C3FE004496EF /* AWSSQSTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFD71AB8C3FE004496EF /* AWSSQSTests.m */; }; BD3464871ADDB5D3000C5A95 /* AWSSQSClockSkewTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD3464861ADDB5D3000C5A95 /* AWSSQSClockSkewTests.m */; }; BD9D97671AC1EEF100CEEE08 /* AWSSQSService.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = CEE7DE781AC1E23F0095C4B7 /* AWSSQSService.h */; }; @@ -23,6 +22,12 @@ BDB73D981B1D3FF100717559 /* AWSSQSResources.m in Sources */ = {isa = PBXBuildFile; fileRef = BDB73D961B1D3FF100717559 /* AWSSQSResources.m */; }; BDC91C3C1ABBA07300F74D49 /* AWSSQS.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDB5DF091AB3786A002DD224 /* AWSSQS.h */; }; BDC91C3D1ABBA07300F74D49 /* AWSSQSModel.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDB5DF0B1AB3786A002DD224 /* AWSSQSModel.h */; }; + BDD876BA1B4B5370009268C7 /* libOCMock.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDD876B91B4B5370009268C7 /* libOCMock.a */; }; + BDF1265C1B45C36100DFBFEC /* AWSGeneralSQSTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFD61AB8C3FE004496EF /* AWSGeneralSQSTests.m */; }; + BDF1265D1B45C36100DFBFEC /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00004B1AB8E12D004496EF /* AWSTestUtility.m */; }; + BDF126601B45C36100DFBFEC /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE532691B03D3BE002CED62 /* libz.dylib */; }; + BDF126611B45C36100DFBFEC /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BD00FF381AB8B69F004496EF /* libAWSCore.a */; }; + BDF126621B45C36100DFBFEC /* libAWSSQS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDB5DEEE1AB37849002DD224 /* libAWSSQS.a */; }; CEE5326A1B03D3BE002CED62 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE532691B03D3BE002CED62 /* libz.dylib */; }; CEE7DE791AC1E23F0095C4B7 /* AWSSQSService.h in Headers */ = {isa = PBXBuildFile; fileRef = CEE7DE781AC1E23F0095C4B7 /* AWSSQSService.h */; settings = {ATTRIBUTES = (Public, ); }; }; /* End PBXBuildFile section */ @@ -35,6 +40,13 @@ remoteGlobalIDString = BDB5DEED1AB37849002DD224; remoteInfo = SQS; }; + BDF126591B45C36100DFBFEC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BDB5DEE61AB37849002DD224 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BDB5DEED1AB37849002DD224; + remoteInfo = SQS; + }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -53,8 +65,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 0CD74F455438DDE2B529A9CC /* Pods-AWSSQS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSSQS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-AWSSQS/Pods-AWSSQS.debug.xcconfig"; sourceTree = ""; }; - 90908289F45B06F1190D9910 /* libPods-AWSSQS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AWSSQS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; BD0000311AB8C4ED004496EF /* credentials.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = credentials.json; path = AWSCoreTests/credentials.json; sourceTree = SOURCE_ROOT; }; BD00004A1AB8E12D004496EF /* AWSTestUtility.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AWSTestUtility.h; path = AWSCoreTests/AWSTestUtility.h; sourceTree = SOURCE_ROOT; }; BD00004B1AB8E12D004496EF /* AWSTestUtility.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AWSTestUtility.m; path = AWSCoreTests/AWSTestUtility.m; sourceTree = SOURCE_ROOT; }; @@ -71,9 +81,10 @@ BDB5DF0C1AB3786A002DD224 /* AWSSQSModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSSQSModel.m; sourceTree = ""; }; BDB73D951B1D3FF100717559 /* AWSSQSResources.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AWSSQSResources.h; sourceTree = ""; }; BDB73D961B1D3FF100717559 /* AWSSQSResources.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSSQSResources.m; sourceTree = ""; }; + BDD876B91B4B5370009268C7 /* libOCMock.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libOCMock.a; path = AWSCoreTests/OCMock/libOCMock.a; sourceTree = ""; }; + BDF126681B45C36100DFBFEC /* AWSSQSUnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AWSSQSUnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; CEE532691B03D3BE002CED62 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; CEE7DE781AC1E23F0095C4B7 /* AWSSQSService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AWSSQSService.h; sourceTree = ""; }; - E7F5F3B82C3DB2A587FC187A /* Pods-AWSSQS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSSQS.release.xcconfig"; path = "Pods/Target Support Files/Pods-AWSSQS/Pods-AWSSQS.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -94,24 +105,26 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + BDF1265F1B45C36100DFBFEC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BDD876BA1B4B5370009268C7 /* libOCMock.a in Frameworks */, + BDF126601B45C36100DFBFEC /* libz.dylib in Frameworks */, + BDF126611B45C36100DFBFEC /* libAWSCore.a in Frameworks */, + BDF126621B45C36100DFBFEC /* libAWSSQS.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 23BCF832AD7C4A401E0C9D94 /* Pods */ = { - isa = PBXGroup; - children = ( - 0CD74F455438DDE2B529A9CC /* Pods-AWSSQS.debug.xcconfig */, - E7F5F3B82C3DB2A587FC187A /* Pods-AWSSQS.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; 9CB08B3BEE06127D4F608086 /* Frameworks */ = { isa = PBXGroup; children = ( + BDD876B91B4B5370009268C7 /* libOCMock.a */, CEE532691B03D3BE002CED62 /* libz.dylib */, BD00FF381AB8B69F004496EF /* libAWSCore.a */, - 90908289F45B06F1190D9910 /* libPods-AWSSQS.a */, ); name = Frameworks; sourceTree = ""; @@ -122,7 +135,6 @@ BDB5DEF01AB37849002DD224 /* AWSSQS */, BDB5DEFD1AB37849002DD224 /* AWSSQSTests */, BDB5DEEF1AB37849002DD224 /* Products */, - 23BCF832AD7C4A401E0C9D94 /* Pods */, 9CB08B3BEE06127D4F608086 /* Frameworks */, ); sourceTree = ""; @@ -132,6 +144,7 @@ children = ( BDB5DEEE1AB37849002DD224 /* libAWSSQS.a */, BDB5DEF91AB37849002DD224 /* AWSSQSTests.xctest */, + BDF126681B45C36100DFBFEC /* AWSSQSUnitTests.xctest */, ); name = Products; sourceTree = ""; @@ -225,6 +238,24 @@ productReference = BDB5DEF91AB37849002DD224 /* AWSSQSTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; + BDF126571B45C36100DFBFEC /* AWSSQSUnitTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = BDF126651B45C36100DFBFEC /* Build configuration list for PBXNativeTarget "AWSSQSUnitTests" */; + buildPhases = ( + BDF1265A1B45C36100DFBFEC /* Sources */, + BDF1265F1B45C36100DFBFEC /* Frameworks */, + BDF126631B45C36100DFBFEC /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + BDF126581B45C36100DFBFEC /* PBXTargetDependency */, + ); + name = AWSSQSUnitTests; + productName = SQSTests; + productReference = BDF126681B45C36100DFBFEC /* AWSSQSUnitTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -256,6 +287,7 @@ targets = ( BDB5DEED1AB37849002DD224 /* AWSSQS */, BDB5DEF81AB37849002DD224 /* AWSSQSTests */, + BDF126571B45C36100DFBFEC /* AWSSQSUnitTests */, ); }; /* End PBXProject section */ @@ -269,6 +301,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + BDF126631B45C36100DFBFEC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -287,12 +326,20 @@ buildActionMask = 2147483647; files = ( BD3464871ADDB5D3000C5A95 /* AWSSQSClockSkewTests.m in Sources */, - BD00FFD81AB8C3FE004496EF /* AWSGeneralSQSTests.m in Sources */, BD00004C1AB8E12D004496EF /* AWSTestUtility.m in Sources */, BD00FFD91AB8C3FE004496EF /* AWSSQSTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; + BDF1265A1B45C36100DFBFEC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BDF1265C1B45C36100DFBFEC /* AWSGeneralSQSTests.m in Sources */, + BDF1265D1B45C36100DFBFEC /* AWSTestUtility.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ @@ -301,6 +348,11 @@ target = BDB5DEED1AB37849002DD224 /* AWSSQS */; targetProxy = BDB5DEFB1AB37849002DD224 /* PBXContainerItemProxy */; }; + BDF126581B45C36100DFBFEC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BDB5DEED1AB37849002DD224 /* AWSSQS */; + targetProxy = BDF126591B45C36100DFBFEC /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ @@ -308,6 +360,10 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -349,6 +405,10 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -423,6 +483,7 @@ ); INFOPLIST_FILE = AWSSQSTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = AWSSQSTests; }; name = Debug; @@ -438,10 +499,69 @@ GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; INFOPLIST_FILE = AWSSQSTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = AWSSQSTests; }; name = Release; }; + BDF126661B45C36100DFBFEC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = AWSSQSTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSSQSUnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Debug; + }; + BDF126671B45C36100DFBFEC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + INFOPLIST_FILE = AWSSQSTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSSQSUnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -472,6 +592,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + BDF126651B45C36100DFBFEC /* Build configuration list for PBXNativeTarget "AWSSQSUnitTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BDF126661B45C36100DFBFEC /* Debug */, + BDF126671B45C36100DFBFEC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = BDB5DEE61AB37849002DD224 /* Project object */; diff --git a/AWSSQS.xcodeproj/xcshareddata/xcschemes/AWSSQS.xcscheme b/AWSSQS.xcodeproj/xcshareddata/xcschemes/AWSSQS.xcscheme new file mode 100644 index 00000000000..4ceb58da9c6 --- /dev/null +++ b/AWSSQS.xcodeproj/xcshareddata/xcschemes/AWSSQS.xcscheme @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AWSSQS/AWSSQSService.m b/AWSSQS/AWSSQSService.m index d0ce5ebf230..bef4508dbf2 100644 --- a/AWSSQS/AWSSQSService.m +++ b/AWSSQS/AWSSQSService.m @@ -229,7 +229,6 @@ - (instancetype)initWithConfiguration:(AWSServiceConfiguration *)configuration { _configuration.baseURL = _configuration.endpoint.URL; _configuration.requestInterceptors = @[[AWSNetworkingRequestInterceptor new], signer]; _configuration.retryHandler = [[AWSSQSRequestRetryHandler alloc] initWithMaximumRetryCount:_configuration.maxRetryCount]; - _configuration.headers = @{@"Host" : _configuration.endpoint.hostName}; _networking = [[AWSNetworking alloc] initWithConfiguration:_configuration]; } diff --git a/AWSSQSTests/AWSGeneralSQSTests.m b/AWSSQSTests/AWSGeneralSQSTests.m index a0614dc5c31..d04a1b21ecf 100644 --- a/AWSSQSTests/AWSGeneralSQSTests.m +++ b/AWSSQSTests/AWSGeneralSQSTests.m @@ -15,9 +15,12 @@ #import #import +#import #import "AWSTestUtility.h" #import "AWSSQS.h" +static id mockNetworking = nil; + @interface AWSGeneralSQSTests : XCTestCase @end @@ -26,7 +29,11 @@ @implementation AWSGeneralSQSTests - (void)setUp { [super setUp]; - [AWSTestUtility setupCognitoCredentialsProvider]; + [AWSTestUtility setupFakeCognitoCredentialsProvider]; + + mockNetworking = OCMClassMock([AWSNetworking class]); + AWSTask *errorTask = [AWSTask taskWithError:[NSError errorWithDomain:@"OCMockExpectedNetworkingError" code:8848 userInfo:nil]]; + OCMStub([mockNetworking sendRequest:[OCMArg isKindOfClass:[AWSNetworkingRequest class]]]).andReturn(errorTask); } - (void)tearDown { @@ -55,13 +62,20 @@ - (void)testAddPermission { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSQS registerSQSWithConfiguration:configuration forKey:key]; + AWSSQS *awsClient = [AWSSQS SQSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSQS SQSForKey:key] addPermission:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSQS removeSQSForKey:key]; } @@ -70,13 +84,20 @@ - (void)testChangeMessageVisibility { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSQS registerSQSWithConfiguration:configuration forKey:key]; + AWSSQS *awsClient = [AWSSQS SQSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSQS SQSForKey:key] changeMessageVisibility:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSQS removeSQSForKey:key]; } @@ -85,13 +106,20 @@ - (void)testChangeMessageVisibilityBatch { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSQS registerSQSWithConfiguration:configuration forKey:key]; + AWSSQS *awsClient = [AWSSQS SQSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSQS SQSForKey:key] changeMessageVisibilityBatch:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSQS removeSQSForKey:key]; } @@ -100,13 +128,20 @@ - (void)testCreateQueue { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSQS registerSQSWithConfiguration:configuration forKey:key]; + AWSSQS *awsClient = [AWSSQS SQSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSQS SQSForKey:key] createQueue:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSQS removeSQSForKey:key]; } @@ -115,13 +150,20 @@ - (void)testDeleteMessage { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSQS registerSQSWithConfiguration:configuration forKey:key]; + AWSSQS *awsClient = [AWSSQS SQSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSQS SQSForKey:key] deleteMessage:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSQS removeSQSForKey:key]; } @@ -130,13 +172,20 @@ - (void)testDeleteMessageBatch { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSQS registerSQSWithConfiguration:configuration forKey:key]; + AWSSQS *awsClient = [AWSSQS SQSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSQS SQSForKey:key] deleteMessageBatch:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSQS removeSQSForKey:key]; } @@ -145,13 +194,20 @@ - (void)testDeleteQueue { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSQS registerSQSWithConfiguration:configuration forKey:key]; + AWSSQS *awsClient = [AWSSQS SQSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSQS SQSForKey:key] deleteQueue:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSQS removeSQSForKey:key]; } @@ -160,13 +216,20 @@ - (void)testGetQueueAttributes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSQS registerSQSWithConfiguration:configuration forKey:key]; + AWSSQS *awsClient = [AWSSQS SQSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSQS SQSForKey:key] getQueueAttributes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSQS removeSQSForKey:key]; } @@ -175,13 +238,20 @@ - (void)testGetQueueUrl { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSQS registerSQSWithConfiguration:configuration forKey:key]; + AWSSQS *awsClient = [AWSSQS SQSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSQS SQSForKey:key] getQueueUrl:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSQS removeSQSForKey:key]; } @@ -190,13 +260,20 @@ - (void)testListDeadLetterSourceQueues { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSQS registerSQSWithConfiguration:configuration forKey:key]; + AWSSQS *awsClient = [AWSSQS SQSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSQS SQSForKey:key] listDeadLetterSourceQueues:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSQS removeSQSForKey:key]; } @@ -205,13 +282,20 @@ - (void)testListQueues { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSQS registerSQSWithConfiguration:configuration forKey:key]; + AWSSQS *awsClient = [AWSSQS SQSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSQS SQSForKey:key] listQueues:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSQS removeSQSForKey:key]; } @@ -220,13 +304,20 @@ - (void)testReceiveMessage { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSQS registerSQSWithConfiguration:configuration forKey:key]; + AWSSQS *awsClient = [AWSSQS SQSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSQS SQSForKey:key] receiveMessage:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSQS removeSQSForKey:key]; } @@ -235,13 +326,20 @@ - (void)testRemovePermission { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSQS registerSQSWithConfiguration:configuration forKey:key]; + AWSSQS *awsClient = [AWSSQS SQSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSQS SQSForKey:key] removePermission:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSQS removeSQSForKey:key]; } @@ -250,13 +348,20 @@ - (void)testSendMessage { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSQS registerSQSWithConfiguration:configuration forKey:key]; + AWSSQS *awsClient = [AWSSQS SQSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSQS SQSForKey:key] sendMessage:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSQS removeSQSForKey:key]; } @@ -265,13 +370,20 @@ - (void)testSendMessageBatch { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSQS registerSQSWithConfiguration:configuration forKey:key]; + AWSSQS *awsClient = [AWSSQS SQSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSQS SQSForKey:key] sendMessageBatch:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSQS removeSQSForKey:key]; } @@ -280,13 +392,20 @@ - (void)testSetQueueAttributes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSQS registerSQSWithConfiguration:configuration forKey:key]; + AWSSQS *awsClient = [AWSSQS SQSForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSQS SQSForKey:key] setQueueAttributes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSQS removeSQSForKey:key]; } diff --git a/AWSSimpleDB.podspec b/AWSSimpleDB.podspec index a5a10e37ee2..37f6b6bab55 100644 --- a/AWSSimpleDB.podspec +++ b/AWSSimpleDB.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = 'AWSSimpleDB' - s.version = '2.2.0' + s.version = '2.2.1' s.summary = 'Amazon Web Services SDK for iOS.' s.description = 'The AWS SDK for iOS provides a library, code samples, and documentation for developers to build connected mobile applications using AWS.' @@ -13,7 +13,7 @@ Pod::Spec.new do |s| s.source = { :git => 'https://github.com/aws/aws-sdk-ios.git', :tag => s.version} s.requires_arc = true - s.dependency 'AWSCore', '2.2.0' + s.dependency 'AWSCore', '2.2.1' s.source_files = 'AWSSimpleDB/*.{h,m}' end diff --git a/AWSSimpleDB.xcodeproj/project.pbxproj b/AWSSimpleDB.xcodeproj/project.pbxproj index 531c76b7b20..2598d0c6b64 100644 --- a/AWSSimpleDB.xcodeproj/project.pbxproj +++ b/AWSSimpleDB.xcodeproj/project.pbxproj @@ -10,7 +10,6 @@ BD0000361AB8C509004496EF /* credentials.json in Resources */ = {isa = PBXBuildFile; fileRef = BD0000351AB8C509004496EF /* credentials.json */; }; BD0000521AB8E16D004496EF /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0000511AB8E16D004496EF /* AWSTestUtility.m */; }; BD00FF3D1AB8B6C4004496EF /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BD00FF3C1AB8B6C4004496EF /* libAWSCore.a */; }; - BD00FFE01AB8C417004496EF /* AWSGeneralSimpleDBTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFDE1AB8C417004496EF /* AWSGeneralSimpleDBTests.m */; }; BD00FFE11AB8C417004496EF /* AWSSimpleDBTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFDF1AB8C417004496EF /* AWSSimpleDBTests.m */; }; BD9D97651AC1EEDB00CEEE08 /* AWSSimpleDBService.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = CEE7DE5E1AC1DEEA0095C4B7 /* AWSSimpleDBService.h */; }; BDB5DE9C1AB377AF002DD224 /* libAWSSimpleDB.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDB5DE901AB377AF002DD224 /* libAWSSimpleDB.a */; }; @@ -22,6 +21,12 @@ BDB73D901B1D3F7500717559 /* AWSSimpleDBResources.m in Sources */ = {isa = PBXBuildFile; fileRef = BDB73D8E1B1D3F7500717559 /* AWSSimpleDBResources.m */; }; BDC91C421ABBA09100F74D49 /* AWSSimpleDB.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDB5DEAC1AB377D1002DD224 /* AWSSimpleDB.h */; }; BDC91C431ABBA09100F74D49 /* AWSSimpleDBModel.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = BDB5DEAE1AB377D1002DD224 /* AWSSimpleDBModel.h */; }; + BDD876B61B4B5354009268C7 /* libOCMock.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDD876B51B4B5354009268C7 /* libOCMock.a */; }; + BDF126371B45C31C00DFBFEC /* AWSGeneralSimpleDBTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BD00FFDE1AB8C417004496EF /* AWSGeneralSimpleDBTests.m */; }; + BDF126381B45C31C00DFBFEC /* AWSTestUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = BD0000511AB8E16D004496EF /* AWSTestUtility.m */; }; + BDF1263B1B45C31C00DFBFEC /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE532671B03D3B7002CED62 /* libz.dylib */; }; + BDF1263C1B45C31C00DFBFEC /* libAWSCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BD00FF3C1AB8B6C4004496EF /* libAWSCore.a */; }; + BDF1263D1B45C31C00DFBFEC /* libAWSSimpleDB.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BDB5DE901AB377AF002DD224 /* libAWSSimpleDB.a */; }; CEE532681B03D3B7002CED62 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE532671B03D3B7002CED62 /* libz.dylib */; }; CEE7DE5F1AC1DEEA0095C4B7 /* AWSSimpleDBService.h in Headers */ = {isa = PBXBuildFile; fileRef = CEE7DE5E1AC1DEEA0095C4B7 /* AWSSimpleDBService.h */; settings = {ATTRIBUTES = (Public, ); }; }; /* End PBXBuildFile section */ @@ -34,6 +39,13 @@ remoteGlobalIDString = BDB5DE8F1AB377AF002DD224; remoteInfo = SimpleDB; }; + BDF126351B45C31C00DFBFEC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BDB5DE881AB377AF002DD224 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BDB5DE8F1AB377AF002DD224; + remoteInfo = SimpleDB; + }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -52,9 +64,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 502E5942549583CE9AAF0159 /* libPods-AWSSimpleDB.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AWSSimpleDB.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 5A6B2A9829343DEDBC2D3747 /* Pods-AWSSimpleDB.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSSimpleDB.debug.xcconfig"; path = "Pods/Target Support Files/Pods-AWSSimpleDB/Pods-AWSSimpleDB.debug.xcconfig"; sourceTree = ""; }; - A8AC682963E8485349CE6DFF /* Pods-AWSSimpleDB.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AWSSimpleDB.release.xcconfig"; path = "Pods/Target Support Files/Pods-AWSSimpleDB/Pods-AWSSimpleDB.release.xcconfig"; sourceTree = ""; }; BD0000351AB8C509004496EF /* credentials.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = credentials.json; path = AWSCoreTests/credentials.json; sourceTree = SOURCE_ROOT; }; BD0000501AB8E16D004496EF /* AWSTestUtility.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AWSTestUtility.h; path = AWSCoreTests/AWSTestUtility.h; sourceTree = SOURCE_ROOT; }; BD0000511AB8E16D004496EF /* AWSTestUtility.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AWSTestUtility.m; path = AWSCoreTests/AWSTestUtility.m; sourceTree = SOURCE_ROOT; }; @@ -70,6 +79,8 @@ BDB5DEAF1AB377D1002DD224 /* AWSSimpleDBModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSSimpleDBModel.m; sourceTree = ""; }; BDB73D8D1B1D3F7500717559 /* AWSSimpleDBResources.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AWSSimpleDBResources.h; sourceTree = ""; }; BDB73D8E1B1D3F7500717559 /* AWSSimpleDBResources.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AWSSimpleDBResources.m; sourceTree = ""; }; + BDD876B51B4B5354009268C7 /* libOCMock.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libOCMock.a; path = AWSCoreTests/OCMock/libOCMock.a; sourceTree = ""; }; + BDF126431B45C31C00DFBFEC /* AWSSimpleDBUnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AWSSimpleDBUnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; CEE532671B03D3B7002CED62 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; CEE7DE5E1AC1DEEA0095C4B7 /* AWSSimpleDBService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AWSSimpleDBService.h; sourceTree = ""; }; /* End PBXFileReference section */ @@ -92,6 +103,17 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + BDF1263A1B45C31C00DFBFEC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BDD876B61B4B5354009268C7 /* libOCMock.a in Frameworks */, + BDF1263B1B45C31C00DFBFEC /* libz.dylib in Frameworks */, + BDF1263C1B45C31C00DFBFEC /* libAWSCore.a in Frameworks */, + BDF1263D1B45C31C00DFBFEC /* libAWSSimpleDB.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -101,7 +123,6 @@ BDB5DE921AB377AF002DD224 /* AWSSimpleDB */, BDB5DE9F1AB377AF002DD224 /* AWSSimpleDBTests */, BDB5DE911AB377AF002DD224 /* Products */, - C311D4E5DA280D0A5916D74B /* Pods */, CC221F0612D8271C7295C9FB /* Frameworks */, ); sourceTree = ""; @@ -111,6 +132,7 @@ children = ( BDB5DE901AB377AF002DD224 /* libAWSSimpleDB.a */, BDB5DE9B1AB377AF002DD224 /* AWSSimpleDBTests.xctest */, + BDF126431B45C31C00DFBFEC /* AWSSimpleDBUnitTests.xctest */, ); name = Products; sourceTree = ""; @@ -150,21 +172,12 @@ name = "Supporting Files"; sourceTree = ""; }; - C311D4E5DA280D0A5916D74B /* Pods */ = { - isa = PBXGroup; - children = ( - 5A6B2A9829343DEDBC2D3747 /* Pods-AWSSimpleDB.debug.xcconfig */, - A8AC682963E8485349CE6DFF /* Pods-AWSSimpleDB.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; CC221F0612D8271C7295C9FB /* Frameworks */ = { isa = PBXGroup; children = ( + BDD876B51B4B5354009268C7 /* libOCMock.a */, CEE532671B03D3B7002CED62 /* libz.dylib */, BD00FF3C1AB8B6C4004496EF /* libAWSCore.a */, - 502E5942549583CE9AAF0159 /* libPods-AWSSimpleDB.a */, ); name = Frameworks; sourceTree = ""; @@ -222,6 +235,24 @@ productReference = BDB5DE9B1AB377AF002DD224 /* AWSSimpleDBTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; + BDF126331B45C31C00DFBFEC /* AWSSimpleDBUnitTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = BDF126401B45C31C00DFBFEC /* Build configuration list for PBXNativeTarget "AWSSimpleDBUnitTests" */; + buildPhases = ( + BDF126361B45C31C00DFBFEC /* Sources */, + BDF1263A1B45C31C00DFBFEC /* Frameworks */, + BDF1263E1B45C31C00DFBFEC /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + BDF126341B45C31C00DFBFEC /* PBXTargetDependency */, + ); + name = AWSSimpleDBUnitTests; + productName = SimpleDBTests; + productReference = BDF126431B45C31C00DFBFEC /* AWSSimpleDBUnitTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -253,6 +284,7 @@ targets = ( BDB5DE8F1AB377AF002DD224 /* AWSSimpleDB */, BDB5DE9A1AB377AF002DD224 /* AWSSimpleDBTests */, + BDF126331B45C31C00DFBFEC /* AWSSimpleDBUnitTests */, ); }; /* End PBXProject section */ @@ -266,6 +298,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + BDF1263E1B45C31C00DFBFEC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -283,12 +322,20 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BD00FFE01AB8C417004496EF /* AWSGeneralSimpleDBTests.m in Sources */, BD0000521AB8E16D004496EF /* AWSTestUtility.m in Sources */, BD00FFE11AB8C417004496EF /* AWSSimpleDBTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; + BDF126361B45C31C00DFBFEC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BDF126371B45C31C00DFBFEC /* AWSGeneralSimpleDBTests.m in Sources */, + BDF126381B45C31C00DFBFEC /* AWSTestUtility.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ @@ -297,6 +344,11 @@ target = BDB5DE8F1AB377AF002DD224 /* AWSSimpleDB */; targetProxy = BDB5DE9D1AB377AF002DD224 /* PBXContainerItemProxy */; }; + BDF126341B45C31C00DFBFEC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BDB5DE8F1AB377AF002DD224 /* AWSSimpleDB */; + targetProxy = BDF126351B45C31C00DFBFEC /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ @@ -304,6 +356,10 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -345,6 +401,10 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + "$(ARCHS_STANDARD)", + armv7s, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -419,6 +479,7 @@ ); INFOPLIST_FILE = AWSSimpleDBTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = AWSSimpleDBTests; }; name = Debug; @@ -434,10 +495,69 @@ GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; INFOPLIST_FILE = AWSSimpleDBTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = "$(SYMROOT)"; PRODUCT_NAME = AWSSimpleDBTests; }; name = Release; }; + BDF126411B45C31C00DFBFEC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = AWSSimpleDBTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSSimpleDBUnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Debug; + }; + BDF126421B45C31C00DFBFEC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + ); + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + INFOPLIST_FILE = AWSSimpleDBTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(SYMROOT)", + "$(PROJECT_DIR)/AWSCoreTests/OCMock", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + XCTest, + "-force_load", + "$(PROJECT_DIR)/AWSCoreTests/OCMock/libOCMock.a", + ); + PRODUCT_NAME = AWSSimpleDBUnitTests; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include/** $(PROJECT_DIR)/AWSCoreTests/OCMock"; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -468,6 +588,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + BDF126401B45C31C00DFBFEC /* Build configuration list for PBXNativeTarget "AWSSimpleDBUnitTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BDF126411B45C31C00DFBFEC /* Debug */, + BDF126421B45C31C00DFBFEC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = BDB5DE881AB377AF002DD224 /* Project object */; diff --git a/AWSSimpleDB.xcodeproj/xcshareddata/xcschemes/AWSSimpleDB.xcscheme b/AWSSimpleDB.xcodeproj/xcshareddata/xcschemes/AWSSimpleDB.xcscheme new file mode 100644 index 00000000000..6fdd1e1097e --- /dev/null +++ b/AWSSimpleDB.xcodeproj/xcshareddata/xcschemes/AWSSimpleDB.xcscheme @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AWSSimpleDB/AWSSimpleDBService.m b/AWSSimpleDB/AWSSimpleDBService.m index 8f065023191..cb4a30ec94c 100644 --- a/AWSSimpleDB/AWSSimpleDBService.m +++ b/AWSSimpleDB/AWSSimpleDBService.m @@ -221,7 +221,6 @@ - (instancetype)initWithConfiguration:(AWSServiceConfiguration *)configuration { _configuration.baseURL = _configuration.endpoint.URL; _configuration.requestInterceptors = @[[AWSNetworkingRequestInterceptor new], signer]; _configuration.retryHandler = [[AWSSimpleDBRequestRetryHandler alloc] initWithMaximumRetryCount:_configuration.maxRetryCount]; - _configuration.headers = @{@"Host" : _configuration.endpoint.hostName}; _networking = [[AWSNetworking alloc] initWithConfiguration:_configuration]; } diff --git a/AWSSimpleDBTests/AWSGeneralSimpleDBTests.m b/AWSSimpleDBTests/AWSGeneralSimpleDBTests.m index ae2bf509dfb..ebe8f9a6701 100644 --- a/AWSSimpleDBTests/AWSGeneralSimpleDBTests.m +++ b/AWSSimpleDBTests/AWSGeneralSimpleDBTests.m @@ -15,9 +15,12 @@ #import #import +#import #import "AWSTestUtility.h" #import "AWSSimpleDB.h" +static id mockNetworking = nil; + @interface AWSGeneralSimpleDBTests : XCTestCase @end @@ -26,7 +29,11 @@ @implementation AWSGeneralSimpleDBTests - (void)setUp { [super setUp]; - [AWSTestUtility setupCognitoCredentialsProvider]; + [AWSTestUtility setupFakeCognitoCredentialsProvider]; + + mockNetworking = OCMClassMock([AWSNetworking class]); + AWSTask *errorTask = [AWSTask taskWithError:[NSError errorWithDomain:@"OCMockExpectedNetworkingError" code:8848 userInfo:nil]]; + OCMStub([mockNetworking sendRequest:[OCMArg isKindOfClass:[AWSNetworkingRequest class]]]).andReturn(errorTask); } - (void)tearDown { @@ -55,13 +62,20 @@ - (void)testBatchDeleteAttributes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSimpleDB registerSimpleDBWithConfiguration:configuration forKey:key]; + AWSSimpleDB *awsClient = [AWSSimpleDB SimpleDBForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSimpleDB SimpleDBForKey:key] batchDeleteAttributes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSimpleDB removeSimpleDBForKey:key]; } @@ -70,13 +84,20 @@ - (void)testBatchPutAttributes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSimpleDB registerSimpleDBWithConfiguration:configuration forKey:key]; + AWSSimpleDB *awsClient = [AWSSimpleDB SimpleDBForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSimpleDB SimpleDBForKey:key] batchPutAttributes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSimpleDB removeSimpleDBForKey:key]; } @@ -85,13 +106,20 @@ - (void)testCreateDomain { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSimpleDB registerSimpleDBWithConfiguration:configuration forKey:key]; + AWSSimpleDB *awsClient = [AWSSimpleDB SimpleDBForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSimpleDB SimpleDBForKey:key] createDomain:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSimpleDB removeSimpleDBForKey:key]; } @@ -100,13 +128,20 @@ - (void)testDeleteAttributes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSimpleDB registerSimpleDBWithConfiguration:configuration forKey:key]; + AWSSimpleDB *awsClient = [AWSSimpleDB SimpleDBForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSimpleDB SimpleDBForKey:key] deleteAttributes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSimpleDB removeSimpleDBForKey:key]; } @@ -115,13 +150,20 @@ - (void)testDeleteDomain { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSimpleDB registerSimpleDBWithConfiguration:configuration forKey:key]; + AWSSimpleDB *awsClient = [AWSSimpleDB SimpleDBForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSimpleDB SimpleDBForKey:key] deleteDomain:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSimpleDB removeSimpleDBForKey:key]; } @@ -130,13 +172,20 @@ - (void)testDomainMetadata { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSimpleDB registerSimpleDBWithConfiguration:configuration forKey:key]; + AWSSimpleDB *awsClient = [AWSSimpleDB SimpleDBForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSimpleDB SimpleDBForKey:key] domainMetadata:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSimpleDB removeSimpleDBForKey:key]; } @@ -145,13 +194,20 @@ - (void)testGetAttributes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSimpleDB registerSimpleDBWithConfiguration:configuration forKey:key]; + AWSSimpleDB *awsClient = [AWSSimpleDB SimpleDBForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSimpleDB SimpleDBForKey:key] getAttributes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSimpleDB removeSimpleDBForKey:key]; } @@ -160,13 +216,20 @@ - (void)testListDomains { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSimpleDB registerSimpleDBWithConfiguration:configuration forKey:key]; + AWSSimpleDB *awsClient = [AWSSimpleDB SimpleDBForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSimpleDB SimpleDBForKey:key] listDomains:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSimpleDB removeSimpleDBForKey:key]; } @@ -175,13 +238,20 @@ - (void)testPutAttributes { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSimpleDB registerSimpleDBWithConfiguration:configuration forKey:key]; + AWSSimpleDB *awsClient = [AWSSimpleDB SimpleDBForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSimpleDB SimpleDBForKey:key] putAttributes:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSimpleDB removeSimpleDBForKey:key]; } @@ -190,13 +260,20 @@ - (void)testSelect { AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUnknown credentialsProvider:nil]; [AWSSimpleDB registerSimpleDBWithConfiguration:configuration forKey:key]; + AWSSimpleDB *awsClient = [AWSSimpleDB SimpleDBForKey:key]; + XCTAssertNotNil(awsClient); + XCTAssertNotNil(mockNetworking); [awsClient setValue:mockNetworking forKey:@"networking"]; [[[[AWSSimpleDB SimpleDBForKey:key] select:nil] continueWithBlock:^id(AWSTask *task) { XCTAssertNotNil(task.error); + XCTAssertEqualObjects(@"OCMockExpectedNetworkingError", task.error.domain); + XCTAssertEqual(8848, task.error.code); XCTAssertNil(task.exception); XCTAssertNil(task.result); return nil; }] waitUntilFinished]; + OCMVerify([mockNetworking sendRequest:[OCMArg isNotNil]]); + [AWSSimpleDB removeSimpleDBForKey:key]; } diff --git a/AWSSimpleDBTests/AWSSimpleDBTests.m b/AWSSimpleDBTests/AWSSimpleDBTests.m index f7fd21bbb3a..ac6f56abe78 100644 --- a/AWSSimpleDBTests/AWSSimpleDBTests.m +++ b/AWSSimpleDBTests/AWSSimpleDBTests.m @@ -15,6 +15,7 @@ #if !AWS_TEST_BJS_INSTEAD +#import #import #import "AWSSimpleDB.h" #import "AWSTestUtility.h" diff --git a/AWSiOSSDKv2.podspec b/AWSiOSSDKv2.podspec index ad505c66397..fad99aef65c 100644 --- a/AWSiOSSDKv2.podspec +++ b/AWSiOSSDKv2.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = 'AWSiOSSDKv2' - s.version = '2.2.0' + s.version = '2.2.1' s.summary = 'Amazon Web Services SDK for iOS.' s.description = 'The AWS SDK for iOS provides a library, code samples, and documentation for developers to build connected mobile applications using AWS.' @@ -15,54 +15,54 @@ Pod::Spec.new do |s| s.requires_arc = true s.subspec 'AWSCore' do |aws| - aws.dependency 'AWSCore', '2.2.0' + aws.dependency 'AWSCore', '2.2.1' end s.subspec 'AutoScaling' do |autoscaling| - autoscaling.dependency 'AWSAutoScaling', '2.2.0' + autoscaling.dependency 'AWSAutoScaling', '2.2.1' end s.subspec 'CloudWatch' do |cloudwatch| - cloudwatch.dependency 'AWSCloudWatch', '2.2.0' + cloudwatch.dependency 'AWSCloudWatch', '2.2.1' end s.subspec 'DynamoDB' do |ddb| - ddb.dependency 'AWSDynamoDB', '2.2.0' + ddb.dependency 'AWSDynamoDB', '2.2.1' end s.subspec 'EC2' do |ec2| - ec2.dependency 'AWSEC2', '2.2.0' + ec2.dependency 'AWSEC2', '2.2.1' end s.subspec 'ElasticLoadBalancing' do |elasticloadbalancing| - elasticloadbalancing.dependency 'AWSElasticLoadBalancing', '2.2.0' + elasticloadbalancing.dependency 'AWSElasticLoadBalancing', '2.2.1' end s.subspec 'Kinesis' do |kinesis| - kinesis.dependency 'AWSKinesis', '2.2.0' + kinesis.dependency 'AWSKinesis', '2.2.1' end s.subspec 'MobileAnalytics' do |mobileanalytics| - mobileanalytics.dependency 'AWSMobileAnalytics', '2.2.0' + mobileanalytics.dependency 'AWSMobileAnalytics', '2.2.1' end s.subspec 'S3' do |s3| - s3.dependency 'AWSS3', '2.2.0' + s3.dependency 'AWSS3', '2.2.1' end s.subspec 'SES' do |ses| - ses.dependency 'AWSSES', '2.2.0' + ses.dependency 'AWSSES', '2.2.1' end s.subspec 'SimpleDB' do |simpledb| - simpledb.dependency 'AWSSimpleDB', '2.2.0' + simpledb.dependency 'AWSSimpleDB', '2.2.1' end s.subspec 'SNS' do |sns| - sns.dependency 'AWSSNS', '2.2.0' + sns.dependency 'AWSSNS', '2.2.1' end s.subspec 'SQS' do |sqs| - sqs.dependency 'AWSSQS', '2.2.0' + sqs.dependency 'AWSSQS', '2.2.1' end end diff --git a/AWSiOSSDKv2.xcworkspace/contents.xcworkspacedata b/AWSiOSSDKv2.xcworkspace/contents.xcworkspacedata index 66550dbc783..505ba762277 100644 --- a/AWSiOSSDKv2.xcworkspace/contents.xcworkspacedata +++ b/AWSiOSSDKv2.xcworkspace/contents.xcworkspacedata @@ -4,6 +4,9 @@ + + diff --git a/Scripts/GenerateAppleDocs.sh b/Scripts/GenerateAppleDocs.sh old mode 100755 new mode 100644 index 2cb25ccccb3..b787874b8aa --- a/Scripts/GenerateAppleDocs.sh +++ b/Scripts/GenerateAppleDocs.sh @@ -9,7 +9,7 @@ function cleanup } -VERSION="2.2.0" +VERSION="2.2.1" if [ -n $1 ] && [ "$1" == "clean" ]; then cleanup @@ -26,6 +26,7 @@ else mkdir -p docs mkdir -p docs_tmp + cp -r AWSAPIGateway ./docs_tmp/AWSAPIGateway cp -r AWSAutoScaling ./docs_tmp/AWSAutoScaling cp -r AWSCore ./docs_tmp/AWSCore cp -r AWSCloudWatch ./docs_tmp/AWSCloudWatch @@ -54,17 +55,17 @@ else rm -rf ./docs_tmp/AWSMobileAnalytics/Internal - if [ -d ../AWSiOSSDKCognitoSync ] + if [ -d ./AWSiOSSDKCognitoSync ] then - cp -r ../AWSiOSSDKCognitoSync/Cognito ./docs_tmp/Cognito + cp -r ./AWSiOSSDKCognitoSync/Cognito ./docs_tmp/Cognito rm -rf ./docs_tmp/Cognito/Internal - cp -r ../AWSiOSSDKCognitoSync/CognitoSync ./docs_tmp/CognitoSync + cp -r ./AWSiOSSDKCognitoSync/CognitoSync ./docs_tmp/CognitoSync fi cd docs_tmp # generate documenation - /usr/local/bin/appledoc --verbose 0 \ + appledoc --verbose 0 \ --output ../docs \ --exit-threshold 2 \ --no-repeat-first-par \ @@ -102,10 +103,10 @@ else #git push origin mainline rm -rf Documentation - mkdir Documentation - mv docs/html Documentation - mv docs/com.amazon.aws.ios.docset Documentation - mv docs/aws-sdk-ios-docs.zip Documentation + mkdir "$BUILT_PRODUCTS_DIR"/Documentation + mv docs/html "$BUILT_PRODUCTS_DIR"/Documentation + mv docs/com.amazon.aws.ios.docset "$BUILT_PRODUCTS_DIR"/Documentation + mv docs/aws-sdk-ios-docs.zip "$BUILT_PRODUCTS_DIR"/Documentation rm -rf docs rm -rf docs_tmp diff --git a/Scripts/Package.sh b/Scripts/Package.sh old mode 100755 new mode 100644 index f5e888bc349..f9c9d5a0438 --- a/Scripts/Package.sh +++ b/Scripts/Package.sh @@ -13,7 +13,7 @@ function exitOnFailureCode() { # clean if [ -n $1 ] && [ "$1" == "clean" ]; then - rm -rf build + rm -rf builtFramework echo "Cleaning Completed" exit 0 fi diff --git a/Scripts/SdkPackage.sh b/Scripts/SdkPackage.sh old mode 100755 new mode 100644 index fdcf067537f..1d415cb9a1c --- a/Scripts/SdkPackage.sh +++ b/Scripts/SdkPackage.sh @@ -30,7 +30,7 @@ FRAMEWORK_VERSION=A # Where we'll put the build framework. # The script presumes we're in the project root # directory. Xcode builds in "build" by default -FRAMEWORK_BUILD_PATH="build/framework" +FRAMEWORK_BUILD_PATH="builtFramework/framework" # Clean any existing framework that might be there @@ -48,7 +48,7 @@ xcodebuild ARCHS="armv7 armv7s arm64 i386 x86_64" \ -project "${project_name}.xcodeproj" \ -target "${project_name}" \ -sdk iphonesimulator \ - SYMROOT=$(PWD)/build \ + SYMROOT=$(PWD)/builtFramework \ clean build exitOnFailureCode $? @@ -59,7 +59,7 @@ xcodebuild ARCHS="armv7 armv7s arm64 i386 x86_64" \ -project "${project_name}.xcodeproj" \ -target "${project_name}" \ -sdk iphoneos \ - SYMROOT=$(PWD)/build \ + SYMROOT=$(PWD)/builtFramework \ clean build exitOnFailureCode $? @@ -96,8 +96,8 @@ ln -s Versions/Current/$FRAMEWORK_NAME $FRAMEWORK_DIR/$FRAMEWORK_NAME # framework with no .a extension. echo "Framework: Creating library..." lipo -create \ - "build/Debug-iphonesimulator/lib${project_name}.a" \ - "build/Release-iphoneos/lib${project_name}.a" \ + "builtFramework/Debug-iphonesimulator/lib${project_name}.a" \ + "builtFramework/Release-iphoneos/lib${project_name}.a" \ -o "$FRAMEWORK_DIR/Versions/Current/$FRAMEWORK_NAME" exitOnFailureCode $? @@ -106,11 +106,11 @@ exitOnFailureCode $? # header files and service definition json files echo "Framework: Copying public headers into current version..." #those headers are declared in xcode's building phase: Headers -cp -a build/Release-iphoneos/include/${project_name}/*.h $FRAMEWORK_DIR/Headers/ +cp -a builtFramework/Release-iphoneos/include/${project_name}/*.h $FRAMEWORK_DIR/Headers/ exitOnFailureCode $? # copy service definition json files echo "Copying service definition files into current build directory..." -mkdir -p 'build/service-definitions' -find . -name "*.json" -not -path "./*Tests/*" -not -path './build/*' -exec cp {} 'build/service-definitions/' \; +mkdir -p 'builtFramework/service-definitions' +find . -name "*.json" -not -path "./*Tests/*" -not -path './builtFramework/*' -exec cp {} 'builtFramework/service-definitions/' \; exitOnFailureCode $? diff --git a/include/AWSCore/AWSUICKeyChainStore.h b/include/AWSCore/AWSUICKeyChainStore.h new file mode 120000 index 00000000000..021cf3823c8 --- /dev/null +++ b/include/AWSCore/AWSUICKeyChainStore.h @@ -0,0 +1 @@ +../../AWSCore/UICKeyChainStore/AWSUICKeyChainStore.h \ No newline at end of file diff --git a/include/AWSCore/MobileAnalytics.h b/include/AWSCore/MobileAnalytics.h deleted file mode 120000 index 848157db746..00000000000 --- a/include/AWSCore/MobileAnalytics.h +++ /dev/null @@ -1 +0,0 @@ -../../AWSCore/MobileAnalytics/MobileAnalytics.h \ No newline at end of file