Ejemplo n.º 1
0
        public async Task InvalidPassword_ShouldReturnInvalidPasswordError()
        {
            //Arrange
            IRepository repository      = new InMemoryDbContextFactory().GetDbContext();
            var         myConfiguration = new Dictionary <string, string>
            {
                { "Secret", "SUPERSECRETTESTSTRING" },
            };
            var configuration = new ConfigurationBuilder()
                                .AddInMemoryCollection(myConfiguration)
                                .Build();

            var authorizationProvider = new AuthorizationProvider(repository, configuration);
            var userInDb = new User(new RegisterUserDto
            {
                Email    = "*****@*****.**",
                Name     = "test",
                Password = "******"
            });
            await userInDb.Register(repository);

            var userLogin = new LoginUserDto
            {
                Email    = "*****@*****.**",
                Password = "******"
            };


            //Act
            var result = await authorizationProvider.Authenticate(userLogin);


            //Assert
            Assert.AreEqual(UserErrorMessages.InvalidPassword, result.ErrorMessage);
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Authenticate([FromBody] LoginUserDto loginUserDto)
        {
            var result = await _authorizationProvider.Authenticate(loginUserDto);

            if (result.HasError)
            {
                return(BadRequest(result));
            }

            return(Ok(result));
        }
Ejemplo n.º 3
0
        public async Task ValidPassword_ShouldReturnLoggedInUser()
        {
            //Arrange
            IRepository repository      = new InMemoryDbContextFactory().GetDbContext();
            var         myConfiguration = new Dictionary <string, string>
            {
                { "Secret", "SUPERSECRETTESTSTRING" },
            };
            var configuration = new ConfigurationBuilder()
                                .AddInMemoryCollection(myConfiguration)
                                .Build();

            var authorizationProvider = new AuthorizationProvider(repository, configuration);
            var userInDb = new User(new RegisterUserDto
            {
                Email    = "*****@*****.**",
                Name     = "test",
                Password = "******"
            });
            await userInDb.Register(repository);

            var userLogin = new LoginUserDto
            {
                Email    = "*****@*****.**",
                Password = "******"
            };


            //Act
            var result = await authorizationProvider.Authenticate(userLogin);


            //Assert
            Assert.AreEqual(userInDb.Email, result.Value.Email);
            Assert.AreEqual(userInDb.Role.ToString(), result.Value.Role);
            Assert.IsNotEmpty(result.Value.Token);
        }