示例#1
0
        public void GetApiToken_WrongPassword_ReturnedTokenWillBeNull()
        {
            using (var fixture = new FixtureInit("http://localhost"))
            {
                // arrange
                var userRepository = new UsersRepository(fixture.Setup.Context);
                var hashService    = new HashService();

                var service = new ApiService(userRepository, hashService);

                var email        = "*****@*****.**";
                var password     = "******";
                var passwordHash = hashService.CreateMD5Hash(password);
                var apiToken     = hashService.CreateApiToken(email, password);

                userRepository.Save(
                    new User
                {
                    Email        = email,
                    PasswordHash = passwordHash,
                    ApiToken     = apiToken,
                    Temp         = false
                }
                    );

                // act
                var result = service.GetApiToken(email, password + "xx");

                // assert
                Assert.That(result, Is.Null);
            }
        }
示例#2
0
        public void ValidateHash_Length_3()
        {
            // arrange
            var service = new HashService();

            // act
            var hash = service.CreateMD5Hash("password----");

            // assert
            Assert.That(hash.Length, Is.EqualTo(32));
        }
示例#3
0
        public void CreateHash()
        {
            // arrange
            var service = new HashService();

            // act
            var hash = service.CreateMD5Hash("password");

            // assert
            Assert.That(hash, Is.Not.Empty);
        }
示例#4
0
        public void HashValue()
        {
            // arrange
            var service = new HashService();

            // act
            var hash = service.CreateMD5Hash("password");

            // assert
            Assert.That(hash, Is.EqualTo("5f4dcc3b5aa765d61d8327deb882cf99"));
        }
示例#5
0
        public void ValidateHash_False()
        {
            // arrange
            var service = new HashService();

            // act
            var hash   = service.CreateMD5Hash("password");
            var result = service.ValidateMD5Hash("passworda", hash);

            // assert
            Assert.That(result, Is.False);
        }
示例#6
0
        private static void HashAllPasswords(UsersRepository usersRepository, HashService hash)
        {
            foreach (var user in usersRepository.Users.Where(u => u.Temp == false))
            {
                if (string.IsNullOrEmpty(user.PasswordHash))
                {
                    var passwordHash = hash.CreateMD5Hash(user.Password);
                    user.PasswordHash = passwordHash;

                    usersRepository.SaveUser(user);

                    Console.WriteLine(string.Format("Hashed password for {0}", user.Email));
                }
            }
        }
        public void Index_ViewBagContainsUserEmail()
        {
            // arrange
            var tasksRepository = new Mock <ITasksRepository>();
            var usersRepository = new Mock <IUsersRepository>();
            var pathHelper      = new Mock <IPathHelper>();
            var hashService     = new HashService();
            var shareService    = new ShareService(pathHelper.Object, hashService);
            var controller      = new ShareController(shareService, tasksRepository.Object, usersRepository.Object);

            var tasks = new List <Task>
            {
                new Task {
                    Id = 0, UserId = 11, Description = "Task 0"
                },
                new Task {
                    Id = 1, UserId = 11, Description = "Task 1"
                },
                new Task {
                    Id = 2, UserId = 11, Description = "Task 2"
                }
            };

            tasksRepository.Setup(r => r.Tasks).Returns(tasks.AsQueryable());

            var users = new List <User>
            {
                new User {
                    Email = "*****@*****.**", Id = 11
                }
            };

            usersRepository.Setup(u => u.Users).Returns(users.AsQueryable());

            // act
            var email       = "*****@*****.**";
            var correctHash = hashService.CreateMD5Hash(email + "shared_tasks");
            var result      = controller.Index(email, correctHash) as ViewResult;

            // assert
            var emailResult = result.ViewBag.Email as string;

            emailResult.Should().Be(email);
        }
        public void GetUserId_WrongUser()
        {
            // arrange
            var users   = new Mock <IUsersRepository>();
            var forms   = new Mock <IFormsAuthentication>();
            var hash    = new HashService();
            var service = new AuthenticationService(users.Object, forms.Object, hash);

            users.Setup(u => u.Users).Returns(new List <User> {
                new User {
                    Email = "*****@*****.**", PasswordHash = hash.CreateMD5Hash("111"), Id = 1, Temp = false
                }
            }.AsQueryable());

            // act
            var id = service.GetUserIdByEmail("*****@*****.**");

            // assert
            Assert.That(id, Is.EqualTo(0));
        }
        public void FailedAuthentication_WrongPassword()
        {
            // arrange
            var users   = new Mock <IUsersRepository>();
            var forms   = new Mock <IFormsAuthentication>();
            var hash    = new HashService();
            var service = new AuthenticationService(users.Object, forms.Object, hash);

            users.Setup(u => u.Users).Returns(new List <User> {
                new User {
                    Email = "*****@*****.**", PasswordHash = hash.CreateMD5Hash("111"), Id = 1, Temp = false
                }
            }.AsQueryable());
            forms.Setup(f => f.SetAuthCookie("", false)).Throws(new Exception("SetAuthCookie must not be called for failed authentication"));

            // act
            var auth = service.Authenticate("*****@*****.**", "1111");

            // post
            Assert.That(auth, Is.False);
        }
        public void SuccessAuthentication()
        {
            // arrange
            var users   = new Mock <IUsersRepository>();
            var forms   = new Mock <IFormsAuthentication>();
            var hash    = new HashService();
            var service = new AuthenticationService(users.Object, forms.Object, hash);

            users.Setup(u => u.Users).Returns(new List <User> {
                new User {
                    Email = "*****@*****.**", PasswordHash = hash.CreateMD5Hash("111"), Id = 1, Temp = false
                }
            }.AsQueryable());

            // act
            var auth = service.Authenticate("*****@*****.**", "111");

            // post
            Assert.That(auth, Is.True);
            forms.Verify(f => f.SetAuthCookie("*****@*****.**", false));
        }