summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Fischer <joeljfischer@gmail.com>2021-08-03 13:51:47 -0400
committerGitHub <noreply@github.com>2021-08-03 13:51:47 -0400
commitbf4de877b167b415ed676310efd0a508c6a5cc18 (patch)
tree4a30d82d5ccf6897b927e37c3e8f76297bdb7a33
parent8efb1824d61584eaa292990eaf0f72efdde411ee (diff)
parent8c7e62da5e27e5fd5fae00a2d126a0964610ad30 (diff)
downloadsdl_ios-bf4de877b167b415ed676310efd0a508c6a5cc18.tar.gz
Merge pull request #1867 from LuxoftSDL/feature/0236_upd_mismatch_TireStatus
SDL 0236 Update mismatch in TireStatus structure
-rw-r--r--SmartDeviceLink/private/SDLGlobals.m2
-rw-r--r--SmartDeviceLink/public/SDLTireStatus.m75
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTireStatusSpec.m80
3 files changed, 128 insertions, 29 deletions
diff --git a/SmartDeviceLink/private/SDLGlobals.m b/SmartDeviceLink/private/SDLGlobals.m
index c9a36c6c2..611787b9e 100644
--- a/SmartDeviceLink/private/SDLGlobals.m
+++ b/SmartDeviceLink/private/SDLGlobals.m
@@ -16,7 +16,7 @@ NS_ASSUME_NONNULL_BEGIN
// VERSION DEPENDENT CODE
NSString *const SDLMaxProxyProtocolVersion = @"5.4.0";
-NSString *const SDLMaxProxyRPCVersion = @"7.1.0";
+NSString *const SDLMaxProxyRPCVersion = @"8.0.0";
NSUInteger const SDLDefaultMTUSize = UINT32_MAX;
NSUInteger const SDLV1MTUSize = 1024;
diff --git a/SmartDeviceLink/public/SDLTireStatus.m b/SmartDeviceLink/public/SDLTireStatus.m
index aa1bac556..65f5d7d2a 100644
--- a/SmartDeviceLink/public/SDLTireStatus.m
+++ b/SmartDeviceLink/public/SDLTireStatus.m
@@ -17,7 +17,14 @@ NS_ASSUME_NONNULL_BEGIN
- (SDLWarningLightStatus)pressureTelltale {
NSError *error = nil;
- return [self.store sdl_enumForName:SDLRPCParameterNamePressureTelltale error:&error];
+ SDLWarningLightStatus warningLightStatus = [self.store sdl_enumForName:SDLRPCParameterNamePressureTelltale error:&error];
+ if (warningLightStatus == nil) {
+ [self.store sdl_setObject:SDLWarningLightStatusNotUsed forName:SDLRPCParameterNamePressureTelltale];
+ warningLightStatus = SDLWarningLightStatusNotUsed;
+ SDLLogW(@"SDLTireStatus.pressureTelltale was nil and will be set to .notUsed. In the future, this will change to be nullable.");
+ }
+
+ return warningLightStatus;
}
- (void)setLeftFront:(SDLSingleTireStatus *)leftFront {
@@ -26,7 +33,16 @@ NS_ASSUME_NONNULL_BEGIN
- (SDLSingleTireStatus *)leftFront {
NSError *error = nil;
- return [self.store sdl_objectForName:SDLRPCParameterNameLeftFront ofClass:SDLSingleTireStatus.class error:&error];
+ SDLSingleTireStatus *tireStatus = [self.store sdl_objectForName:SDLRPCParameterNameLeftFront ofClass:SDLSingleTireStatus.class error:&error];
+ if (tireStatus == nil) {
+ SDLSingleTireStatus *newTireStatus = [[SDLSingleTireStatus alloc] init];
+ newTireStatus.status = SDLComponentVolumeStatusUnknown;
+ [self.store sdl_setObject:newTireStatus forName:SDLRPCParameterNameLeftFront];
+ tireStatus = newTireStatus;
+ SDLLogW(@"SDLTireStatus.leftFront was nil and will be set to .unknown. In the future, this will change to be nullable.");
+ }
+
+ return tireStatus;
}
- (void)setRightFront:(SDLSingleTireStatus *)rightFront {
@@ -35,7 +51,16 @@ NS_ASSUME_NONNULL_BEGIN
- (SDLSingleTireStatus *)rightFront {
NSError *error = nil;
- return [self.store sdl_objectForName:SDLRPCParameterNameRightFront ofClass:SDLSingleTireStatus.class error:&error];
+ SDLSingleTireStatus *tireStatus = [self.store sdl_objectForName:SDLRPCParameterNameRightFront ofClass:SDLSingleTireStatus.class error:&error];
+ if (tireStatus == nil) {
+ SDLSingleTireStatus *newTireStatus = [[SDLSingleTireStatus alloc] init];
+ newTireStatus.status = SDLComponentVolumeStatusUnknown;
+ [self.store sdl_setObject:newTireStatus forName:SDLRPCParameterNameRightFront];
+ tireStatus = newTireStatus;
+ SDLLogW(@"SDLTireStatus.rightFront was nil and will be set to .unknown. In the future, this will change to be nullable.");
+ }
+
+ return tireStatus;
}
- (void)setLeftRear:(SDLSingleTireStatus *)leftRear {
@@ -44,7 +69,16 @@ NS_ASSUME_NONNULL_BEGIN
- (SDLSingleTireStatus *)leftRear {
NSError *error = nil;
- return [self.store sdl_objectForName:SDLRPCParameterNameLeftRear ofClass:SDLSingleTireStatus.class error:&error];
+ SDLSingleTireStatus *tireStatus = [self.store sdl_objectForName:SDLRPCParameterNameLeftRear ofClass:SDLSingleTireStatus.class error:&error];
+ if (tireStatus == nil) {
+ SDLSingleTireStatus *newTireStatus = [[SDLSingleTireStatus alloc] init];
+ newTireStatus.status = SDLComponentVolumeStatusUnknown;
+ [self.store sdl_setObject:newTireStatus forName:SDLRPCParameterNameLeftRear];
+ tireStatus = newTireStatus;
+ SDLLogW(@"SDLTireStatus.leftRear was nil and will be set to .unknown. In the future, this will change to be nullable.");
+ }
+
+ return tireStatus;
}
- (void)setRightRear:(SDLSingleTireStatus *)rightRear {
@@ -53,7 +87,16 @@ NS_ASSUME_NONNULL_BEGIN
- (SDLSingleTireStatus *)rightRear {
NSError *error = nil;
- return [self.store sdl_objectForName:SDLRPCParameterNameRightRear ofClass:SDLSingleTireStatus.class error:&error];
+ SDLSingleTireStatus *tireStatus = [self.store sdl_objectForName:SDLRPCParameterNameRightRear ofClass:SDLSingleTireStatus.class error:&error];
+ if (tireStatus == nil) {
+ SDLSingleTireStatus *newTireStatus = [[SDLSingleTireStatus alloc] init];
+ newTireStatus.status = SDLComponentVolumeStatusUnknown;
+ [self.store sdl_setObject:newTireStatus forName:SDLRPCParameterNameRightRear];
+ tireStatus = newTireStatus;
+ SDLLogW(@"SDLTireStatus.rightRear was nil and will be set to .unknown. In the future, this will change to be nullable.");
+ }
+
+ return tireStatus;
}
- (void)setInnerLeftRear:(SDLSingleTireStatus *)innerLeftRear {
@@ -62,7 +105,16 @@ NS_ASSUME_NONNULL_BEGIN
- (SDLSingleTireStatus *)innerLeftRear {
NSError *error = nil;
- return [self.store sdl_objectForName:SDLRPCParameterNameInnerLeftRear ofClass:SDLSingleTireStatus.class error:&error];
+ SDLSingleTireStatus *tireStatus = [self.store sdl_objectForName:SDLRPCParameterNameInnerLeftRear ofClass:SDLSingleTireStatus.class error:&error];
+ if (tireStatus == nil) {
+ SDLSingleTireStatus *newTireStatus = [[SDLSingleTireStatus alloc] init];
+ newTireStatus.status = SDLComponentVolumeStatusUnknown;
+ [self.store sdl_setObject:newTireStatus forName:SDLRPCParameterNameInnerLeftRear];
+ tireStatus = newTireStatus;
+ SDLLogW(@"SDLTireStatus.innerLeftRear was nil and will be set to .unknown. In the future, this will change to be nullable.");
+ }
+
+ return tireStatus;
}
- (void)setInnerRightRear:(SDLSingleTireStatus *)innerRightRear {
@@ -71,7 +123,16 @@ NS_ASSUME_NONNULL_BEGIN
- (SDLSingleTireStatus *)innerRightRear {
NSError *error = nil;
- return [self.store sdl_objectForName:SDLRPCParameterNameInnerRightRear ofClass:SDLSingleTireStatus.class error:&error];
+ SDLSingleTireStatus *tireStatus = [self.store sdl_objectForName:SDLRPCParameterNameInnerRightRear ofClass:SDLSingleTireStatus.class error:&error];
+ if (tireStatus == nil) {
+ SDLSingleTireStatus *newTireStatus = [[SDLSingleTireStatus alloc] init];
+ newTireStatus.status = SDLComponentVolumeStatusUnknown;
+ [self.store sdl_setObject:newTireStatus forName:SDLRPCParameterNameInnerRightRear];
+ tireStatus = newTireStatus;
+ SDLLogW(@"SDLTireStatus.innerRightRear was nil and will be set to .unknown. In the future, this will change to be nullable.");
+ }
+
+ return tireStatus;
}
@end
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTireStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTireStatusSpec.m
index 67243d863..81c96a865 100644
--- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTireStatusSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTireStatusSpec.m
@@ -8,22 +8,39 @@
#import <Quick/Quick.h>
#import <Nimble/Nimble.h>
-#import "SDLTireStatus.h"
#import "SDLSingleTireStatus.h"
-#import "SDLWarningLightStatus.h"
+#import "SDLTireStatus.h"
#import "SDLRPCParameterNames.h"
+#import "SDLWarningLightStatus.h"
QuickSpecBegin(SDLTireStatusSpec)
-SDLSingleTireStatus* tire1 = [[SDLSingleTireStatus alloc] init];
-SDLSingleTireStatus* tire2 = [[SDLSingleTireStatus alloc] init];
-SDLSingleTireStatus* tire3 = [[SDLSingleTireStatus alloc] init];
-SDLSingleTireStatus* tire4 = [[SDLSingleTireStatus alloc] init];
-SDLSingleTireStatus* tire5 = [[SDLSingleTireStatus alloc] init];
-SDLSingleTireStatus* tire6 = [[SDLSingleTireStatus alloc] init];
+__block SDLSingleTireStatus* tire1 = nil;
+__block SDLSingleTireStatus* tire2 = nil;
+__block SDLSingleTireStatus* tire3 = nil;
+__block SDLSingleTireStatus* tire4 = nil;
+__block SDLSingleTireStatus* tire5 = nil;
+__block SDLSingleTireStatus* tire6 = nil;
+
+describe(@"Getter/Setter Tests", ^{
-describe(@"Getter/Setter Tests", ^ {
- it(@"Should set and get correctly", ^ {
+ beforeEach(^{
+ tire1 = [[SDLSingleTireStatus alloc] init];
+ tire2 = [[SDLSingleTireStatus alloc] init];
+ tire3 = [[SDLSingleTireStatus alloc] init];
+ tire4 = [[SDLSingleTireStatus alloc] init];
+ tire5 = [[SDLSingleTireStatus alloc] init];
+ tire6 = [[SDLSingleTireStatus alloc] init];
+ // make all tires different to prevent misplacement (eg left front != right front etc.)
+ tire1.pressure = @(1.0);
+ tire2.pressure = @(2.0);
+ tire3.pressure = @(3.0);
+ tire4.pressure = @(4.0);
+ tire5.pressure = @(5.0);
+ tire6.pressure = @(6.0);
+ });
+
+ it(@"Should set and get correctly", ^{
SDLTireStatus* testStruct = [[SDLTireStatus alloc] init];
testStruct.pressureTelltale = SDLWarningLightStatusOff;
@@ -43,7 +60,7 @@ describe(@"Getter/Setter Tests", ^ {
expect(testStruct.innerRightRear).to(equal(tire6));
});
- it(@"Should get correctly when initialized", ^ {
+ it(@"Should get correctly when initialized", ^{
NSMutableDictionary* dict = [@{SDLRPCParameterNamePressureTelltale:SDLWarningLightStatusOff,
SDLRPCParameterNameLeftFront:tire1,
SDLRPCParameterNameRightFront:tire2,
@@ -62,16 +79,37 @@ describe(@"Getter/Setter Tests", ^ {
expect(testStruct.innerRightRear).to(equal(tire6));
});
- it(@"Should return nil if not set", ^ {
- SDLTireStatus* testStruct = [[SDLTireStatus alloc] init];
-
- expect(testStruct.pressureTelltale).to(beNil());
- expect(testStruct.leftFront).to(beNil());
- expect(testStruct.rightFront).to(beNil());
- expect(testStruct.leftRear).to(beNil());
- expect(testStruct.rightRear).to(beNil());
- expect(testStruct.innerLeftRear).to(beNil());
- expect(testStruct.innerRightRear).to(beNil());
+ context(@"Should not return nil if not set", ^{
+ __block SDLTireStatus* testStruct = nil;
+ // default tire status (when it is set to nil)
+ __block SDLSingleTireStatus* tireDefault = nil;
+
+ beforeEach(^{
+ testStruct = [[SDLTireStatus alloc] init];
+ tireDefault = [[SDLSingleTireStatus alloc] init];
+ tireDefault.status = SDLComponentVolumeStatusUnknown;
+ tireDefault.pressure = nil;
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wnonnull"
+ testStruct.pressureTelltale = nil;
+ testStruct.leftFront = nil;
+ testStruct.rightFront = nil;
+ testStruct.leftRear = nil;
+ testStruct.rightRear = nil;
+ testStruct.innerLeftRear = nil;
+ testStruct.innerRightRear = nil;
+#pragma clang diagnostic pop
+ });
+
+ it(@"Should not return nil if not set", ^{
+ expect(testStruct.pressureTelltale).to(equal(SDLWarningLightStatusNotUsed));
+ expect(testStruct.leftFront).to(equal(tireDefault));
+ expect(testStruct.rightFront).to(equal(tireDefault));
+ expect(testStruct.leftRear).to(equal(tireDefault));
+ expect(testStruct.rightRear).to(equal(tireDefault));
+ expect(testStruct.innerLeftRear).to(equal(tireDefault));
+ expect(testStruct.innerRightRear).to(equal(tireDefault));
+ });
});
});