public void Should_throw_exception_when_page_is_not_found() { var command = new UpdatePageModuleDetails { SiteId = Guid.NewGuid(), PageId = Guid.NewGuid(), ModuleId = Guid.NewGuid(), Title = "Title", PageModuleLocalisations = new List <PageModuleLocalisation> { new PageModuleLocalisation { LanguageId = Guid.NewGuid(), Title = "Title" }, new PageModuleLocalisation { LanguageId = Guid.NewGuid(), Title = "Title" } } }; var repositoryMock = new Mock <IPageRepository>(); repositoryMock.Setup(x => x.GetById(command.SiteId, command.PageId)).Returns((Page)null); var validatorMock = new Mock <IValidator <UpdatePageModuleDetails> >(); var createPageHandler = new UpdatePageModuleDetailsHandler(repositoryMock.Object, validatorMock.Object); Assert.Throws <Exception>(() => createPageHandler.Handle(command)); }
public void UpdateDetails(UpdatePageModuleDetails cmd) { Title = cmd.Title; InheritPermissions = cmd.InheritPermissions; SetLocalisations(cmd.PageModuleLocalisations); SetPermissions(cmd.PageModulePermissions); }
public void Should_validate_command_and_update_page() { var page = new Page(); var siteId = Guid.NewGuid(); var pageId = Guid.NewGuid(); var moduleId = Guid.NewGuid(); var addPageModuleCommand = new AddPageModule { SiteId = siteId, PageId = pageId, ModuleId = moduleId, PageModuleId = Guid.NewGuid(), Title = "Title", Zone = "Zone" }; var addPageModuleValidatorMock = new Mock <IValidator <AddPageModule> >(); addPageModuleValidatorMock.Setup(x => x.Validate(addPageModuleCommand)).Returns(new ValidationResult()); page.AddModule(addPageModuleCommand, addPageModuleValidatorMock.Object); var command = new UpdatePageModuleDetails { SiteId = siteId, PageId = pageId, ModuleId = moduleId, Title = "New Title", PageModuleLocalisations = new List <PageModuleLocalisation> { new PageModuleLocalisation { LanguageId = Guid.NewGuid(), Title = "Title" }, new PageModuleLocalisation { LanguageId = Guid.NewGuid(), Title = "Title" } } }; var repositoryMock = new Mock <IPageRepository>(); repositoryMock.Setup(x => x.GetById(command.SiteId, command.PageId)).Returns(page); var validatorMock = new Mock <IValidator <UpdatePageModuleDetails> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult()); var createPageHandler = new UpdatePageModuleDetailsHandler(repositoryMock.Object, validatorMock.Object); createPageHandler.Handle(command); validatorMock.Verify(x => x.Validate(command)); repositoryMock.Verify(x => x.Update(page)); }
public void Should_throw_validation_exception_when_validation_fails() { var page = new Page(); var siteId = Guid.NewGuid(); var pageId = Guid.NewGuid(); var moduleId = Guid.NewGuid(); var addPageModuleCommand = new AddPageModule { SiteId = siteId, PageId = pageId, ModuleId = moduleId, PageModuleId = Guid.NewGuid(), Title = "Title", Zone = "Zone" }; var addPageModuleValidatorMock = new Mock <IValidator <AddPageModule> >(); addPageModuleValidatorMock.Setup(x => x.Validate(addPageModuleCommand)).Returns(new ValidationResult()); page.AddModule(addPageModuleCommand, addPageModuleValidatorMock.Object); var command = new UpdatePageModuleDetails { SiteId = siteId, PageId = pageId, ModuleId = moduleId, Title = "New Title", PageModuleLocalisations = new List <PageModuleLocalisation> { new PageModuleLocalisation { LanguageId = Guid.NewGuid(), Title = "Title" }, new PageModuleLocalisation { LanguageId = Guid.NewGuid(), Title = "Title" } } }; var repositoryMock = new Mock <IPageRepository>(); repositoryMock.Setup(x => x.GetById(command.SiteId, command.PageId)).Returns(page); var validatorMock = new Mock <IValidator <UpdatePageModuleDetails> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult(new List <ValidationFailure> { new ValidationFailure("Title", "Title Error") })); var createPageHandler = new UpdatePageModuleDetailsHandler(repositoryMock.Object, validatorMock.Object); Assert.Throws <ValidationException>(() => createPageHandler.Handle(command)); }
public void Setup() { _page = new Page(); var siteId = Guid.NewGuid(); var pageId = Guid.NewGuid(); var moduleId = Guid.NewGuid(); var addPageModuleCommand = new AddPageModule { SiteId = siteId, PageId = pageId, ModuleId = moduleId, PageModuleId = Guid.NewGuid(), Title = "Title", Zone = "Zone" }; var addPageModuleValidatorMock = new Mock <IValidator <AddPageModule> >(); addPageModuleValidatorMock.Setup(x => x.Validate(addPageModuleCommand)).Returns(new ValidationResult()); _page.AddModule(addPageModuleCommand, addPageModuleValidatorMock.Object); _command = new UpdatePageModuleDetails { SiteId = siteId, PageId = pageId, ModuleId = moduleId, Title = "New Title", InheritPermissions = true, PageModuleLocalisations = new List <PageModuleLocalisation> { new PageModuleLocalisation { LanguageId = Guid.NewGuid(), Title = "Title" } }, PageModulePermissions = new List <PageModulePermission> { new PageModulePermission { RoleId = Everyone.Id, Type = PermissionType.View } } }; _validatorMock = new Mock <IValidator <UpdatePageModuleDetails> >(); _validatorMock.Setup(x => x.Validate(_command)).Returns(new ValidationResult()); _page.UpdateModule(_command, _validatorMock.Object); _pageModule = _page.PageModules.FirstOrDefault(x => x.ModuleId == moduleId); _event = _page.Events.OfType <PageModuleDetailsUpdated>().SingleOrDefault(); }
public void Should_have_validation_error_when_site_id_is_empty() { var command = new UpdatePageModuleDetails { SiteId = Guid.Empty }; var siteRulesMock = new Mock <ISiteRules>(); var localisationValidator = new Mock <IValidator <PageModuleLocalisation> >(); var validator = new UpdatePageModuleDetailsValidator(siteRulesMock.Object, localisationValidator.Object); validator.ShouldHaveValidationErrorFor(x => x.SiteId, command); }
public void Should_have_validation_error_when_site_does_not_exist() { var command = new UpdatePageModuleDetails { SiteId = Guid.NewGuid() }; var siteRulesMock = new Mock <ISiteRules>(); siteRulesMock.Setup(x => x.DoesSiteExist(command.SiteId)).Returns(false); var localisationValidator = new Mock <IValidator <PageModuleLocalisation> >(); var validator = new UpdatePageModuleDetailsValidator(siteRulesMock.Object, localisationValidator.Object); validator.ShouldHaveValidationErrorFor(x => x.SiteId, command); }
public void UpdateModule(UpdatePageModuleDetails cmd, IValidator <UpdatePageModuleDetails> validator) { validator.ValidateCommand(cmd); var pageModule = PageModules.FirstOrDefault(x => x.ModuleId == cmd.ModuleId); if (pageModule == null || pageModule.Status == PageModuleStatus.Deleted) { throw new Exception("Page module not found."); } pageModule.UpdateDetails(cmd); AddEvent(new PageModuleDetailsUpdated { SiteId = SiteId, AggregateRootId = Id, PageModule = pageModule }); }
public void UpdateModule(UpdatePageModuleDetails cmd, IValidator <UpdatePageModuleDetails> validator) { validator.ValidateCommand(cmd); var pageModule = PageModules.FirstOrDefault(x => x.ModuleId == cmd.ModuleId); if (pageModule == null || pageModule.Status == PageModuleStatus.Deleted) { throw new Exception("Page module not found."); } AddEvent(new PageModuleDetailsUpdated { AggregateRootId = Id, SiteId = SiteId, PageId = cmd.PageId, PageModuleId = pageModule.Id, Title = cmd.Title, InheritPermissions = cmd.InheritPermissions, PageModuleLocalisations = cmd.PageModuleLocalisations, PageModulePermissions = cmd.PageModulePermissions }); }