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());

        }
예제 #5
0
        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);
        }
예제 #6
0
        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);
        }
예제 #7
0
 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);
        }