Esempio n. 1
0
        public UserCreateCommandHandlerTest()
        {
            // Faker
            _faker = new Faker();

            // Mock
            _userValidationMock          = new Mock <IUserValidation>();
            _userSqlServerRepositoryMock = new Mock <IUserSqlServerRepository>();

            // CommandHandler
            _userCreateCommandHandler = new UserCreateCommandHandler(_userSqlServerRepositoryMock.Object, _userValidationMock.Object);
        }
        public void UserCreateCommandHandler_Handle()
        {
            var permissions = FakeObjects.TestPermissions();
            var roles       = FakeObjects.TestRoles();

            User newUser = null;

            using (var session = _store.OpenSession())
            {
                foreach (var permission in permissions)
                {
                    session.Store(permission);
                }
                foreach (var role in roles)
                {
                    session.Store(role);
                }

                session.SaveChanges();

                var commandHandler = new UserCreateCommandHandler(session);

                commandHandler.Handle(new UserCreateCommand()
                {
                    Email       = FakeValues.Email.PrependWith("new"),
                    Description = FakeValues.Description,
                    FirstName   = FakeValues.FirstName,
                    LastName    = FakeValues.LastName,
                    Password    = FakeValues.Password,
                    Roles       = FakeObjects.TestRoles().Select(x => x.Id)
                });

                session.SaveChanges();

                newUser = session.Query <User>()
                          .Where(x => x.Email == FakeValues.Email.PrependWith("new"))
                          .FirstOrDefault();
            }

            Assert.IsNotNull(newUser);
            Assert.AreEqual(FakeValues.FirstName, newUser.FirstName);
            Assert.AreEqual(FakeValues.LastName, newUser.LastName);
            Assert.AreEqual(FakeValues.Email.PrependWith("new"), newUser.Email);
            Assert.IsTrue(newUser.ValidatePassword(FakeValues.Password));
        }