public void RegisterNewUserUserTest() { var user = new User("username", "password"); var registerTask = _repo.RegisterAsync(user); registerTask.Wait(); Assert.AreEqual(registerTask.Result, user); }
public void FindUserTest() { var user = new User("username", "password"); var registerTask = _repo.RegisterAsync(user); registerTask.Wait(); Assert.AreEqual(registerTask.Result, user); var taskFind = _repo.FindAsync("username", "password"); taskFind.Wait(); Assert.AreEqual(user, taskFind.Result); }
public void UsernameMustBeUniqueTest() { var user1 = new User("username", "password"); var user2 = new User("username", "password"); var registerTask = _repo.RegisterAsync(user1); registerTask.Wait(); Assert.AreEqual(registerTask.Result, user1); registerTask = _repo.RegisterAsync(user2); registerTask.Wait(); Assert.Fail("Second user shouldn't be created due tu duplicate username"); }
public void FullResetRepositoryTest() { var user = new User("username", "password"); var task = _repo.RegisterAsync(user); task.Wait(); Assert.AreEqual(task.Result, user); var resetTask = _repo.FullResetAsync(); resetTask.Wait(); var findtask = _repo.FindAsync(); task.Wait(); Assert.AreEqual(0, findtask.Result.Count()); }
public Task<User> RegisterAsync(User user) { Func<User> registerFunc = delegate() { lock (_userCollection) { if (user != null) { try { var writeConcernResult = _userCollection.Insert(user); if (writeConcernResult.Ok) { return user; } } catch (MongoDB.Driver.MongoDuplicateKeyException exception) { throw new InvalidUserDataException("User has duplicate data", exception as Exception); } } return null; } }; return Task.Factory.StartNew(registerFunc); }
public Task<User> UpdateAsync(string id, User userUpdates) { Func<User> updateUser = delegate { var user = Find(id); user.UserName = userUpdates.UserName; user.Password = userUpdates.Password; var writeConcernResult = _userCollection.Save(user); if (writeConcernResult.Ok) { return user; } return null; }; return Task.Factory.StartNew(updateUser); }
public bool Equals(User other) { if (ReferenceEquals(null, other)) return false; if (ReferenceEquals(this, other)) return true; return string.Equals(UserName, other.UserName) && string.Equals(Password, other.Password); }
public void UpdateUserTest() { var user = new User("username", "password"); var registerTask = _repo.RegisterAsync(user); registerTask.Wait(); Assert.AreEqual(registerTask.Result, user); var updatedUser = new User("newusername", "newpassword"); var updateTask = _repo.UpdateAsync(user.ID, updatedUser); updateTask.Wait(); var taskFind = _repo.FindAsync(user.ID); taskFind.Wait(); Assert.AreEqual(taskFind.Result, updatedUser); }