Skip to content

Commit c724a1a

Browse files
@W-21933885: [MSDK Android] App Attestation Implementation (Add Test Coverage For LoginViewModel Line 473)
1 parent 966c13a commit c724a1a

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

libs/test/SalesforceSDKTest/src/com/salesforce/androidsdk/auth/LoginViewModelTest.kt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ import io.mockk.coVerify
4646
import io.mockk.every
4747
import io.mockk.mockk
4848
import io.mockk.slot
49+
import io.mockk.spyk
4950
import io.mockk.verify
5051
import kotlinx.coroutines.CoroutineScope
5152
import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -730,6 +731,28 @@ class LoginViewModelTest {
730731
}
731732
}
732733

734+
@Test
735+
fun getAuthorizationUrl_WithAppAttestationClient_AddsAttestationToAdditionalParams() = runBlocking {
736+
val appAttestationClient = createMockAppAttestationClient(attestation = TEST_APP_ATTESTATION)
737+
val sdkManagerMock = createSdkManagerMockForAttestation(appAttestationClient = appAttestationClient)
738+
val freshViewModel = LoginViewModel(bootConfig)
739+
740+
// Spy on additionalParameters to verify put is called
741+
val additionalParamsSpy = spyk(freshViewModel.additionalParameters)
742+
freshViewModel.additionalParameters = additionalParamsSpy
743+
744+
freshViewModel.getAuthorizationUrl(TEST_ATTESTATION_SERVER, sdkManagerMock)
745+
746+
// Verify that additionalParams.put(ATTESTATION, attestation) was called on line 473
747+
verify(exactly = 1) {
748+
additionalParamsSpy.put(OAuth2.ATTESTATION, TEST_APP_ATTESTATION)
749+
}
750+
coVerify(exactly = 1) {
751+
appAttestationClient.fetchMobileAppAttestationChallenge()
752+
appAttestationClient.createAppAttestation(appAttestationChallenge = TEST_CHALLENGE_VALUE)
753+
}
754+
}
755+
733756
@Test
734757
fun loginViewModel_applyPendingLoginServer_returns_onNullPendingLoginServer() {
735758

0 commit comments

Comments
 (0)