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