public async Task Post_changes_password_if_model_and_password_valid()
        {
            // Given
            var adminUser = Builder <AdminUser> .CreateNew().Build();

            var delegateUser = Builder <DelegateUser> .CreateNew().Build();

            GivenLoggedInUserAccountsAre(adminUser, delegateUser);

            var verifiedUsers = new UserAccountSet(adminUser, new[] { delegateUser });

            GivenPasswordVerificationReturnsUsers(verifiedUsers, "current-password");

            // When
            await authenticatedController.Index(
                new ChangePasswordFormData
            {
                Password        = "******",
                ConfirmPassword = "******",
                CurrentPassword = "******"
            },
                DlsSubApplication.Default
                );

            ThenMustHaveChangedPasswordForUserRefsOnce("new-password", verifiedUsers.GetUserRefs());
        }
コード例 #2
0
        public void Any_returns_false_if_adminUser_null_and_delegateUsers_empty()
        {
            // When
            var result = new UserAccountSet().Any();

            // Then
            result.Should().BeFalse();
        }
コード例 #3
0
        private (AdminLoginDetails?, List <DelegateLoginDetails>) GetLoginDetails(
            UserAccountSet accounts
            )
        {
            var(adminUser, delegateUsers) = accounts;
            var adminLoginDetails    = adminUser != null ? new AdminLoginDetails(adminUser) : null;
            var delegateLoginDetails = delegateUsers.Select(du => new DelegateLoginDetails(du)).ToList();

            return(adminLoginDetails, delegateLoginDetails);
        }
コード例 #4
0
 public LoginResult(
     LoginAttemptResult result,
     AdminUser?adminUser = null,
     List <DelegateUser>?delegateUsers         = null,
     List <CentreUserDetails>?availableCentres = null
     )
 {
     LoginAttemptResult = result;
     Accounts           = new UserAccountSet(adminUser, delegateUsers);
     AvailableCentres   = availableCentres ?? new List <CentreUserDetails>();
 }
コード例 #5
0
        public void Getting_user_refs_succeeds_when_no_delegates()
        {
            // Given
            var adminId      = 234;
            var adminAccount = Builder <AdminUser> .CreateNew().With(user => user.Id = adminId).Build();

            // When
            var userRefs = new UserAccountSet(adminAccount, new DelegateUser[] { }).GetUserRefs();

            // Then
            userRefs.Should().Contain(new UserReference(adminId, UserType.AdminUser));
            userRefs.Count.Should().Be(1);
        }
コード例 #6
0
        public void Any_returns_true_if_delegateUsers_not_empty()
        {
            // Given
            var delegates = new List <DelegateUser> {
                Builder <DelegateUser> .CreateNew().Build()
            };

            // When
            var result = new UserAccountSet(null, delegates).Any();

            // Then
            result.Should().BeTrue();
        }
コード例 #7
0
        public void Any_returns_true_if_adminUser_not_null()
        {
            // Given
            var adminUser = Builder <AdminUser> .CreateNew().Build();

            var delegates = new List <DelegateUser>();

            // When
            var result = new UserAccountSet(adminUser, delegates).Any();

            // Then
            result.Should().BeTrue();
        }
コード例 #8
0
        public void Getting_user_refs_succeeds_when_no_admin()
        {
            // Given
            var delegateIds = new[] { 1, 8, 27, 64 };

            var delegateAccounts = delegateIds.Select(
                id => Builder <DelegateUser> .CreateNew().With(user => user.Id = id).Build()
                );

            // When
            var userRefs = new UserAccountSet(null, delegateAccounts).GetUserRefs();

            // Then
            userRefs.Should().Contain(delegateIds.Select(id => new UserReference(id, UserType.DelegateUser)));
            userRefs.Count.Should().Be(4);
        }
コード例 #9
0
        public void Getting_user_refs_returns_refs_for_exact_users_in_set()
        {
            // Given
            var delegateIds = new[] { 1, 8, 27, 64 };
            var adminId     = 234;

            var adminAccount = Builder <AdminUser> .CreateNew().With(user => user.Id = adminId).Build();

            var delegateAccounts = delegateIds.Select(
                id => Builder <DelegateUser> .CreateNew().With(user => user.Id = id).Build()
                );

            // When
            var userRefs = new UserAccountSet(adminAccount, delegateAccounts).GetUserRefs();

            // Then
            userRefs.Should().Contain(delegateIds.Select(id => new UserReference(id, UserType.DelegateUser)));
            userRefs.Should().Contain(new UserReference(adminId, UserType.AdminUser));
            userRefs.Count.Should().Be(5);
        }
コード例 #10
0
 private void GivenPasswordVerificationReturnsUsers(UserAccountSet users, string password)
 {
     A.CallTo(() => userService.GetVerifiedLinkedUsersAccounts(LoggedInAdminId, LoggedInDelegateId, password))
     .Returns(users);
 }