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(); } }
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); }
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); }