コード例 #1
0
        public void CanDeleteUserUsingId()
        {
            var store = Global.GetInMemoryStore();

            // Setup
            var user = GetGenericUser();
            UserRepository userRepository = new UserRepository(store);

            // Act
            userRepository.SaveUser(user);

            // Assert
            using (var session = store.OpenSession())
            {

                User savedUser = session.Load<User>(user.Id);

                Assert.IsNotNull(savedUser);

                userRepository.DeleteUser(user.Id);
            }

            using (var session = store.OpenSession())
            {
                User deletedUser = session.Load<User>(user.Id);

                Assert.IsNull(deletedUser);
            }
        }
コード例 #2
0
        public void EmailsMustBeUnique()
        {
            var store = Global.GetInMemoryStore();

            // Setup
            User user1 = GetGenericUser();
            User user2 = GetGenericUser();

            UserRepository userRepository = new UserRepository(store);

            // Act
            userRepository.SaveUser(user1);
            userRepository.SaveUser(user2);

            // Assert
        }
コード例 #3
0
        public void PasswordGetsHashed()
        {
            var store = Global.GetInMemoryStore();

            // Setup
            User user = GetGenericUser();

            string hashedPassword = Convert.ToBase64String(MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(user.Password)));

            UserRepository userRepository = new UserRepository(store);

            // Act
            userRepository.SaveUser(user);

            // Assert
            using (var session = store.OpenSession())
            {

                User savedUser = session.Load<User>(user.Id);

                Assert.IsNotNull(savedUser);
                Assert.AreEqual(hashedPassword, savedUser.Password);
            }
        }
コード例 #4
0
        public void SaveUserReturnsUserId()
        {
            // Setup
            IDocumentStore store = Global.GetInMemoryStore();
            UserRepository repository = new UserRepository(store);

            User user = new User() { Email = "email", Password = "******" };

            // Act
            repository.SaveUser(user);

            // Assert
            Assert.IsNotNullOrEmpty(user.Id);
        }
コード例 #5
0
        public void GetUserByIdThrowExceptionOnNull()
        {
            var store = Global.GetInMemoryStore();

            // Setup
            var repository = new UserRepository(store);

            // Act
            repository.GetUserById("");
        }
コード例 #6
0
        public void GetUserByIdReturnsUser()
        {
            var store = Global.GetInMemoryStore();

            // Setup
            var repository = new UserRepository(store);

            User user = GetGenericUser();

            repository.SaveUser(user);

            User queryUser = new User()
            {
                Email = "*****@*****.**",
                Password = "******"
            };

            repository.SaveUser(queryUser);

            string userId = queryUser.Id;

            user = GetGenericUser();
            user.Email = "*****@*****.**";

            repository.SaveUser(user);

            // Act
            var result = repository.GetUserById(userId);

            //Assert
            Assert.IsNotNull(result.User);
            Assert.AreEqual(result.User.Email, queryUser.Email);
            Assert.AreEqual(result.User.Password, queryUser.Password);
        }
コード例 #7
0
        public void GetUserByIdReturnsErrorCodeIfEmailDoesntExist()
        {
            // Setup
            IDocumentStore store = Global.GetInMemoryStore();
            UserRepository repository = new UserRepository(store);

            // Act
            var result = repository.GetUserById("not here");

            // Assert
            Assert.AreEqual(result.UserCode, UserErrorCode.UserNotFoundInRepository);
            Assert.IsNull(result.User);
        }
コード例 #8
0
        public void GetUserByEmailReturnsUser()
        {
            // Setup
            IDocumentStore store = Global.GetInMemoryStore();

            using (var session = store.OpenSession())
            {
                var user = new User() { Email = "email", Password = "******" };
                session.Store(user);
                session.SaveChanges();

                RavenQueryStatistics stats;
                var results = session.Query<User>()
                    .Statistics(out stats)
                    .Customize(x => x.WaitForNonStaleResults())
                    .Where(u => u.Email == "email")
                    .ToArray();

            }

            UserRepository repository = new UserRepository(store);

            // Act
            var result = repository.GetUserByEmail("email");

            // Assert
            Assert.AreEqual(result.UserCode, UserErrorCode.Success);
            Assert.IsNotNull(result.User);
        }
コード例 #9
0
        public void EmptyUserIdThrowsExceptionOnDelete()
        {
            var store = Global.GetInMemoryStore();

            // Setup
            UserRepository userRepository = new UserRepository(store);

            // Act
            userRepository.DeleteUser("");
        }