@@ -21,6 +21,9 @@ - (MPKitExecStatus *)purchaseFinalized:(NSString *)placementId
2121 catalogItemId : (NSString *)catalogItemId
2222 success : (NSNumber *)success ;
2323
24+ - (MPKitExecStatus *)setSessionId : (NSString *)sessionId ;
25+ - (NSString *)getSessionId ;
26+
2427- (NSDictionary <NSString *, RoktEmbeddedView *> * _Nullable) confirmEmbeddedViews : (NSDictionary <NSString *, MPRoktEmbeddedView *> * _Nullable)embeddedViews ;
2528
2629+ (void )addIdentityAttributes : (NSMutableDictionary <NSString *, NSString *> * _Nullable)attributes filteredUser : (FilteredMParticleUser * _Nonnull)filteredUser ;
@@ -796,4 +799,79 @@ - (void)testExecuteWithIdentifierLogsSelectPlacementEventWithPreparedAttributes
796799 [mockMParticleInstance stopMocking ];
797800}
798801
802+ #pragma mark - setSessionId tests
803+
804+ - (void )testSetSessionIdCallsRoktSDK {
805+ id mockRoktSDK = OCMClassMock ([Rokt class ]);
806+
807+ NSString *sessionId = @" test-session-id-12345" ;
808+
809+ // Expect Rokt setSessionIdWithSessionId call with correct parameter
810+ OCMExpect ([mockRoktSDK setSessionIdWithSessionId: sessionId]);
811+
812+ // Execute the method
813+ MPKitExecStatus *status = [self .kitInstance setSessionId: sessionId];
814+
815+ // Verify
816+ XCTAssertNotNil (status);
817+ XCTAssertEqual (status.returnCode , MPKitReturnCodeSuccess);
818+ XCTAssertEqualObjects (status.integrationId , @181 );
819+ OCMVerifyAll (mockRoktSDK);
820+
821+ [mockRoktSDK stopMocking ];
822+ }
823+
824+ - (void )testSetSessionIdWithEmptyString {
825+ id mockRoktSDK = OCMClassMock ([Rokt class ]);
826+
827+ NSString *sessionId = @" " ;
828+
829+ // Expect Rokt setSessionIdWithSessionId call - the kit passes it through, Rokt SDK handles validation
830+ OCMExpect ([mockRoktSDK setSessionIdWithSessionId: sessionId]);
831+
832+ // Execute the method
833+ MPKitExecStatus *status = [self .kitInstance setSessionId: sessionId];
834+
835+ // Verify
836+ XCTAssertNotNil (status);
837+ XCTAssertEqual (status.returnCode , MPKitReturnCodeSuccess);
838+ OCMVerifyAll (mockRoktSDK);
839+
840+ [mockRoktSDK stopMocking ];
841+ }
842+
843+ #pragma mark - getSessionId tests
844+
845+ - (void )testGetSessionIdReturnsSessionIdFromRoktSDK {
846+ id mockRoktSDK = OCMClassMock ([Rokt class ]);
847+
848+ NSString *expectedSessionId = @" mock-session-id-67890" ;
849+
850+ // Stub Rokt getSessionId to return the expected session ID
851+ OCMStub ([mockRoktSDK getSessionId ]).andReturn (expectedSessionId);
852+
853+ // Execute the method
854+ NSString *result = [self .kitInstance getSessionId ];
855+
856+ // Verify
857+ XCTAssertEqualObjects (result, expectedSessionId, @" Should return the session id from the Rokt SDK" );
858+
859+ [mockRoktSDK stopMocking ];
860+ }
861+
862+ - (void )testGetSessionIdReturnsNilWhenRoktSDKReturnsNil {
863+ id mockRoktSDK = OCMClassMock ([Rokt class ]);
864+
865+ // Stub Rokt getSessionId to return nil
866+ OCMStub ([mockRoktSDK getSessionId ]).andReturn (nil );
867+
868+ // Execute the method
869+ NSString *result = [self .kitInstance getSessionId ];
870+
871+ // Verify
872+ XCTAssertNil (result, @" Should return nil when Rokt SDK returns nil" );
873+
874+ [mockRoktSDK stopMocking ];
875+ }
876+
799877@end
0 commit comments