summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Fischer <joeljfischer@gmail.com>2019-05-28 17:30:40 -0400
committerJoel Fischer <joeljfischer@gmail.com>2019-05-28 17:30:40 -0400
commite767e9cdae509ba7143fe7bc04b2cbe820ada860 (patch)
tree11d9a7dba400d81eac4c325529ad1a75721bed02
parent5307621f21f70a0305efa0878838e4c698ce55d8 (diff)
downloadsdl_ios-e767e9cdae509ba7143fe7bc04b2cbe820ada860.tar.gz
Fix tests
-rw-r--r--SmartDeviceLink/SDLSystemCapabilityManager.h7
-rw-r--r--SmartDeviceLink/SDLSystemCapabilityManager.m15
-rw-r--r--SmartDeviceLinkTests/DevAPISpecs/TestSystemCapabilityObserver.h2
-rw-r--r--SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m5
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++;
}];