public void Should_throw_exception_if_menu_item_does_not_exist() { _command = new RemoveMenuItem { MenuId = _menu.Id, MenuItemId = Guid.NewGuid() }; _validatorMock.Setup(x => x.Validate(_command)).Returns(new ValidationResult()); Assert.Throws <Exception>(() => _menu.RemoveMenuItem(_command, _validatorMock.Object)); }
public void Should_have_validation_error_when_site_id_is_empty() { var command = new RemoveMenuItem { SiteId = Guid.Empty }; var siteRulesMock = new Mock <ISiteRules>(); var validator = new RemoveMenuItemValidator(siteRulesMock.Object); validator.ShouldHaveValidationErrorFor(x => x.SiteId, command); }
public void Setup() { _menu = new Menu(); var addMenuItemCommand = new AddMenuItem { SiteId = Guid.NewGuid(), MenuId = Guid.NewGuid(), MenuItemId = Guid.NewGuid(), Type = MenuItemType.Link, PageId = Guid.NewGuid(), Link = "link", Text = "Text", Title = "Title", MenuItemLocalisations = new List <MenuItemLocalisation> { new MenuItemLocalisation { LanguageId = Guid.NewGuid(), Text = "Text 1", Title = "Title 1" }, new MenuItemLocalisation { LanguageId = Guid.NewGuid(), Text = "Text 2", Title = "Title 2" } } }; var addMenuItemValidatorMock = new Mock <IValidator <AddMenuItem> >(); addMenuItemValidatorMock.Setup(x => x.Validate(addMenuItemCommand)).Returns(new ValidationResult()); _menu.AddMenuItem(addMenuItemCommand, addMenuItemValidatorMock.Object); _command = new RemoveMenuItem { MenuId = _menu.Id, MenuItemId = addMenuItemCommand.MenuItemId }; _validatorMock = new Mock <IValidator <RemoveMenuItem> >(); _validatorMock.Setup(x => x.Validate(_command)).Returns(new ValidationResult()); _menu.RemoveMenuItem(_command, _validatorMock.Object); _event = _menu.Events.OfType <MenuItemRemoved>().SingleOrDefault(); }
public void Should_have_validation_error_when_site_does_not_exist() { var command = new RemoveMenuItem { SiteId = Guid.NewGuid() }; var siteRulesMock = new Mock <ISiteRules>(); siteRulesMock.Setup(x => x.DoesSiteExist(command.SiteId)).Returns(false); var validator = new RemoveMenuItemValidator(siteRulesMock.Object); validator.ShouldHaveValidationErrorFor(x => x.SiteId, command); }
public void Should_throw_exception_if_menu_not_found() { var command = new RemoveMenuItem { MenuId = Guid.NewGuid() }; var menuRepositoryMock = new Mock <IMenuRepository>(); menuRepositoryMock.Setup(x => x.GetById(command.MenuId)).Returns((Menu)null); var validatorMock = new Mock <IValidator <RemoveMenuItem> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult()); var handler = new RemoveMenuItemHandler(menuRepositoryMock.Object, validatorMock.Object); Assert.Throws <Exception>(() => handler.Handle(command)); }
public void RemoveMenuItem(RemoveMenuItem cmd, IValidator <RemoveMenuItem> validator) { validator.ValidateCommand(cmd); var menuItemToRemove = MenuItems.FirstOrDefault(x => x.Id == cmd.MenuItemId); if (menuItemToRemove == null || menuItemToRemove.Status == MenuItemStatus.Deleted) { throw new Exception("Menu item to remove not found."); } AddEvent(new MenuItemRemoved { SiteId = SiteId, AggregateRootId = Id, Name = Name, MenuItemId = menuItemToRemove.Id }); }
public void Should_update_menu_when_remove_menu_item() { var createMenuCommand = new CreateMenu { SiteId = Guid.NewGuid(), Id = Guid.NewGuid(), Name = "My Menu" }; var createMenuValidatorMock = new Mock <IValidator <CreateMenu> >(); createMenuValidatorMock.Setup(x => x.Validate(createMenuCommand)).Returns(new ValidationResult()); var menu = Menu.CreateNew(createMenuCommand, createMenuValidatorMock.Object); var addMenuItemCommand = new AddMenuItem { SiteId = menu.SiteId, MenuId = menu.Id, MenuItemId = Guid.NewGuid(), MenuItemType = MenuItemType.Link, PageId = Guid.NewGuid(), Link = "link", Text = "Text", Title = "Title", MenuItemLocalisations = new List <MenuItemDetails.MenuItemLocalisation> { new MenuItemDetails.MenuItemLocalisation { LanguageId = Guid.NewGuid(), Text = "Text 1", Title = "Title 1" }, new MenuItemDetails.MenuItemLocalisation { LanguageId = Guid.NewGuid(), Text = "Text 2", Title = "Title 2" } } }; var addMenuItemValidatorMock = new Mock <IValidator <AddMenuItem> >(); addMenuItemValidatorMock.Setup(x => x.Validate(addMenuItemCommand)).Returns(new ValidationResult()); menu.AddMenuItem(addMenuItemCommand, addMenuItemValidatorMock.Object); var command = new RemoveMenuItem { MenuId = menu.Id, MenuItemId = menu.MenuItems.FirstOrDefault().Id }; var menuRepositoryMock = new Mock <IMenuRepository>(); menuRepositoryMock.Setup(x => x.GetById(It.IsAny <Guid>())).Returns(menu); menuRepositoryMock.Setup(x => x.Update(It.IsAny <Menu>())); var validatorMock = new Mock <IValidator <RemoveMenuItem> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult()); var createMenuHandler = new RemoveMenuItemHandler(menuRepositoryMock.Object, validatorMock.Object); createMenuHandler.Handle(command); menuRepositoryMock.Verify(x => x.Update(It.IsAny <Menu>())); }