Example #1
0
        public async Task Return_Token_After_Authenticated_User_Successfully()
        {
            var options = DbContextHelper.GetTestInMemoryDatabase(nameof(Return_Token_After_Authenticated_User_Successfully));

            var password     = "******";
            var passwordHash = Guid.NewGuid().ToString();

            using (var context = new NoteTakerContext(options, httpContextAccessor.Object))
            {
                context.Users.Add(new User("JohnSmith", "John", "Smith", passwordHash));
                context.SaveChanges();
            }

            using (var context = new NoteTakerContext(options, httpContextAccessor.Object))
            {
                passwordHashingService.Setup(x => x.VerifyPassword(It.Is <string>(y => y.Equals(password)),
                                                                   It.Is <string>(y => y.Equals(passwordHash)))).Returns(true).Verifiable();

                tokenService.Setup(x => x.GetToken(It.IsAny <string>(), It.IsAny <string>())).Returns(Guid.NewGuid().ToString).Verifiable();

                var usersService = new UsersService(context, logger, passwordHashingService.Object, tokenService.Object);

                var authenticatedUser = await usersService.AuthenticateAsync("JohnSmith", password);

                authenticatedUser.Should().NotBeNull();
                authenticatedUser.Token.Should().NotBeNull();

                passwordHashingService.Verify();
                tokenService.Verify();
            }
        }
Example #2
0
        public async Task Return_Null_After_Failed_Authentication()
        {
            var options = DbContextHelper.GetTestInMemoryDatabase(nameof(Return_Null_After_Failed_Authentication));

            using (var context = new NoteTakerContext(options, httpContextAccessor.Object))
            {
                context.Users.Add(new User("JohnSmith", "John", "Smith", Guid.NewGuid().ToString()));
                context.SaveChanges();
            }

            using (var context = new NoteTakerContext(options, httpContextAccessor.Object))
            {
                passwordHashingService.Setup(x => x.VerifyPassword(It.IsAny <string>(), It.IsAny <string>())).Returns(false).Verifiable();

                var usersService = new UsersService(context, logger, passwordHashingService.Object, tokenService.Object);

                var authenticatedUser = await usersService.AuthenticateAsync("JohnSmith", "Apples");

                authenticatedUser.Should().BeNull();

                passwordHashingService.Verify();
            }
        }