public async Task Login_Should_Return_ViewResult_With_Errors_After_Unsuccessful_Credentials_Verification_When_Account_Is_Not_Found() { var localLoginRequest = new LocalLoginRequest { Email = "*****@*****.**", Password = "******", RememberLogin = false, ReturnUrl = "~/" }; var localLoginResultOutputErrors = new Collection <IError> { new Error(AccountErrorCodeEnumeration.NotFound, AccountErrorMessage.NotFound) }; var localLoginResultOutput = LocalLoginResultOutput.Fail(false, localLoginResultOutputErrors); var externalProviders = new List <LocalLoginExternalProviderOutput> { new LocalLoginExternalProviderOutput("google", AuthenticationExtension.GoogleAuthScheme), new LocalLoginExternalProviderOutput("facebook", AuthenticationExtension.FacebookAuthScheme) }; var localLoginOutput = new LocalLoginOutput(true, externalProviders); var expectedLocalLoginViewModel = new LocalLoginViewModel(true, true, true, string.Empty, string.Empty, string.Empty) { ReturnUrl = localLoginRequest.ReturnUrl, Email = localLoginRequest.Email, Password = localLoginRequest.Password, RememberLogin = localLoginRequest.RememberLogin }; var localLoginViewModelErrors = new List <string> { LocalLoginErrorMessage.InvalidCredentials }; expectedLocalLoginViewModel.SetErrors(localLoginViewModelErrors); _localLoginInteractorMock .Setup(x => x.ExecuteAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <bool>(), It.IsAny <string>())).ReturnsAsync(localLoginResultOutput); _localLoginInteractorMock.Setup(x => x.ExecuteAsync(It.IsAny <string>())).ReturnsAsync(localLoginOutput); var result = await _controller.Login(localLoginRequest); var viewResult = result.As <ViewResult>(); viewResult.Model.Should().BeEquivalentTo(expectedLocalLoginViewModel); }
public async Task Login_Should_Return_ViewResult_With_Errors_When_IsInTheContextOfAuthorizationRequest_And_IsNativeClient_Are_False_And_ReturnUrl_Is_Invalid() { var localLoginRequest = new LocalLoginRequest { Email = "*****@*****.**", Password = "******", RememberLogin = false, ReturnUrl = "http://nonEmptyNonLocalUrl.com" }; var localLoginResultOutput = LocalLoginResultOutput.Ok(false, false); var urlHelperMock = new Mock <IUrlHelper>(MockBehavior.Strict); _controller.Url = urlHelperMock.Object; var externalProviders = new List <LocalLoginExternalProviderOutput> { new LocalLoginExternalProviderOutput("google", AuthenticationExtension.GoogleAuthScheme), new LocalLoginExternalProviderOutput("facebook", AuthenticationExtension.FacebookAuthScheme) }; var localLoginOutput = new LocalLoginOutput(true, externalProviders); var expectedLocalLoginViewModel = new LocalLoginViewModel(true, true, true, string.Empty, string.Empty, string.Empty) { ReturnUrl = localLoginRequest.ReturnUrl, Email = localLoginRequest.Email, Password = localLoginRequest.Password, RememberLogin = localLoginRequest.RememberLogin }; var localLoginViewModelErrors = new List <string> { LocalLoginErrorMessage.InvalidReturnUrl }; expectedLocalLoginViewModel.SetErrors(localLoginViewModelErrors); _localLoginInteractorMock .Setup(x => x.ExecuteAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <bool>(), It.IsAny <string>())).ReturnsAsync(localLoginResultOutput); urlHelperMock.Setup(x => x.IsLocalUrl(It.IsAny <string>())).Returns(false); _localLoginInteractorMock.Setup(x => x.ExecuteAsync(It.IsAny <string>())).ReturnsAsync(localLoginOutput); var result = await _controller.Login(localLoginRequest); var viewResult = result.As <ViewResult>(); viewResult.Model.Should().BeEquivalentTo(expectedLocalLoginViewModel); }
public async Task Login_Should_Return_ViewResult_After_Get_Request() { const string returnUrl = "http://returnUrl.com"; var externalProviders = new List <LocalLoginExternalProviderOutput> { new LocalLoginExternalProviderOutput("google", AuthenticationExtension.GoogleAuthScheme), new LocalLoginExternalProviderOutput("facebook", AuthenticationExtension.FacebookAuthScheme) }; var localLoginOutput = new LocalLoginOutput(true, externalProviders); var expectedLocalLoginViewModel = new LocalLoginViewModel(true, true, true, string.Empty, string.Empty, string.Empty) { ReturnUrl = returnUrl }; _localLoginInteractorMock.Setup(x => x.ExecuteAsync(It.IsAny <string>())).ReturnsAsync(localLoginOutput); var result = await _controller.Login(returnUrl); var viewResult = result.As <ViewResult>(); viewResult.Model.Should().BeEquivalentTo(expectedLocalLoginViewModel); }