public async Task <IActionResult> AdminLogin([FromBody] AdminCredentialsDTO adminCredentialsDTO) { if (adminCredentialsDTO == null) { return(BadRequest(PearUp.Constants.CommonErrorMessages.Request_Is_Not_Valid)); } var result = await _authenticationService.AuthenticateAdmin(adminCredentialsDTO.EmailId, adminCredentialsDTO.Password); if (!result.IsSuccessed) { return(BadRequest(result.GetErrorString())); } var token = CreateAdminToken(result.Value); if (!token.IsSuccessed) { return(BadRequest(token.GetErrorString())); } return(Ok(CommonEntities.Result.Ok(new AdminAuthDto { PearAdmin = result.Value, Token = token.Value }))); }
public async Task AdminLogin_Should_Return_AuthenticationToken_When_Credentials_Are_Valid() { var userServiceMock = new Mock <IPearUpAuthenticationService>(); var adminLoginDTO = new AdminCredentialsDTO { EmailId = "*****@*****.**", Password = "******" }; userServiceMock.Setup(us => us.AuthenticateAdmin(adminLoginDTO.EmailId, adminLoginDTO.Password)).ReturnsAsync(Result.Ok(admin)); var tokenProviderMock = new Mock <ITokenProvider>(); var authTokenMock = new Mock <IAuthToken>(); authTokenMock.Setup(a => a.Value).Returns(VALID_AUTH_TOKEN); tokenProviderMock.Setup(tp => tp.CreateToken(It.IsAny <TokenInfo>(), It.IsAny <bool>())).Returns(Result.Ok(authTokenMock.Object)); var controller = new AuthenticationController(userServiceMock.Object, tokenProviderMock.Object); var actualResult = await controller.AdminLogin(adminLoginDTO); Assert.IsAssignableFrom <OkObjectResult>(actualResult); var contentResult = actualResult as OkObjectResult; Assert.AreEqual(200, contentResult.StatusCode.Value); var actualValue = contentResult.Value as Result <AdminAuthDto>; Assert.IsTrue(actualValue.IsSuccessed); }
public async Task AdminLogin_Should_Return_ErrorMessage_When_Credentials_Are_Empty() { var userServiceMock = new Mock <IPearUpAuthenticationService>(); var failureResult = Result.Fail <Admin>(Constants.UserErrorMessages.EmailAddress_And_Password_Are_Required); userServiceMock.Setup(us => us.AuthenticateAdmin(It.IsAny <string>(), It.IsAny <string>())) .ReturnsAsync(failureResult); var controller = new AuthenticationController(userServiceMock.Object, null); var adminLoginDTO = new AdminCredentialsDTO { EmailId = "", Password = "" }; var actualResult = await controller.AdminLogin(adminLoginDTO); Assert.IsAssignableFrom <BadRequestObjectResult>(actualResult); var contentResult = actualResult as BadRequestObjectResult; var actualValue = contentResult.Value as string; Assert.AreEqual(400, contentResult.StatusCode.Value); Assert.AreEqual(Constants.UserErrorMessages.EmailAddress_And_Password_Are_Required, actualValue); }