public void CreateUserDALError1Test()
        {
            const string Name = "user";
            const string Email = "*****@*****.**";
            const string Password = "******";
            string message;

            AccountService accountService = new AccountService(_dalContext);
            _dalContext.Expect(x => x.UsersRepository).Return(_usersRepository).Repeat.Once();
            _usersRepository.Expect(x => x.CheckIfUsernameAvailable(Name)).Throw(new DbException("Message"));

            _mockRepository.ReplayAll();
            User actual = accountService.CreateUser(Name, Email, Password, out message);

            Assert.AreEqual(null, actual);
            Assert.AreEqual(AccountService.ErrorDuringUserCreation, message);
            _mockRepository.VerifyAll();
        }
        public void CreateUserDALError3Test()
        {
            const string Name = "user";
            const string Email = "*****@*****.**";
            const string Password = "******";
            string message;

            User userToCreate = new User
            {
                Username = Name,
                Email = Email,
                Password = Password
            };
            userToCreate.Roles.Add(new Role { Name = AccountService.UserDefaultRole });

            AccountService accountService = new AccountService(_dalContext);
            _dalContext.Expect(x => x.UsersRepository).Return(_usersRepository).Repeat.AtLeastOnce();
            _usersRepository.Expect(x => x.CheckIfUsernameAvailable(Name)).Return(true);
            _usersRepository.Expect(x => x.CheckIfEmailAvailable(Email)).Return(true);
            _usersRepository.Expect(x => x.CreateUser(userToCreate)).Throw(new DbException("Error"));

            _mockRepository.ReplayAll();
            User actual = accountService.CreateUser(Name, Email, Password, out message);

            Assert.AreEqual(null, actual);
            Assert.AreEqual(AccountService.ErrorDuringUserCreation, message);
            _mockRepository.VerifyAll();
        }
        public void CreateUserUserExistsTest()
        {
            const string Name = "user";
            const string Email = "*****@*****.**";
            const string Password = "******";
            string message;

            AccountService accountService = new AccountService(_dalContext);
            _dalContext.Expect(x => x.UsersRepository).Return(_usersRepository).Repeat.Once();
            _usersRepository.Expect(x => x.CheckIfUsernameAvailable(Name)).Return(false).Repeat.Once();

            _mockRepository.ReplayAll();
            User actual = accountService.CreateUser(Name, Email, Password, out message);

            Assert.AreEqual(null, actual);
            Assert.AreEqual(AccountService.UserNameIsAlreadyTaken, message);
            _mockRepository.VerifyAll();
        }