123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- /*
- * Copyright (c) Contributors to the Open 3D Engine Project.
- * For complete copyright and license terms please see the LICENSE at the root of this distribution.
- *
- * SPDX-License-Identifier: Apache-2.0 OR MIT
- *
- */
- #include <AzTest/AzTest.h>
- #include <AzCore/UnitTest/TestTypes.h>
- #include <UserManagement/AWSCognitoUserManagementController.h>
- #include <AWSClientAuthGemMock.h>
- #include <aws/cognito-idp/CognitoIdentityProviderErrors.h>
- class AWSCognitoUserManagementControllerTest
- : public AWSClientAuthUnitTest::AWSClientAuthGemAllocatorFixture
- , public AWSCore::AWSCoreRequestBus::Handler
- {
- protected:
- void SetUp() override
- {
- AWSClientAuthUnitTest::AWSClientAuthGemAllocatorFixture::SetUp();
- m_mockController = AZStd::make_unique<AWSClientAuth::AWSCognitoUserManagementController>();
- AWSCore::AWSCoreRequestBus::Handler::BusConnect();
- }
- void TearDown() override
- {
- AWSCore::AWSCoreRequestBus::Handler::BusDisconnect();
- m_mockController.reset();
- AWSClientAuthUnitTest::AWSClientAuthGemAllocatorFixture::TearDown();
- }
- // AWSCore::AWSCoreRequestBus overrides
- AZ::JobContext* GetDefaultJobContext() override
- {
- return m_jobContext.get();
- }
- // Returns the default client configuration setting to use as a starting point in AWS requests
- AWSCore::AwsApiJobConfig* GetDefaultConfig() override
- {
- return nullptr;
- }
- public:
- AZStd::unique_ptr<AWSClientAuth::AWSCognitoUserManagementController> m_mockController;
- testing::NiceMock<AWSClientAuthUnitTest::AWSResourceMappingRequestBusMock> m_awsResourceMappingRequestBusMock;
- };
- TEST_F(AWSCognitoUserManagementControllerTest, Initialize_Success)
- {
- EXPECT_CALL(m_awsResourceMappingRequestBusMock, GetResourceNameId(testing::_)).Times(1);
- ASSERT_TRUE(m_mockController->Initialize());
- ASSERT_EQ(m_mockController->GetCognitoAppClientId(), AWSClientAuthUnitTest::TEST_RESOURCE_NAME_ID);
- }
- TEST_F(AWSCognitoUserManagementControllerTest, EmailSignUp_Success)
- {
- EXPECT_CALL(*m_cognitoIdentityProviderClientMock, SignUp(testing::_)).Times(1);
- EXPECT_CALL(m_awsCognitoUserManagementNotificationsBusMock, OnEmailSignUpSuccess(testing::_)).Times(1);
- m_mockController->EmailSignUpAsync(AWSClientAuthUnitTest::TEST_USERNAME, AWSClientAuthUnitTest::TEST_PASSWORD, AWSClientAuthUnitTest::TEST_EMAIL);
- }
- TEST_F(AWSCognitoUserManagementControllerTest, EmailSignUp_Fail_SignUpError)
- {
- Aws::Client::AWSError<Aws::CognitoIdentityProvider::CognitoIdentityProviderErrors> error;
- error.SetExceptionName(AWSClientAuthUnitTest::TEST_EXCEPTION);
- Aws::CognitoIdentityProvider::Model::SignUpOutcome outcome(error);
- EXPECT_CALL(*m_cognitoIdentityProviderClientMock, SignUp(testing::_)).Times(1)
- .WillOnce(testing::Return(outcome));
- EXPECT_CALL(m_awsCognitoUserManagementNotificationsBusMock, OnEmailSignUpSuccess(testing::_)).Times(0);
- EXPECT_CALL(m_awsCognitoUserManagementNotificationsBusMock, OnEmailSignUpFail(testing::_)).Times(1);
- m_mockController->EmailSignUpAsync(AWSClientAuthUnitTest::TEST_USERNAME, AWSClientAuthUnitTest::TEST_PASSWORD, AWSClientAuthUnitTest::TEST_EMAIL);
- }
- TEST_F(AWSCognitoUserManagementControllerTest, PhoneSignUp_Success)
- {
- EXPECT_CALL(*m_cognitoIdentityProviderClientMock, SignUp(testing::_)).Times(1);
- EXPECT_CALL(m_awsCognitoUserManagementNotificationsBusMock, OnPhoneSignUpSuccess(testing::_)).Times(1);
- m_mockController->PhoneSignUpAsync(AWSClientAuthUnitTest::TEST_USERNAME, AWSClientAuthUnitTest::TEST_PASSWORD, AWSClientAuthUnitTest::TEST_PHONE);
- }
- TEST_F(AWSCognitoUserManagementControllerTest, PhoneSignUp_Fail_SignUpError)
- {
- Aws::Client::AWSError<Aws::CognitoIdentityProvider::CognitoIdentityProviderErrors> error;
- error.SetExceptionName(AWSClientAuthUnitTest::TEST_EXCEPTION);
- Aws::CognitoIdentityProvider::Model::SignUpOutcome outcome(error);
- EXPECT_CALL(*m_cognitoIdentityProviderClientMock, SignUp(testing::_)).Times(1)
- .WillOnce(testing::Return(outcome));
- EXPECT_CALL(m_awsCognitoUserManagementNotificationsBusMock, OnPhoneSignUpSuccess(testing::_)).Times(0);
- EXPECT_CALL(m_awsCognitoUserManagementNotificationsBusMock, OnPhoneSignUpFail(testing::_)).Times(1);
- m_mockController->PhoneSignUpAsync(AWSClientAuthUnitTest::TEST_USERNAME, AWSClientAuthUnitTest::TEST_PASSWORD, AWSClientAuthUnitTest::TEST_PHONE);
- }
- TEST_F(AWSCognitoUserManagementControllerTest, ConfirmSignUp_Success)
- {
- EXPECT_CALL(*m_cognitoIdentityProviderClientMock, ConfirmSignUp(testing::_)).Times(1);
- EXPECT_CALL(m_awsCognitoUserManagementNotificationsBusMock, OnConfirmSignUpSuccess()).Times(1);
- m_mockController->ConfirmSignUpAsync(AWSClientAuthUnitTest::TEST_USERNAME, AWSClientAuthUnitTest::TEST_CODE);
- }
- TEST_F(AWSCognitoUserManagementControllerTest, ConfirmSignUp_Fail_ConfirmSignUpError)
- {
- Aws::Client::AWSError<Aws::CognitoIdentityProvider::CognitoIdentityProviderErrors> error;
- error.SetExceptionName(AWSClientAuthUnitTest::TEST_EXCEPTION);
- Aws::CognitoIdentityProvider::Model::ConfirmSignUpOutcome outcome(error);
- EXPECT_CALL(*m_cognitoIdentityProviderClientMock, ConfirmSignUp(testing::_)).Times(1)
- .WillOnce(testing::Return(outcome));
- EXPECT_CALL(m_awsCognitoUserManagementNotificationsBusMock, OnConfirmSignUpSuccess()).Times(0);
- EXPECT_CALL(m_awsCognitoUserManagementNotificationsBusMock, OnConfirmSignUpFail(testing::_)).Times(1);
- m_mockController->ConfirmSignUpAsync(AWSClientAuthUnitTest::TEST_USERNAME, AWSClientAuthUnitTest::TEST_CODE);
- }
- TEST_F(AWSCognitoUserManagementControllerTest, EnableMFA_Success)
- {
- EXPECT_CALL(*m_cognitoIdentityProviderClientMock, SetUserMFAPreference(testing::_)).Times(1);
- EXPECT_CALL(m_awsCognitoUserManagementNotificationsBusMock, OnEnableMFASuccess()).Times(1);
- m_mockController->EnableMFAAsync(AWSClientAuthUnitTest::TEST_TOKEN);
- }
- TEST_F(AWSCognitoUserManagementControllerTest, EnableMFA_Fail_SetUserMFAPreferenceError)
- {
- Aws::Client::AWSError<Aws::CognitoIdentityProvider::CognitoIdentityProviderErrors> error;
- error.SetExceptionName(AWSClientAuthUnitTest::TEST_EXCEPTION);
- Aws::CognitoIdentityProvider::Model::SetUserMFAPreferenceOutcome outcome(error);
- EXPECT_CALL(*m_cognitoIdentityProviderClientMock, SetUserMFAPreference(testing::_)).Times(1)
- .WillOnce(testing::Return(outcome));
- EXPECT_CALL(m_awsCognitoUserManagementNotificationsBusMock, OnEnableMFASuccess()).Times(0);
- EXPECT_CALL(m_awsCognitoUserManagementNotificationsBusMock, OnEnableMFAFail(testing::_)).Times(1);
- m_mockController->EnableMFAAsync(AWSClientAuthUnitTest::TEST_TOKEN);
- }
- TEST_F(AWSCognitoUserManagementControllerTest, ForgotPassword_Success)
- {
- EXPECT_CALL(*m_cognitoIdentityProviderClientMock, ForgotPassword(testing::_)).Times(1);
- EXPECT_CALL(m_awsCognitoUserManagementNotificationsBusMock, OnForgotPasswordSuccess()).Times(1);
- m_mockController->ForgotPasswordAsync(AWSClientAuthUnitTest::TEST_USERNAME);
- }
- TEST_F(AWSCognitoUserManagementControllerTest, ForgotPassword_Fail_ForgotPasswordError)
- {
- Aws::Client::AWSError<Aws::CognitoIdentityProvider::CognitoIdentityProviderErrors> error;
- error.SetExceptionName(AWSClientAuthUnitTest::TEST_EXCEPTION);
- Aws::CognitoIdentityProvider::Model::ForgotPasswordOutcome outcome(error);
- EXPECT_CALL(*m_cognitoIdentityProviderClientMock, ForgotPassword(testing::_)).Times(1)
- .WillOnce(testing::Return(outcome));
- EXPECT_CALL(m_awsCognitoUserManagementNotificationsBusMock, OnForgotPasswordSuccess()).Times(0);
- EXPECT_CALL(m_awsCognitoUserManagementNotificationsBusMock, OnForgotPasswordFail(testing::_)).Times(1);
- m_mockController->ForgotPasswordAsync(AWSClientAuthUnitTest::TEST_USERNAME);
- }
- TEST_F(AWSCognitoUserManagementControllerTest, ConfirmForgotPassword_Success)
- {
- EXPECT_CALL(*m_cognitoIdentityProviderClientMock, ConfirmForgotPassword(testing::_)).Times(1);
- EXPECT_CALL(m_awsCognitoUserManagementNotificationsBusMock, OnConfirmForgotPasswordSuccess()).Times(1);
- m_mockController->ConfirmForgotPasswordAsync(AWSClientAuthUnitTest::TEST_USERNAME, AWSClientAuthUnitTest::TEST_CODE, AWSClientAuthUnitTest::TEST_NEW_PASSWORD);
- }
- TEST_F(AWSCognitoUserManagementControllerTest, ConfirmForgotPassword_Fail_ConfirmForgotPasswordError)
- {
- Aws::Client::AWSError<Aws::CognitoIdentityProvider::CognitoIdentityProviderErrors> error;
- error.SetExceptionName("TestException");
- Aws::CognitoIdentityProvider::Model::ConfirmForgotPasswordOutcome outcome(error);
- EXPECT_CALL(*m_cognitoIdentityProviderClientMock, ConfirmForgotPassword(testing::_)).Times(1)
- .WillOnce(testing::Return(outcome));
- EXPECT_CALL(m_awsCognitoUserManagementNotificationsBusMock, OnConfirmForgotPasswordSuccess()).Times(0);
- EXPECT_CALL(m_awsCognitoUserManagementNotificationsBusMock, OnConfirmForgotPasswordFail(testing::_)).Times(1);
- m_mockController->ConfirmForgotPasswordAsync(AWSClientAuthUnitTest::TEST_USERNAME, AWSClientAuthUnitTest::TEST_CODE, AWSClientAuthUnitTest::TEST_NEW_PASSWORD);
- }
- TEST_F(AWSCognitoUserManagementControllerTest, Initialize_Fail_GetResourceNameEmpty)
- {
- EXPECT_CALL(m_awsResourceMappingRequestBusMock, GetResourceNameId(testing::_)).Times(1).WillOnce(testing::Return(""));
- ASSERT_FALSE(m_mockController->Initialize());
- }
|