コード例 #1
0
        public void GetUserId_General(string login, string password)
        {
            var repositoryMock = new Mock<ILoginAuthenticationRepository>(MockBehavior.Loose);
            var passwordValidatorMock = new Mock<IPasswordValidator>(MockBehavior.Loose);
            var saltedHashGenerator = new SaltedHashGenerator();

            var service = new LoginAuthenticationService(repositoryMock.Object, passwordValidatorMock.Object, saltedHashGenerator);

            var userId = service.GetUserId(login, password);

            Assert.IsNull(userId);
            repositoryMock.Verify(repository => repository.GetByLogin(login));
        }
コード例 #2
0
        public void GetUserId_CheckPassword(bool loginCorrect, bool passwordCorrect)
        {
            const string login = "******";
            var inputPass = "******";
            var dbPass = passwordCorrect ? inputPass : "******";

            var repositoryMock = new Mock<ILoginAuthenticationRepository>(MockBehavior.Loose);
            var passwordValidatorMock = new Mock<IPasswordValidator>(MockBehavior.Loose);
            var saltedHashGenerator = new SaltedHashGenerator();

            byte[] salt;
            var dbHash = saltedHashGenerator.GenerateSaltedHash(dbPass, out salt, 32);

            var loginAuthentication = new LoginAuthentication
            {
                Id = long.MaxValue - 1,
                UserId = long.MaxValue,
                Salt = salt,
                PasswordHash = dbHash
            };

            repositoryMock.Setup(repository => repository.GetByLogin(login)).Returns(loginCorrect ? loginAuthentication : null);

            var service = new LoginAuthenticationService(repositoryMock.Object, passwordValidatorMock.Object, saltedHashGenerator);
            var userId = service.GetUserId(login, inputPass);

            if (loginCorrect && passwordCorrect)
            {
                Assert.NotNull(userId);
                Assert.AreEqual(loginAuthentication.UserId, userId.Value);
            }
            else
            {
                Assert.IsNull(userId);
            }
        }