summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Elias <francois.elias@livio.io>2021-08-13 10:56:29 -0400
committerFrank Elias <francois.elias@livio.io>2021-08-13 10:56:29 -0400
commitf13bbd70b1772836a4a3d734a683b75bbbd6183d (patch)
tree77ef6edef95127c83c2d76bdade8c5941da11948
parent3975917763c7fcf766627beb3195172ad5a8fbe4 (diff)
downloadsdl_ios-f13bbd70b1772836a4a3d734a683b75bbbd6183d.tar.gz
security query payload spec
-rw-r--r--SmartDeviceLink-iOS.xcodeproj/project.pbxproj4
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/PayloadSpecs/SDLSecurityQueryPayloadSpec.m79
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