public void Should_validate_command_and_save_new_theme() { var command = new UpdateThemeDetails { Id = Guid.NewGuid(), Name = "Name", Description = "Description", Folder = "Folder" }; var themeRepositoryMock = new Mock <IThemeRepository>(); themeRepositoryMock.Setup(x => x.GetById(command.Id)).Returns(new Theme()); themeRepositoryMock.Setup(x => x.Update(It.IsAny <Theme>())); var validatorMock = new Mock <IValidator <UpdateThemeDetails> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult()); var createThemeHandler = new UpdateThemeDetailsHandler(themeRepositoryMock.Object, validatorMock.Object); createThemeHandler.Handle(command); validatorMock.Verify(x => x.Validate(command)); themeRepositoryMock.Verify(x => x.Update(It.IsAny <Theme>())); }
public void UpdateDetails(UpdateThemeDetails cmd, IValidator <UpdateThemeDetails> validator) { validator.ValidateCommand(cmd); AddEvent(new ThemeDetailsUpdated { AggregateRootId = Id, Name = cmd.Name, Description = cmd.Description, Folder = cmd.Folder }); }
public void Setup() { _command = new UpdateThemeDetails { Id = Guid.NewGuid(), Name = "Name", Description = "Description", Folder = "folder" }; _validatorMock = new Mock <IValidator <UpdateThemeDetails> >(); _validatorMock.Setup(x => x.Validate(_command)).Returns(new ValidationResult()); _theme = new Theme(); _theme.UpdateDetails(_command, _validatorMock.Object); _event = _theme.Events.OfType <ThemeDetailsUpdated>().SingleOrDefault(); }
public void Should_throw_exception_when_theme_is_not_found() { var command = new UpdateThemeDetails { Id = Guid.NewGuid(), Name = "Name", Description = "Description", Folder = "Folder" }; var themeRepositoryMock = new Mock <IThemeRepository>(); themeRepositoryMock.Setup(x => x.GetById(command.Id)).Returns((Theme)null); var validatorMock = new Mock <IValidator <UpdateThemeDetails> >(); var createThemeHandler = new UpdateThemeDetailsHandler(themeRepositoryMock.Object, validatorMock.Object); Assert.Throws <Exception>(() => createThemeHandler.Handle(command)); }
public void Should_throw_validation_exception_when_validation_fails() { var command = new UpdateThemeDetails { Id = Guid.NewGuid(), Name = "Name", Description = "Description", Folder = "Folder" }; var themeRepositoryMock = new Mock <IThemeRepository>(); themeRepositoryMock.Setup(x => x.GetById(command.Id)).Returns(new Theme()); var validatorMock = new Mock <IValidator <UpdateThemeDetails> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult(new List <ValidationFailure> { new ValidationFailure("Name", "Name Error") })); var createThemeHandler = new UpdateThemeDetailsHandler(themeRepositoryMock.Object, validatorMock.Object); Assert.Throws <Exception>(() => createThemeHandler.Handle(command)); }
public async Task <IActionResult> UpdateDetails([FromBody] UpdateThemeDetails model) { await Task.Run(() => _commandSender.Send <UpdateThemeDetails, Theme>(model)); return(new NoContentResult()); }
public IActionResult UpdateDetails([FromBody] UpdateThemeDetails model) { _commandSender.Send <UpdateThemeDetails, Theme>(model); return(new NoContentResult()); }
public IActionResult Update(UpdateThemeDetails model) { _dispatcher.SendAndPublish <UpdateThemeDetails, Theme>(model); return(new NoContentResult()); }