From b6f0ec92a850b00e5e1d6da72f11266cc7a79b56 Mon Sep 17 00:00:00 2001 From: Arvind Krishnakumar <61501885+arvindkrishnakumar-okta@users.noreply.github.com> Date: Wed, 17 Jun 2020 11:05:21 -0700 Subject: [PATCH] OKTA-289657: Add Factors API Integration Tests (#391) --- .../com/okta/sdk/tests/it/FactorsIT.groovy | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/integration-tests/src/test/groovy/com/okta/sdk/tests/it/FactorsIT.groovy b/integration-tests/src/test/groovy/com/okta/sdk/tests/it/FactorsIT.groovy index ffd90e13d19..47c816a6859 100644 --- a/integration-tests/src/test/groovy/com/okta/sdk/tests/it/FactorsIT.groovy +++ b/integration-tests/src/test/groovy/com/okta/sdk/tests/it/FactorsIT.groovy @@ -21,17 +21,28 @@ import com.okta.sdk.client.Client import com.okta.sdk.resource.user.User import com.okta.sdk.resource.user.factor.ActivateFactorRequest import com.okta.sdk.resource.user.factor.CallUserFactor +import com.okta.sdk.resource.user.factor.EmailUserFactor +import com.okta.sdk.resource.user.factor.EmailUserFactorProfile import com.okta.sdk.resource.user.factor.FactorProvider import com.okta.sdk.resource.user.factor.FactorStatus +import com.okta.sdk.resource.user.factor.FactorType +import com.okta.sdk.resource.user.factor.HardwareUserFactor +import com.okta.sdk.resource.user.factor.HardwareUserFactorProfile import com.okta.sdk.resource.user.factor.PushUserFactor import com.okta.sdk.resource.user.factor.SecurityQuestionUserFactor import com.okta.sdk.resource.user.factor.SecurityQuestionList import com.okta.sdk.resource.user.factor.SmsUserFactor +import com.okta.sdk.resource.user.factor.TokenUserFactor +import com.okta.sdk.resource.user.factor.TokenUserFactorProfile import com.okta.sdk.resource.user.factor.TotpUserFactor +import com.okta.sdk.resource.user.factor.U2fUserFactor +import com.okta.sdk.resource.user.factor.U2fUserFactorProfile import com.okta.sdk.resource.user.factor.UserFactor import com.okta.sdk.resource.user.factor.UserFactorList import com.okta.sdk.resource.user.factor.VerifyFactorRequest import com.okta.sdk.resource.user.factor.VerifyUserFactorResponse +import com.okta.sdk.resource.user.factor.WebUserFactor +import com.okta.sdk.resource.user.factor.WebUserFactorProfile import com.okta.sdk.tests.it.util.ITSupport import org.jboss.aerogear.security.otp.Totp import org.testng.annotations.Test @@ -178,6 +189,43 @@ class FactorsIT extends ITSupport { assertThat response.getFactorResult(), is(VerifyUserFactorResponse.FactorResultEnum.SUCCESS) } + @Test + void testEmailUserFactor() { + User user = randomUser() + assertThat user.listFactors(), emptyIterable() + + EmailUserFactor emailUserFactor = client.instantiate(EmailUserFactor) + .setFactorType(FactorType.EMAIL) + .setProvider(FactorProvider.OKTA) + .setProfile(client.instantiate(EmailUserFactorProfile) + .setEmail(user.getProfile().getEmail())) + + assertThat emailUserFactor.id, nullValue() + // enroll and activate + assertThat emailUserFactor, sameInstance(user.enrollFactor(emailUserFactor, false, null, null, true)) + assertThat emailUserFactor.getStatus(), is(FactorStatus.ACTIVE) + assertThat emailUserFactor.id, notNullValue() + + VerifyFactorRequest request = client.instantiate(VerifyFactorRequest) + VerifyUserFactorResponse response = emailUserFactor.verify(request, null, null) + assertThat response.getFactorResult(), is(VerifyUserFactorResponse.FactorResultEnum.CHALLENGE) + } + + @Test + void testGoogleTotpUserFactorCreation() { + User user = randomUser() + assertThat user.listFactors(), emptyIterable() + + TokenUserFactor tokenUserFactor = client.instantiate(TokenUserFactor) + .setFactorType(FactorType.TOKEN_SOFTWARE_TOTP) + .setProvider(FactorProvider.GOOGLE) + + assertThat tokenUserFactor.id, nullValue() + assertThat tokenUserFactor, sameInstance(user.enrollFactor(tokenUserFactor)) + assertThat tokenUserFactor.id, notNullValue() + assertThat tokenUserFactor.getStatus(), is(FactorStatus.PENDING_ACTIVATION) + } + @Test void deleteFactorTest() {