コード例 #1
0
        public void given_create_user_with_bad_input_should_throw_CreateUserDataNotFoundException()
        {
            // Assemble
            CreateUserInputDTO input = new CreateUserInputDTO();
            UserAggregate      agg;


            // Apply / Assert
            Assert.Throws <CreateUserDataNotFoundException>(() => agg = UserAggregate.CreateNewUser(input));
        }
コード例 #2
0
        public async Task <UserDTO> Handle(CreateSingleUserCommand command)
        {
            var userAgg = UserAggregate.CreateNewUser(command.Input);
            await _session.Add(userAgg);

            await _session.Commit();

            var userDTO = _mapper.Map <UserDTO>(await _session.Get <UserAggregate>(userAgg.Id));

            _email.SendUserCreatedMessage(userDTO);
            return(userDTO);
        }
コード例 #3
0
        public void given_create_user_should_have_user_created_event_with_non_empty_id()
        {
            // Assemble
            CreateUserInputDTO input = new CreateUserInputDTO
            {
                FirstName      = "test",
                LastName       = "testLastName",
                Email          = "testEmail",
                Position       = "testPosition",
                Department     = "testDepartment",
                IsAdmin        = true,
                IsActive       = true,
                PermissionList = new Dictionary <Guid, PermissionDetails>()
            };

            // Apply
            var agg = UserAggregate.CreateNewUser(input);

            // Assert
            var changes = agg.FlushUncommitedChanges();

            Assert.Single(changes);
            Assert.Collection(changes, (e) =>
            {
                Assert.IsType <UserCreatedEvent>(e);
                var @event = (UserCreatedEvent)e;
                Assert.Equal(1, @event.Version);
                Assert.NotEqual(Guid.Empty, @event.Id);

                Assert.Equal(input.FirstName, @event.FirstName);
                Assert.Equal(input.LastName, @event.LastName);
                Assert.Equal(input.Email, @event.Email);
                Assert.Equal(input.Position, @event.Position);
                Assert.Equal(input.Department, @event.Department);
                Assert.True(@event.IsAdmin);
                Assert.True(@event.IsActive);
            });

            Assert.NotEqual(Guid.Empty, agg.Id);
            Assert.Equal(input.FirstName, agg.FirstName);
            Assert.Equal(input.LastName, agg.LastName);
            Assert.Equal(input.Email, agg.Email);
            Assert.Equal(input.Position, agg.Position);
            Assert.Equal(input.Department, agg.Department);
            Assert.True(agg.IsAdmin);
            Assert.True(agg.IsActive);
        }
コード例 #4
0
        public UserAggregate SetupAdminUser()
        {
            var dto = new CreateUserInputDTO
            {
                FirstName  = "test",
                LastName   = "testLastName",
                Email      = "testEmail",
                Position   = "testPosition",
                Department = "testDepartment",
                IsAdmin    = true,
                IsActive   = true,

                PermissionList = new Dictionary <Guid, PermissionDetails>()
            };

            var agg = UserAggregate.CreateNewUser(dto);

            return(agg);
        }
コード例 #5
0
        public static UserAggregate SetupAdminUser()
        {
            var dto = new CreateUserInputDTO
            {
                FirstName  = "Stephen",
                LastName   = "Lomangino",
                Email      = "*****@*****.**",
                Position   = "API Lead",
                Department = "Development",
                IsAdmin    = true,
                IsActive   = true,

                PermissionList = { }
            };

            var agg = UserAggregate.CreateNewUser(dto);

            return(agg);
        }