diff options
author | Frank Elias <francois.elias@livio.io> | 2021-08-13 10:56:29 -0400 |
---|---|---|
committer | Frank Elias <francois.elias@livio.io> | 2021-08-13 10:56:29 -0400 |
commit | f13bbd70b1772836a4a3d734a683b75bbbd6183d (patch) | |
tree | 77ef6edef95127c83c2d76bdade8c5941da11948 | |
parent | 3975917763c7fcf766627beb3195172ad5a8fbe4 (diff) | |
download | sdl_ios-f13bbd70b1772836a4a3d734a683b75bbbd6183d.tar.gz |
security query payload spec
-rw-r--r-- | SmartDeviceLink-iOS.xcodeproj/project.pbxproj | 4 | ||||
-rw-r--r-- | SmartDeviceLinkTests/RPCSpecs/PayloadSpecs/SDLSecurityQueryPayloadSpec.m | 79 |
2 files changed, 83 insertions, 0 deletions
diff --git a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj index cb75a6780..cfd04d1fe 100644 --- a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj +++ b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj @@ -1749,6 +1749,7 @@ C9758785257F4C570066F271 /* SDLSeekStreamingIndicatorSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = C9758784257F4C570066F271 /* SDLSeekStreamingIndicatorSpec.m */; }; C99BE00926C53E7F00DB0B54 /* SDLSecurityQueryErrorCode.h in Headers */ = {isa = PBXBuildFile; fileRef = C99BE00726C53E7E00DB0B54 /* SDLSecurityQueryErrorCode.h */; }; C99BE00A26C53E7F00DB0B54 /* SDLSecurityQueryErrorCode.m in Sources */ = {isa = PBXBuildFile; fileRef = C99BE00826C53E7E00DB0B54 /* SDLSecurityQueryErrorCode.m */; }; + C99BE00D26C5B23000DB0B54 /* SDLSecurityQueryPayloadSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = C99BE00C26C5B23000DB0B54 /* SDLSecurityQueryPayloadSpec.m */; }; C9AA62C4261E5035000F49BC /* SDLVoiceCommandManagerSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DF40B27208FDA9700DD6FDA /* SDLVoiceCommandManagerSpec.m */; }; C9DFFE78257ACE0000F7D57A /* SDLSeekStreamingIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = C9DFFE76257ACE0000F7D57A /* SDLSeekStreamingIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; C9DFFE79257ACE0000F7D57A /* SDLSeekStreamingIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = C9DFFE77257ACE0000F7D57A /* SDLSeekStreamingIndicator.m */; }; @@ -3663,6 +3664,7 @@ C9758784257F4C570066F271 /* SDLSeekStreamingIndicatorSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLSeekStreamingIndicatorSpec.m; sourceTree = "<group>"; }; C99BE00726C53E7E00DB0B54 /* SDLSecurityQueryErrorCode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SDLSecurityQueryErrorCode.h; path = public/SDLSecurityQueryErrorCode.h; sourceTree = "<group>"; }; C99BE00826C53E7E00DB0B54 /* SDLSecurityQueryErrorCode.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SDLSecurityQueryErrorCode.m; path = public/SDLSecurityQueryErrorCode.m; sourceTree = "<group>"; }; + C99BE00C26C5B23000DB0B54 /* SDLSecurityQueryPayloadSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLSecurityQueryPayloadSpec.m; sourceTree = "<group>"; }; C9DFFE76257ACE0000F7D57A /* SDLSeekStreamingIndicator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SDLSeekStreamingIndicator.h; path = public/SDLSeekStreamingIndicator.h; sourceTree = "<group>"; }; C9DFFE77257ACE0000F7D57A /* SDLSeekStreamingIndicator.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SDLSeekStreamingIndicator.m; path = public/SDLSeekStreamingIndicator.m; sourceTree = "<group>"; }; C9DFFE7C257AD07E00F7D57A /* SDLSeekIndicatorType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SDLSeekIndicatorType.h; path = public/SDLSeekIndicatorType.h; sourceTree = "<group>"; }; @@ -3980,6 +3982,7 @@ isa = PBXGroup; children = ( 162E823C1A9BDE8A00906325 /* SDLRPCPayloadSpec.m */, + C99BE00C26C5B23000DB0B54 /* SDLSecurityQueryPayloadSpec.m */, ); path = PayloadSpecs; sourceTree = "<group>"; @@ -8864,6 +8867,7 @@ 1680B11D1A9CD7AD00DBD79E /* SDLProtocolMessageDisassemblerSpec.m in Sources */, 8BBEA6091F324832003EEA26 /* SDLMetadataTypeSpec.m in Sources */, 5DAD5F8B20508F140025624C /* SDLSoftButtonObjectSpec.m in Sources */, + C99BE00D26C5B23000DB0B54 /* SDLSecurityQueryPayloadSpec.m in Sources */, DA9F7E9E1DCC05B900ACAE48 /* SDLWaypointTypeSpec.m in Sources */, 5D76E31C1D3805FF00647CFA /* SDLLockScreenManagerSpec.m in Sources */, 162E82DA1A9BDE8B00906325 /* SDLDriverDistractionStateSpec.m in Sources */, diff --git a/SmartDeviceLinkTests/RPCSpecs/PayloadSpecs/SDLSecurityQueryPayloadSpec.m b/SmartDeviceLinkTests/RPCSpecs/PayloadSpecs/SDLSecurityQueryPayloadSpec.m new file mode 100644 index 000000000..bc38417a4 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/PayloadSpecs/SDLSecurityQueryPayloadSpec.m @@ -0,0 +1,79 @@ +// +// SDLsss.m +// SmartDeviceLinkTests +// +// Created by Frank Elias on 8/12/21. +// Copyright © 2021 smartdevicelink. All rights reserved. +// + + +#import <Foundation/Foundation.h> + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" +#import "SDLSecurityQueryPayload.h" + +QuickSpecBegin(SDLSecurityQueryPayloadSpec) + +__block SDLSecurityQueryPayload* testPayload; +__block NSDictionary* dict = @{SDLRPCParameterNameResponse: + @{SDLRPCParameterNameParameters:@{}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameDeleteCommand}}; + +NSData* (^testData)(void) = ^NSData* { + NSData* jsonData = [NSJSONSerialization dataWithJSONObject:dict options:0 error:0]; + NSData* binaryData = [NSData dataWithBytes:"PrimitiveString" length:strlen("PrimitiveString")]; + + UInt8 header[12] = {0x01, 0x00, 0x00, 0x06, 0x00, 0x00, 0x14, 0x43, 0x00, 0x00, 0x00, 0x00}; + *(UInt32 *)&header[8] = CFSwapInt32HostToBig((unsigned int)jsonData.length); + + NSMutableData *data = [NSMutableData dataWithCapacity:12 + jsonData.length]; + [data appendBytes:&header length:12]; + [data appendData:jsonData]; + [data appendData:binaryData]; + + return data; +}; + +beforeSuite(^ { + testPayload = [[SDLSecurityQueryPayload alloc] init]; + + testPayload.queryType = 0x01; + testPayload.queryID = 0x06; + testPayload.sequenceNumber = 0x1443; + testPayload.jsonData = [NSJSONSerialization dataWithJSONObject:dict options:0 error:0]; + testPayload.binaryData = [NSData dataWithBytes:"PrimitiveString" length:strlen("PrimitiveString")]; +}); + +describe(@"Getter/Setter Tests", ^ { + it(@"Should set and get correctly", ^ { + expect(@(testPayload.queryType)).to(equal(@0x01)); + expect(@(testPayload.queryID)).to(equal(@0x06)); + expect(@(testPayload.sequenceNumber)).to(equal(@0x1443)); + expect([NSJSONSerialization JSONObjectWithData:testPayload.jsonData options:0 error:0]).to(equal(dict)); + expect([NSString stringWithUTF8String:[testPayload binaryData].bytes]).to(equal(@"PrimitiveString")); + }); +}); + +describe(@"Data Tests", ^ { + it (@"Should convert to byte data correctly", ^ { + expect(testPayload.data).to(equal(testData())); + }); +}); + +describe(@"RPCPayloadWithData Test", ^ { + it (@"Should convert from byte data correctly", ^ { + SDLSecurityQueryPayload* constructedPayload = [SDLSecurityQueryPayload securityPayloadWithData:testData()]; + + expect(@(constructedPayload.queryType)).to(equal(@0x01)); + expect(@(constructedPayload.queryID)).to(equal(@0x06)); + expect(@(constructedPayload.sequenceNumber)).to(equal(@0x1443)); + expect([NSJSONSerialization JSONObjectWithData:constructedPayload.jsonData options:0 error:0]).to(equal(dict)); + expect([NSString stringWithUTF8String:[constructedPayload binaryData].bytes]).to(equal(@"PrimitiveString")); + }); +}); + +QuickSpecEnd |