public void Should_throw_exception_when_page_is_not_found() { var command = new RemoveModule { SiteId = Guid.NewGuid(), PageId = Guid.NewGuid(), ModuleId = Guid.NewGuid() }; var moduleRepositoryMock = new Mock <IModuleRepository>(); moduleRepositoryMock.Setup(x => x.Create(It.IsAny <Module>())); var pageRepositoryMock = new Mock <IPageRepository>(); pageRepositoryMock.Setup(x => x.GetById(command.SiteId, command.PageId)).Returns((Page)null); var deleteModuleValidatorMock = new Mock <IValidator <DeleteModule> >(); deleteModuleValidatorMock.Setup(x => x.Validate(It.IsAny <DeleteModule>())).Returns(new ValidationResult()); var removePageModuleValidatorMock = new Mock <IValidator <RemovePageModule> >(); removePageModuleValidatorMock.Setup(x => x.Validate(It.IsAny <RemovePageModule>())).Returns(new ValidationResult()); var removeModuleHandler = new RemoveModuleHandler(moduleRepositoryMock.Object, pageRepositoryMock.Object, deleteModuleValidatorMock.Object, removePageModuleValidatorMock.Object); Assert.Throws <Exception>(() => removeModuleHandler.Handle(command)); }
public void Should_return_two_events_if_module_is_not_used_in_other_pages() { 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(), Zone = "Zone", SortOrder = 1, Title = "Title" }; var addPageModuleValidatoMock = new Mock <IValidator <AddPageModule> >(); addPageModuleValidatoMock.Setup(x => x.Validate(addPageModuleCommand)).Returns(new ValidationResult()); var page = new Page(); page.AddModule(addPageModuleCommand, addPageModuleValidatoMock.Object); page.Events.Clear(); var command = new RemoveModule { SiteId = siteId, PageId = pageId, ModuleId = moduleId }; var moduleRepositoryMock = new Mock <IModuleRepository>(); moduleRepositoryMock.Setup(x => x.GetCountByModuleId(command.ModuleId)).Returns(1); moduleRepositoryMock.Setup(x => x.GetById(command.SiteId, command.ModuleId)).Returns(new Module()); var pageRepositoryMock = new Mock <IPageRepository>(); pageRepositoryMock.Setup(x => x.GetById(command.SiteId, command.PageId)).Returns(page); var deleteModuleValidatorMock = new Mock <IValidator <DeleteModule> >(); deleteModuleValidatorMock.Setup(x => x.Validate(It.IsAny <DeleteModule>())).Returns(new ValidationResult()); var removePageModuleValidatorMock = new Mock <IValidator <RemovePageModule> >(); removePageModuleValidatorMock.Setup(x => x.Validate(It.IsAny <RemovePageModule>())).Returns(new ValidationResult()); var removeModuleHandler = new RemoveModuleHandler(moduleRepositoryMock.Object, pageRepositoryMock.Object, deleteModuleValidatorMock.Object, removePageModuleValidatorMock.Object); var events = removeModuleHandler.Handle(command); var enumerable = events as IList <IEvent> ?? events.ToList(); Assert.AreEqual(typeof(PageModuleRemoved), enumerable.FirstOrDefault().GetType()); Assert.AreEqual(typeof(ModuleDeleted), enumerable.Skip(1).FirstOrDefault().GetType()); }
public void Should_delete_module_if_not_used_in_other_pages() { var command = new RemoveModule { SiteId = Guid.NewGuid(), PageId = Guid.NewGuid(), ModuleId = Guid.NewGuid() }; var deleteModuleValidatorMock = new Mock <IValidator <DeleteModule> >(); deleteModuleValidatorMock.Setup(x => x.Validate(It.IsAny <DeleteModule>())).Returns(new ValidationResult()); var removePageModuleValidatorMock = new Mock <IValidator <RemovePageModule> >(); removePageModuleValidatorMock.Setup(x => x.Validate(It.IsAny <RemovePageModule>())).Returns(new ValidationResult()); var moduleRepositoryMock = new Mock <IModuleRepository>(); moduleRepositoryMock.Setup(x => x.GetCountByModuleId(command.ModuleId)).Returns(1); moduleRepositoryMock.Setup(x => x.GetById(command.SiteId, command.ModuleId)).Returns(new Module()); moduleRepositoryMock.Setup(x => x.Update(It.IsAny <Module>())); var page = PageFactory.Page(command.SiteId, command.PageId, "My Page", Guid.NewGuid(), command.ModuleId); var pageRepositoryMock = new Mock <IPageRepository>(); pageRepositoryMock.Setup(x => x.GetById(command.SiteId, command.PageId)).Returns(page); var removeModuleHandler = new RemoveModuleHandler(moduleRepositoryMock.Object, pageRepositoryMock.Object, deleteModuleValidatorMock.Object, removePageModuleValidatorMock.Object); removeModuleHandler.Handle(command); moduleRepositoryMock.Verify(x => x.Update(It.IsAny <Module>())); }
public void Should_not_delete_module_if_used_in_other_pages() { var siteId = Guid.NewGuid(); var pageId = Guid.NewGuid(); var moduleId = Guid.NewGuid(); var addPageModuleCommand = new AddPageModule { SiteId = siteId, PageId = pageId, ModuleId = moduleId, Id = Guid.NewGuid(), Zone = "Zone", SortOrder = 1, Title = "Title" }; var addPageModuleValidatoMock = new Mock <IValidator <AddPageModule> >(); addPageModuleValidatoMock.Setup(x => x.Validate(addPageModuleCommand)).Returns(new ValidationResult()); var page = new Page(); page.AddModule(addPageModuleCommand, addPageModuleValidatoMock.Object); var command = new RemoveModule { SiteId = siteId, PageId = pageId, ModuleId = moduleId }; var moduleRepositoryMock = new Mock <IModuleRepository>(); moduleRepositoryMock.Setup(x => x.GetCountByModuleId(command.ModuleId)).Returns(2); moduleRepositoryMock.Setup(x => x.Update(It.IsAny <Module>())); var pageRepositoryMock = new Mock <IPageRepository>(); pageRepositoryMock.Setup(x => x.GetById(command.SiteId, command.PageId)).Returns(page); var deleteModuleValidatorMock = new Mock <IValidator <DeleteModule> >(); deleteModuleValidatorMock.Setup(x => x.Validate(It.IsAny <DeleteModule>())).Returns(new ValidationResult()); var removePageModuleValidatorMock = new Mock <IValidator <RemovePageModule> >(); removePageModuleValidatorMock.Setup(x => x.Validate(It.IsAny <RemovePageModule>())).Returns(new ValidationResult()); var removeModuleHandler = new RemoveModuleHandler(moduleRepositoryMock.Object, pageRepositoryMock.Object, deleteModuleValidatorMock.Object, removePageModuleValidatorMock.Object); removeModuleHandler.Handle(command); moduleRepositoryMock.Verify(x => x.Update(It.IsAny <Module>()), Times.Never); }
public void Should_update_page() { var command = new RemoveModule { SiteId = Guid.NewGuid(), PageId = Guid.NewGuid(), ModuleId = Guid.NewGuid() }; var removePageModuleCommand = new RemovePageModule { SiteId = command.SiteId, PageId = command.PageId, ModuleId = command.ModuleId, }; var removePageModuleValidatorMock = new Mock <IValidator <RemovePageModule> >(); removePageModuleValidatorMock.Setup(x => x.Validate(removePageModuleValidatorMock)).Returns(new ValidationResult()); var pageMock = new Mock <Page>(); pageMock.Setup(x => x.RemoveModule(removePageModuleCommand, removePageModuleValidatorMock.Object)); var moduleRepositoryMock = new Mock <IModuleRepository>(); var pageRepositoryMock = new Mock <IPageRepository>(); pageRepositoryMock.Setup(x => x.GetById(command.SiteId, command.PageId)).Returns(pageMock.Object); pageRepositoryMock.Setup(x => x.Update(It.IsAny <Page>())); var deleteModuleValidatorMock = new Mock <IValidator <DeleteModule> >(); deleteModuleValidatorMock.Setup(x => x.Validate(It.IsAny <DeleteModule>())).Returns(new ValidationResult()); var removeModuleHandler = new RemoveModuleHandler(moduleRepositoryMock.Object, pageRepositoryMock.Object, deleteModuleValidatorMock.Object, removePageModuleValidatorMock.Object); removeModuleHandler.Handle(command); pageRepositoryMock.Verify(x => x.Update(It.IsAny <Page>())); }
public void Should_remove_module_from_page() { var command = new RemoveModule { SiteId = Guid.NewGuid(), PageId = Guid.NewGuid(), ModuleId = Guid.NewGuid() }; var page = PageFactory.Page(command.SiteId, command.PageId, "My Page", Guid.NewGuid(), command.ModuleId); var moduleRepositoryMock = new Mock <IModuleRepository>(); moduleRepositoryMock.Setup(x => x.GetById(command.SiteId, command.ModuleId)).Returns(new Module()); var pageRepositoryMock = new Mock <IPageRepository>(); pageRepositoryMock.Setup(x => x.GetById(command.SiteId, command.PageId)).Returns(page); pageRepositoryMock.Setup(x => x.Update(It.IsAny <Page>())); var deleteModuleValidatorMock = new Mock <IValidator <DeleteModule> >(); deleteModuleValidatorMock.Setup(x => x.Validate(It.IsAny <DeleteModule>())).Returns(new ValidationResult()); var removePageModuleValidatorMock = new Mock <IValidator <RemovePageModule> >(); removePageModuleValidatorMock.Setup(x => x.Validate(It.IsAny <RemovePageModule>())).Returns(new ValidationResult()); var removeModuleHandler = new RemoveModuleHandler(moduleRepositoryMock.Object, pageRepositoryMock.Object, deleteModuleValidatorMock.Object, removePageModuleValidatorMock.Object); removeModuleHandler.Handle(command); var @event = page.Events.OfType <PageModuleRemoved>().SingleOrDefault(); Assert.IsNotNull(@event); }