diff options
author | Joel Fischer <joeljfischer@gmail.com> | 2019-05-28 17:30:40 -0400 |
---|---|---|
committer | Joel Fischer <joeljfischer@gmail.com> | 2019-05-28 17:30:40 -0400 |
commit | e767e9cdae509ba7143fe7bc04b2cbe820ada860 (patch) | |
tree | 11d9a7dba400d81eac4c325529ad1a75721bed02 | |
parent | 5307621f21f70a0305efa0878838e4c698ce55d8 (diff) | |
download | sdl_ios-e767e9cdae509ba7143fe7bc04b2cbe820ada860.tar.gz |
Fix tests
4 files changed, 18 insertions, 11 deletions
diff --git a/SmartDeviceLink/SDLSystemCapabilityManager.h b/SmartDeviceLink/SDLSystemCapabilityManager.h index 7d89cd677..38030365a 100644 --- a/SmartDeviceLink/SDLSystemCapabilityManager.h +++ b/SmartDeviceLink/SDLSystemCapabilityManager.h @@ -41,7 +41,7 @@ NS_ASSUME_NONNULL_BEGIN typedef void (^SDLUpdateCapabilityHandler)(NSError * _Nullable error, SDLSystemCapabilityManager *systemCapabilityManager); /** - An observer block whenever a subscription is called. + An observer block for whenever a subscription is called. @param capability The capability that was updated. */ @@ -53,6 +53,11 @@ typedef void (^SDLCapabilityUpdateHandler)(SDLSystemCapability *capability); @interface SDLSystemCapabilityManager : NSObject /** + YES if subscriptions are available on the connected head unit. If NO, calls to `subscribeToCapabilityType:withBlock` and `subscribeToCapabilityType:withObserver:selector` will fail. + */ +@property (assign, nonatomic, readonly) BOOL supportsSubscriptions; + +/** * @see SDLDisplayCapabilities * * Optional diff --git a/SmartDeviceLink/SDLSystemCapabilityManager.m b/SmartDeviceLink/SDLSystemCapabilityManager.m index a7ffa785a..82d7c8c82 100644 --- a/SmartDeviceLink/SDLSystemCapabilityManager.m +++ b/SmartDeviceLink/SDLSystemCapabilityManager.m @@ -60,7 +60,7 @@ typedef NSString * SDLServiceID; @property (nullable, strong, nonatomic) NSMutableDictionary<SDLServiceID, SDLAppServiceCapability *> *appServicesCapabilitiesDictionary; -@property (assign, nonatomic) BOOL supportsObservers; +@property (assign, nonatomic, readwrite) BOOL supportsSubscriptions; @property (strong, nonatomic) NSMutableDictionary<SDLSystemCapabilityType, NSMutableArray<SDLSystemCapabilityObserver *> *> *capabilityObservers; @property (nullable, strong, nonatomic) SDLSystemCapability *lastReceivedCapability; @@ -97,7 +97,7 @@ typedef NSString * SDLServiceID; SDLVersion *onSystemCapabilityNotificationRPCVersion = [SDLVersion versionWithString:@"5.1.0"]; SDLVersion *headUnitRPCVersion = SDLGlobals.sharedGlobals.rpcVersion; if ([headUnitRPCVersion isGreaterThanOrEqualToVersion:onSystemCapabilityNotificationRPCVersion]) { - _supportsObservers = YES; + _supportsSubscriptions = YES; } } @@ -123,7 +123,7 @@ typedef NSString * SDLServiceID; _remoteControlCapability = nil; _appServicesCapabilitiesDictionary = [NSMutableDictionary dictionary]; - _supportsObservers = NO; + _supportsSubscriptions = NO; for (SDLSystemCapabilityType capabilityType in [self.class sdl_systemCapabilityTypes]) { _capabilityObservers[capabilityType] = [NSMutableArray array]; } @@ -227,7 +227,7 @@ typedef NSString * SDLServiceID; #pragma mark - System Capabilities - (void)updateCapabilityType:(SDLSystemCapabilityType)type completionHandler:(SDLUpdateCapabilityHandler)handler { - if (self.supportsObservers) { + if (self.supportsSubscriptions) { // Just return the cached data because we get `onSystemCapability` callbacks handler(nil, self); } else { @@ -252,7 +252,7 @@ typedef NSString * SDLServiceID; - (void)sdl_subscribeToSystemCapabilityUpdates { for (SDLSystemCapabilityType type in [self.class sdl_systemCapabilityTypes]) { SDLGetSystemCapability *getSystemCapability = [[SDLGetSystemCapability alloc] initWithType:type]; - if (self.supportsObservers) { + if (self.supportsSubscriptions) { getSystemCapability.subscribe = @YES; } @@ -308,7 +308,6 @@ typedef NSString * SDLServiceID; if ([self.videoStreamingCapability isEqual:systemCapability.videoStreamingCapability]) { return [self sdl_callSaveHandlerForCapability:systemCapability andReturnWithValue:NO handler:handler]; } self.videoStreamingCapability = systemCapability.videoStreamingCapability; } else if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypeAppServices]) { - if ([self.appServicesCapabilities isEqual:systemCapability.appServicesCapabilities]) { return [self sdl_callSaveHandlerForCapability:systemCapability andReturnWithValue:NO handler:handler]; } [self sdl_saveAppServicesCapabilitiesUpdate:systemCapability.appServicesCapabilities]; systemCapability = [[SDLSystemCapability alloc] initWithAppServicesCapabilities:self.appServicesCapabilities]; } else { @@ -367,7 +366,7 @@ typedef NSString * SDLServiceID; #pragma mark - Subscriptions - (nullable id<NSObject>)subscribeToCapabilityType:(SDLSystemCapabilityType)type usingBlock:(SDLCapabilityUpdateHandler)block { - if (!self.supportsObservers) { return nil; } + if (!self.supportsSubscriptions) { return nil; } SDLSystemCapabilityObserver *observerObject = [[SDLSystemCapabilityObserver alloc] initWithObserver:[[NSObject alloc] init] block:block]; [self.capabilityObservers[type] addObject:observerObject]; @@ -376,7 +375,7 @@ typedef NSString * SDLServiceID; } - (BOOL)subscribeToCapabilityType:(SDLSystemCapabilityType)type withObserver:(id<NSObject>)observer selector:(SEL)selector { - if (!self.supportsObservers) { return NO; } + if (!self.supportsSubscriptions) { return NO; } NSUInteger numberOfParametersInSelector = [NSStringFromSelector(selector) componentsSeparatedByString:@":"].count - 1; if (numberOfParametersInSelector > 1) { return NO; } diff --git a/SmartDeviceLinkTests/DevAPISpecs/TestSystemCapabilityObserver.h b/SmartDeviceLinkTests/DevAPISpecs/TestSystemCapabilityObserver.h index f6350db05..0e6c8bcbb 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/TestSystemCapabilityObserver.h +++ b/SmartDeviceLinkTests/DevAPISpecs/TestSystemCapabilityObserver.h @@ -8,6 +8,8 @@ #import <Foundation/Foundation.h> +@class SDLSystemCapabilityManager; + NS_ASSUME_NONNULL_BEGIN @interface TestSystemCapabilityObserver : NSObject diff --git a/SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m b/SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m index bc411fc51..e8d81827b 100644 --- a/SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m +++ b/SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m @@ -29,6 +29,7 @@ #import "SDLSystemCapabilityManager.h" #import "SDLVideoStreamingCapability.h" #import "TestConnectionManager.h" +#import "TestSystemCapabilityObserver.h" @interface SDLSystemCapabilityManager () @@ -397,7 +398,7 @@ describe(@"System capability manager", ^{ __block id blockObserver = nil; beforeEach(^{ - blockObserver = [testSystemCapabilityManager subscribeToCapabilityType:SDLSystemCapabilityTypePhoneCall usingBlock:^(SDLSystemCapabilityManager * _Nonnull systemCapabilityManager) { + blockObserver = [testSystemCapabilityManager subscribeToCapabilityType:SDLSystemCapabilityTypePhoneCall usingBlock:^(SDLSystemCapability * _Nonnull systemCapability) { blockObserverTriggeredCount++; }]; @@ -438,7 +439,7 @@ describe(@"System capability manager", ^{ __block id blockObserver = nil; beforeEach(^{ - blockObserver = [testSystemCapabilityManager subscribeToCapabilityType:SDLSystemCapabilityTypePhoneCall usingBlock:^(SDLSystemCapabilityManager * _Nonnull systemCapabilityManager) { + blockObserver = [testSystemCapabilityManager subscribeToCapabilityType:SDLSystemCapabilityTypePhoneCall usingBlock:^(SDLSystemCapability * _Nonnull systemCapability) { blockObserverTriggeredCount++; }]; |