public void Should_validate_command_and_update_page() { var command = new UpdatePageDetails { SiteId = Guid.NewGuid(), Id = Guid.NewGuid(), Name = "Name", Url = "url", Title = "Title", MetaDescription = "Meta Description", MetaKeywords = "Meta Keywords" }; var repositoryMock = new Mock <IPageRepository>(); repositoryMock.Setup(x => x.GetById(command.SiteId, command.Id)).Returns(new Page()); var validatorMock = new Mock <IValidator <UpdatePageDetails> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult()); var createPageHandler = new UpdatePageDetailsHandler(repositoryMock.Object, validatorMock.Object); createPageHandler.Handle(command); validatorMock.Verify(x => x.Validate(command)); repositoryMock.Verify(x => x.Update(It.IsAny <Page>())); }
public async Task <IActionResult> UpdateDetails([FromBody] UpdatePageDetails model) { model.SiteId = SiteId; await Task.Run(() => _commandSender.Send <UpdatePageDetails, Page>(model)); return(new NoContentResult()); }
public void Should_throw_validation_exception_when_validation_fails() { var command = new UpdatePageDetails { SiteId = Guid.NewGuid(), Id = Guid.NewGuid(), Name = "Name", Url = string.Empty, Title = "Title", MetaDescription = "Meta Description", MetaKeywords = "Meta Keywords" }; var repositoryMock = new Mock <IPageRepository>(); repositoryMock.Setup(x => x.GetById(command.SiteId, command.Id)).Returns(new Page()); var validatorMock = new Mock <IValidator <UpdatePageDetails> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult(new List <ValidationFailure> { new ValidationFailure("Url", "Url Error") })); var createPageHandler = new UpdatePageDetailsHandler(repositoryMock.Object, validatorMock.Object); Assert.Throws <ValidationException>(() => createPageHandler.Handle(command)); }
public void UpdateDetails(UpdatePageDetails cmd, IValidator <UpdatePageDetails> validator) { validator.ValidateCommand(cmd); AddEvent(new PageDetailsUpdated { SiteId = SiteId, AggregateRootId = Id, Name = cmd.Name, Url = cmd.Url, Title = cmd.Title, MetaDescription = cmd.MetaDescription, MetaKeywords = cmd.MetaKeywords, PageLocalisations = cmd.PageLocalisations, PagePermissions = cmd.PagePermissions }); }
public void Setup() { var pageId = Guid.NewGuid(); _command = new UpdatePageDetails { SiteId = Guid.NewGuid(), Id = pageId, Name = "Name", Url = "url", Title = "Title", MetaDescription = "Meta Description", MetaKeywords = "Meta Keywords", PageLocalisations = new List <PageLocalisation> { new PageLocalisation { LanguageId = Guid.NewGuid(), Url = "url", Title = "Title", MetaDescription = "Meta Description", MetaKeywords = "Meta Keywords" } }, PagePermissions = new List <PagePermission> { new PagePermission { RoleId = Guid.NewGuid(), Type = PermissionType.View } } }; _validatorMock = new Mock <IValidator <UpdatePageDetails> >(); _validatorMock.Setup(x => x.Validate(_command)).Returns(new ValidationResult()); _page = new Page(); _page.UpdateDetails(_command, _validatorMock.Object); _event = _page.Events.OfType <PageDetailsUpdated>().SingleOrDefault(); }
public IActionResult UpdateDetails([FromBody] UpdatePageDetails model) { model.SiteId = SiteId; _commandSender.Send<UpdatePageDetails, Page>(model); return new NoContentResult(); }
public IActionResult UpdateDetails([FromBody] UpdatePageDetails model) { model.SiteId = SiteId; _dispatcher.SendAndPublish <UpdatePageDetails, Page>(model); return(new NoContentResult()); }