public AccountControllerTests()
 {
     apiClient = A.Fake<IWeeeClient>();
     unauthenticatedUserClient = A.Fake<IUnauthenticatedUser>();
     weeeAuthorization = A.Fake<IWeeeAuthorization>();
     externalRouteService = A.Fake<IExternalRouteService>();
 }
Пример #2
0
 public AccountControllerTests()
 {
     apiClient = A.Fake <IWeeeClient>();
     oauthClientCredentialClient = A.Fake <IOAuthClientCredentialClient>();
     unauthenticatedUserClient   = A.Fake <IUnauthenticatedUser>();
     weeeAuthorization           = A.Fake <IWeeeAuthorization>();
     externalRouteService        = A.Fake <IExternalRouteService>();
 }
Пример #3
0
        public async void HttpPost_ResetPassword_ModelIsValid_AndAuthorizationSuccessful_ReturnsPasswordResetCompleteView()
        {
            // Arrange
            IUnauthenticatedUser unauthenticatedUserClient = A.Fake <IUnauthenticatedUser>();

            A.CallTo(() => unauthenticatedUserClient.ResetPasswordAsync(A <PasswordResetData> ._, A <string> ._))
            .Returns(true);

            A.CallTo(() => apiClient.User)
            .Returns(unauthenticatedUserClient);

            // Act
            ActionResult result = await AccountController().ResetPassword(A.Dummy <Guid>(), A.Dummy <string>(), new ResetPasswordModel());

            // Assert
            ViewResult viewResult = result as ViewResult;

            Assert.NotNull(viewResult);

            Assert.Equal("ResetPasswordComplete", viewResult.ViewName);
        }
Пример #4
0
        public async void HttpPost_ResetPassword_ModelIsValid_PasswordResetThrowsApiBadRequestExceptionWithModelErrors_ReturnsViewWithModel_AndErrorAddedToModelState()
        {
            // Arrange
            Dictionary <string, ICollection <string> > modelState = new Dictionary <string, ICollection <string> >
            {
                {
                    "A Key", new List <string>
                    {
                        "Something wen't wrong"
                    }
                }
            };

            ApiBadRequestException badRequestException = new ApiBadRequestException(HttpStatusCode.BadRequest, new ApiBadRequest
            {
                ModelState = modelState
            });

            IUnauthenticatedUser unauthenticatedUserClient = A.Fake <IUnauthenticatedUser>();

            A.CallTo(() => unauthenticatedUserClient.ResetPasswordAsync(A <PasswordResetData> ._, A <string> ._))
            .Throws(badRequestException);

            A.CallTo(() => apiClient.User)
            .Returns(unauthenticatedUserClient);

            AccountController controller = AccountController();

            ResetPasswordModel passwordResetModel = new ResetPasswordModel();

            // Act
            ActionResult result = await controller.ResetPassword(A.Dummy <Guid>(), A.Dummy <string>(), passwordResetModel);

            // Assert
            Assert.IsType <ViewResult>(result);
            Assert.Equal(passwordResetModel, ((ViewResult)result).Model);
            Assert.Single(controller.ModelState.Values);
            Assert.Single(controller.ModelState.Values.Single().Errors);
            Assert.Contains("Something wen't wrong", controller.ModelState.Values.Single().Errors.Single().ErrorMessage);
        }
Пример #5
0
        public async void HttpPost_ResetPassword_ModelIsValid_CallsApiToResetPassword()
        {
            // Arrange
            IUnauthenticatedUser unauthenticatedUserClient = A.Fake <IUnauthenticatedUser>();

            A.CallTo(() => unauthenticatedUserClient.ResetPasswordAsync(A <PasswordResetData> ._, A <string> ._))
            .Returns(true);

            A.CallTo(() => weeeAuthorization.SignIn(A <string> ._, A <string> ._, A <bool> ._))
            .Returns(LoginResult.Success("dshjkal", A.Dummy <ActionResult>()));

            A.CallTo(() => apiClient.User)
            .Returns(unauthenticatedUserClient);

            var passwordResetModel = new ResetPasswordModel();

            // Act
            ActionResult result = await AccountController().ResetPassword(A.Dummy <Guid>(), A.Dummy <string>(), passwordResetModel);

            // Assert
            A.CallTo(() => unauthenticatedUserClient.ResetPasswordAsync(A <PasswordResetData> ._, A <string> ._))
            .MustHaveHappened(Repeated.Exactly.Once);
        }
Пример #6
0
        public async void HttpPost_AdminAccountActivationRequired_IfUserResendsActivationEmail_ShouldSendActivationEmail()
        {
            // Arrange
            IUnauthenticatedUser user = A.Fake <IUnauthenticatedUser>();

            A.CallTo(() => apiClient.User).Returns(user);

            ClaimsIdentity identity = new ClaimsIdentity();

            identity.AddClaim(new Claim(OidcConstants.TokenTypes.AccessToken, "accessToken"));

            A.CallTo(() => authenticationManager.User).Returns(new ClaimsPrincipal(identity));
            A.CallTo(() => externalRouteService.ActivateInternalUserAccountUrl).Returns("activationBaseUrl");

            FormCollection formCollection = new FormCollection();

            // Act
            await AccountController().AdminAccountActivationRequired(formCollection);

            // Assert
            A.CallTo(() => user.ResendActivationEmail("accessToken", "activationBaseUrl"))
            .MustHaveHappened(Repeated.Exactly.Once);
        }