Пример #1
0
        public void Login_WhenUserNameIsNotInDatabase_ReturnUserDoesntExist()
        {
            string usernameNotInDb = It.IsNotIn(new[] { "meAmnestic" });
            Expression <Func <User, bool> > expression = u => u.Username == usernameNotInDb;

            repository.Setup(repo => repo.Any(It.Is <Expression <Func <User, bool> > >(x => LambdaCompare.Eq(x, expression))))
            .Returns(false);
            repository.Setup(repo => repo.FindBy(It.Is <Expression <Func <User, bool> > >(x => LambdaCompare.Eq(x, expression))))
            .Returns <IQueryable <User> >(null);

            LoginServiceResponse response = loginService.Login(new User()
            {
                Username = usernameNotInDb
            });

            response.Should().Be(LoginServiceResponse.UserDoesntExist);
        }
Пример #2
0
        public void Login_WhenUserIsInDatabaseAndPasswordsMatch_ReturnsLoginSuccessful()
        {
            const string ExplicitPassword = "******";
            const string ExistingUsername = "******";
            string       usernameInDb     = It.IsAny <string>();
            Expression <Func <User, bool> > expression = u => u.Username == usernameInDb;

            byte[]            salt      = cryptographyService.GenerateRandomSalt();
            IQueryable <User> queryable = (new User[] { new User {
                                                            Username = ExistingUsername, Password = Convert.ToBase64String(cryptographyService.GenerateSHA512(ExplicitPassword, salt)), Salt = salt
                                                        } }).AsQueryable();

            repository.Setup(urm => urm.Any(It.IsAny <Expression <Func <User, bool> > >()))
            .Returns(true);
            repository.Setup(repo => repo.FindBy(It.IsAny <Expression <Func <User, bool> > >()))
            .Returns(() => queryable);

            LoginServiceResponse response = loginService.Login(new User()
            {
                Username = ExistingUsername, Password = ExplicitPassword
            });

            response.Should().Be(LoginServiceResponse.LoginSuccessful);
        }
Пример #3
0
        public void Login_WhenUserIsInDatabaseAndPasswordDoesntMatch_ReturnsIncorrectPassword
            (string password)
        {
            const string ExplicitPassword = "******";
            string       usernameInDb     = It.IsAny <string>();
            Expression <Func <User, bool> > expression = u => u.Username == usernameInDb;

            byte[]            salt      = cryptographyService.GenerateRandomSalt();
            IQueryable <User> queryable = (new User[] { new User {
                                                            Username = usernameInDb, Password = Convert.ToBase64String(cryptographyService.GenerateSHA512(ExplicitPassword, salt)), Salt = salt
                                                        } }).AsQueryable();

            repository.Setup(repo => repo.Any(It.IsAny <Expression <Func <User, bool> > >()))
            .Returns(true);
            repository.Setup(repo => repo.FindBy(It.Is <Expression <Func <User, bool> > >(x => LambdaCompare.Eq(x, expression))))
            .Returns(() => queryable);

            LoginServiceResponse response = loginService.Login(new User()
            {
                Username = usernameInDb, Password = password
            });

            response.Should().Be(LoginServiceResponse.IncorrectPassword);
        }