Skip to content

Commit

Permalink
Updating unit tests for setExternalUserId change
Browse files Browse the repository at this point in the history
Now that setExternalUserId's put request is called after registerUser the unit tests need to be updated.
  • Loading branch information
emawby committed Apr 23, 2021
1 parent 968654a commit 10a3d52
Showing 1 changed file with 11 additions and 10 deletions.
21 changes: 11 additions & 10 deletions iOS_SDK/OneSignalSDK/UnitTests/UnitTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -2323,9 +2323,9 @@ - (void)testSetExternalUserIdWithRegistration {
[OneSignal setExternalUserId:TEST_EXTERNAL_USER_ID];

[UnitTestCommonMethods initOneSignal_andThreadWait];

XCTAssertEqualObjects(OneSignalClientOverrider.lastHTTPRequest[@"external_user_id"], TEST_EXTERNAL_USER_ID);
XCTAssertEqualObjects(OneSignalClientOverrider.lastHTTPRequestType, NSStringFromClass([OSRequestRegisterUser class]));
let registerUserRequest = OneSignalClientOverrider.executedRequests[1];
XCTAssertEqualObjects(registerUserRequest.parameters[@"external_user_id"], TEST_EXTERNAL_USER_ID);
XCTAssertEqualObjects(NSStringFromClass([registerUserRequest class]), NSStringFromClass([OSRequestRegisterUser class]));
}

- (void)testSetExternalUserIdAfterRegistration {
Expand Down Expand Up @@ -2354,33 +2354,33 @@ - (void)testRemoveExternalUserId {
}

// Tests to make sure that the SDK will not send an external ID if it already successfully sent the same ID
- (void)testDoesntSendExistingExternalUserIdAfterRegistration {
- (void)testDoesSendExistingExternalUserIdAfterRegistration {
[OneSignal setExternalUserId:TEST_EXTERNAL_USER_ID];

[UnitTestCommonMethods initOneSignal_andThreadWait];

XCTAssertEqualObjects(OneSignalClientOverrider.lastHTTPRequestType, NSStringFromClass([OSRequestRegisterUser class]));
XCTAssertEqualObjects(OneSignalClientOverrider.lastHTTPRequestType, NSStringFromClass([OSRequestUpdateExternalUserId class]));

[OneSignal setExternalUserId:TEST_EXTERNAL_USER_ID];

// the PUT request to set external ID should not happen since the external ID
// is the same as it was during registration
XCTAssertEqualObjects(OneSignalClientOverrider.lastHTTPRequestType, NSStringFromClass([OSRequestRegisterUser class]));
XCTAssertEqualObjects(OneSignalClientOverrider.lastHTTPRequestType, NSStringFromClass([OSRequestUpdateExternalUserId class]));
}

- (void)testDoesntSendExistingExternalUserIdBeforeRegistration {
- (void)testDoesSendExistingExternalUserIdBeforeRegistration {
//mimics a previous session where the external user ID was set
[OneSignalUserDefaults.initStandard saveStringForKey:OSUD_EXTERNAL_USER_ID withValue:TEST_EXTERNAL_USER_ID];

[OneSignal setExternalUserId:TEST_EXTERNAL_USER_ID];

[UnitTestCommonMethods initOneSignal_andThreadWait];

XCTAssertEqualObjects(OneSignalClientOverrider.lastHTTPRequestType, NSStringFromClass([OSRequestRegisterUser class]));
XCTAssertEqualObjects(OneSignalClientOverrider.lastHTTPRequestType, NSStringFromClass([OSRequestUpdateExternalUserId class]));

// the registration request should not have included external user ID
// since it had been set already to the same value in a previous session
XCTAssertNil(OneSignalClientOverrider.lastHTTPRequest[@"external_user_id"]);
XCTAssertEqualObjects(OneSignalClientOverrider.lastHTTPRequest[@"external_user_id"], TEST_EXTERNAL_USER_ID);
}

- (void)testSetExternalUserId_forPush_withCompletion {
Expand Down Expand Up @@ -2441,13 +2441,14 @@ - (void)testSetExternalUserId_WithAuthToken_forPush_withCompletion_beforRegister

// 2. Init OneSignal
[UnitTestCommonMethods initOneSignal_andThreadWait];
[UnitTestCommonMethods runBackgroundThreads];

// 3. Make sure only push external id was attempted to be set since no email was set yet
XCTAssertEqual(self.CALLBACK_EXTERNAL_USER_ID, TEST_EXTERNAL_USER_ID);
XCTAssertNil(self.CALLBACK_EMAIL_EXTERNAL_USER_ID);

// 3. Make sure last request was external id and had the correct external id being used in the request payload
XCTAssertEqualObjects(OneSignalClientOverrider.lastHTTPRequestType, NSStringFromClass([OSRequestRegisterUser class]));
XCTAssertEqualObjects(OneSignalClientOverrider.lastHTTPRequestType, NSStringFromClass([OSRequestUpdateExternalUserId class]));
XCTAssertEqualObjects(OneSignalClientOverrider.lastHTTPRequest[@"external_user_id"], TEST_EXTERNAL_USER_ID);
XCTAssertEqualObjects(OneSignalClientOverrider.lastHTTPRequest[@"external_user_id_auth_hash"], TEST_EXTERNAL_USER_ID_HASH_TOKEN);
}
Expand Down

0 comments on commit 10a3d52

Please sign in to comment.