public void GetByLogin_LoginExists() { var userRepository = new UserRepository(_contextFactory); var authenticationRepository = new LoginAuthenticationRepository(_contextFactory); var user = new User { Name = "name", Email = "email" }; var userId = userRepository.Create(user); var initalLoginAuth = new LoginAuthentication { UserId = userId, LoginName = "login", PasswordHash = Enumerable.Range(0, 32).Select(i => (byte)i).ToArray(), Salt = Enumerable.Range(0, 16).Select(i => (byte)i).ToArray() }; authenticationRepository.Save(initalLoginAuth); var restoredLoginAuthentication = authenticationRepository.GetByLogin(initalLoginAuth.LoginName); Assert.NotNull(restoredLoginAuthentication); Assert.AreEqual(initalLoginAuth.UserId, restoredLoginAuthentication.UserId); Assert.AreEqual(initalLoginAuth.LoginName, restoredLoginAuthentication.LoginName); CollectionAssert.AreEqual(initalLoginAuth.Salt, restoredLoginAuthentication.Salt); CollectionAssert.AreEqual(initalLoginAuth.PasswordHash, restoredLoginAuthentication.PasswordHash); }
public void CreateUser_General(long id, string name, string email) { var user = new User {Id = id, Name = name, Email = email}; var repository = new UserRepository(_contextFactory); var userId = repository.Create(user); Assert.Greater(userId, 0); }
public void GetById_UserExists() { var repository = new UserRepository(_contextFactory); var savedUser = new User { Name = "name", Email = "email" }; var userId = repository.Create(savedUser); var retrievedUser = repository.GetById(userId); Assert.IsNotNull(retrievedUser); Assert.AreEqual(userId, retrievedUser.Id); Assert.AreEqual(savedUser.Name, retrievedUser.Name); Assert.AreEqual(savedUser.Email, retrievedUser.Email); }
public long Create(User user) { if (user == null) throw new ArgumentNullException(nameof(user)); if(user.Id != 0) throw new Exception<EntityHasAssignedKey>(); if (user.Name == null) throw new Exception<RequiredFieldNotInitialized>(new RequiredFieldNotInitialized(nameof(user.Name))); if (user.Email == null) throw new Exception<RequiredFieldNotInitialized>(new RequiredFieldNotInitialized(nameof(user.Email))); var context = _contextFactory.GetContext(); var createdUser = context.Users.Add(user); context.SaveChanges(); return createdUser.Id; }
public void GetUser_General(long id) { var user = new User { Id = id, Name = "name", Email = "*****@*****.**" }; var repositoryMock = new Mock<IUserRepository>(); repositoryMock.Setup(repository => repository.GetById(id)).Returns(user); var service = new UserService(repositoryMock.Object); var returnedUser = service.GetUser(id); Assert.AreSame(user, returnedUser); }
public void CreateUser_General(long id, string name, string email) { var repositoryMock = new Mock<IUserRepository>(MockBehavior.Strict); repositoryMock.Setup(repository => repository.Create(It.IsAny<User>())) .Returns(long.MaxValue); var newUser = new User { Id = id, Name = name, Email = email }; var service = new UserService(repositoryMock.Object); var createdUserId = service.CreateUser(newUser); Assert.AreEqual(long.MaxValue, createdUserId); repositoryMock.Verify(repository => repository.Create(newUser)); }
public void Update_IdIsNotZero() { var userRepository = new UserRepository(_contextFactory); var authenticationRepository = new LoginAuthenticationRepository(_contextFactory); //Create user var user = new User { Name = "name", Email = "email" }; var userId1 = userRepository.Create(user); var user2 = new User { Name = "name2", Email = "email2" }; var userId2 = userRepository.Create(user2); //Save first version login authentication record var initialLoginAuthentication = new LoginAuthentication { Id = 0, LoginName = "login", UserId = userId1, PasswordHash = Enumerable.Range(0, 10).Select(i => (byte)i).ToArray(), Salt = Enumerable.Range(0, 10).Select(i => (byte)i).ToArray() }; authenticationRepository.Save(initialLoginAuthentication); //Update login authentication record var updatedLoginAuthentication = authenticationRepository.GetByLogin(initialLoginAuthentication.LoginName); updatedLoginAuthentication.LoginName = "loginUpd"; updatedLoginAuthentication.PasswordHash = Enumerable.Range(0, 10).Select(i => (byte) (i + 1)).ToArray(); updatedLoginAuthentication.Salt = Enumerable.Range(0, 10).Select(i => (byte) (i + 2)).ToArray(); updatedLoginAuthentication.UserId = userId2; authenticationRepository.Update(updatedLoginAuthentication); //Check what's in the DB var storedLoginAuthentication = _contextFactory.GetContext().LoginsAuthentication.First(); Assert.NotNull(storedLoginAuthentication); Assert.AreEqual(updatedLoginAuthentication.UserId, storedLoginAuthentication.UserId); Assert.AreEqual(updatedLoginAuthentication.LoginName, storedLoginAuthentication.LoginName); CollectionAssert.AreEqual(updatedLoginAuthentication.Salt, storedLoginAuthentication.Salt); CollectionAssert.AreEqual(updatedLoginAuthentication.PasswordHash, storedLoginAuthentication.PasswordHash); }
public void Save_IdIsZero() { var userRepository = new UserRepository(_contextFactory); var authenticationRepository = new LoginAuthenticationRepository(_contextFactory); var user = new User { Name = "name", Email = "email" }; var userId = userRepository.Create(user); var loginAuthentication = new LoginAuthentication { Id = 0, LoginName = "login", UserId = userId, PasswordHash = Enumerable.Range(0, 10).Select(i => (byte)i).ToArray(), Salt = Enumerable.Range(0, 10).Select(i => (byte)i).ToArray() }; authenticationRepository.Save(loginAuthentication); var savedLoginAuthentication = _contextFactory.GetContext().LoginsAuthentication.First(); Assert.NotNull(savedLoginAuthentication); Assert.AreEqual(loginAuthentication.UserId, savedLoginAuthentication.UserId); Assert.AreEqual(loginAuthentication.LoginName, savedLoginAuthentication.LoginName); CollectionAssert.AreEqual(loginAuthentication.Salt, savedLoginAuthentication.Salt); CollectionAssert.AreEqual(loginAuthentication.PasswordHash, savedLoginAuthentication.PasswordHash); }