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
            })));
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }