コード例 #1
0
        private async Task RunHappyPath(Action <HappyPathOptions> setup = null)
        {
            var options = new HappyPathOptions();

            setup?.Invoke(options);

            if (options.CreateUserUsingAdminLogin)
            {
                await LoginUsingAdminCredentials();
            }
            else if (options.CreateUserUsingUserLogin)
            {
                await LoginUsingUserCredentials();
            }

            var response = await CreateNewUser(options.Username,
                                               options.Password,
                                               options.PasswordNeedsResetOnNextLogin,
                                               options.Firstname,
                                               options.Lastname,
                                               options.IsBlocked);

            if (options.RegistrationShouldSucceed)
            {
                response.EnsureSuccessStatusCode();
            }
            else if (options.RegistrationShouldFail)
            {
                response.IsSuccessStatusCode.Should().BeFalse();
                return;
            }

            Logout();

            response = await DoLoginUsingCredentials(options.LoginUsername, options.LoginPassword);

            if (options.LoginAfterRegistrationShouldSucceed)
            {
                response.EnsureSuccessStatusCode();
            }
            else if (options.LoginAfterRegistrationShouldFail)
            {
                response.IsSuccessStatusCode.Should().BeFalse();
            }
        }
コード例 #2
0
        private async Task <LoginViewModel> LoginHappyPath(Action <HappyPathOptions> setup = null, Action <HappyPathOptions> beforeLogin = null)
        {
            var options = new HappyPathOptions();

            setup?.Invoke(options);

            Authentication.WhenUserIsKnown(options.User, options.Pass, options.NeedsPasswordChange, options.IsAdmin);

            beforeLogin?.Invoke(options);

            var vm = await GetSut();

            NavigationAdapter.Should().BeDisplaying <LoginViewModel>();

            Login(vm, options.User, options.Pass);

            return(vm);
        }
コード例 #3
0
        private async Task <PasswordChangeViewModel> RunHappyPath(Action <HappyPathOptions> setup = null,
                                                                  Action <PasswordChangeViewModel> beforeSetFieldValues = null,
                                                                  Action <HappyPathOptions, PasswordChangeViewModel> beforeChangePassword = null)
        {
            var options = new HappyPathOptions();

            setup?.Invoke(options);

            var vm = await GetSut();

            NavigationAdapter.Should().BeDisplaying <PasswordChangeViewModel>();

            beforeSetFieldValues?.Invoke(vm);

            vm.OldPassword        = options.OldPassword;
            vm.NewPassword        = options.NewPassword;
            vm.ConfirmNewPassword = options.ConfirmNewPassword;

            beforeChangePassword?.Invoke(options, vm);

            vm.ChangePasswordCommand.Click();

            return(vm);
        }