public async void Should_Be_Able_To_Return_Session_Information()
        {
            // Arrange
            adminsRepository.Setup(
                obj => obj.FindByEmail("*****@*****.**")
                )
            .ReturnsAsync(new Admin()
            {
                Id        = 1,
                Email     = "*****@*****.**",
                Password  = "******",
                CreatedAt = DateTime.Now,
                UpdatedAt = DateTime.Now,
            });
            passwordHasher.Setup(
                obj => obj.VerifyHashedPassword(
                    It.IsAny <Admin>(),
                    "123456",
                    It.IsAny <string>()
                    )
                )
            .Returns(PasswordVerificationResult.Success);
            configuration.Setup(obj => obj["JWTSecret"])
            .Returns("fedaf7d8863b48e197b9287d492b708e");

            var auth = new LoginViewModel()
            {
                Email    = "*****@*****.**",
                Password = "******"
            };

            // Act
            var response = await adminAuthenticationService.AuthenticateAdmin(auth);

            // Assert
            Assert.Equal(1, response.Id);
            Assert.Equal("*****@*****.**", response.Email);
            Assert.Equal(DateTime.Today.Date, response.ValidFrom.ToLocalTime().Date);
            Assert.Equal(
                DateTime.Today.AddDays(1).Date,
                response.ValidTo.ToLocalTime().Date
                );
        }
Beispiel #2
0
        public async Task <ActionResult <SessionViewModel> > Create(
            [FromBody] LoginViewModel auth
            )
        {
            auth.Validate();

            if (auth.Invalid)
            {
                return(BadRequest(auth.Notifications));
            }

            var session = await adminAuthentication.AuthenticateAdmin(auth);

            var sessionViewModel = mapper.Map <SessionViewModel>(session);

            return(Ok(session));
        }