diff options
author | Joel Fischer <joeljfischer@gmail.com> | 2021-08-03 13:51:47 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-03 13:51:47 -0400 |
commit | bf4de877b167b415ed676310efd0a508c6a5cc18 (patch) | |
tree | 4a30d82d5ccf6897b927e37c3e8f76297bdb7a33 | |
parent | 8efb1824d61584eaa292990eaf0f72efdde411ee (diff) | |
parent | 8c7e62da5e27e5fd5fae00a2d126a0964610ad30 (diff) | |
download | sdl_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.m | 2 | ||||
-rw-r--r-- | SmartDeviceLink/public/SDLTireStatus.m | 75 | ||||
-rw-r--r-- | SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTireStatusSpec.m | 80 |
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)); + }); }); }); |