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);
        }
        public void GetUserByEmailReturnsErrorCodeIfEmailDoesntExist()
        {
            // Setup
            IDocumentStore store = Global.GetInMemoryStore();
            UserRepository repository = new UserRepository(store);

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

            // Assert
            Assert.AreEqual(result.UserCode, UserErrorCode.EmailNotFoundInRepository);
            Assert.IsNull(result.User);
        }