Esempio n. 1
0
 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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 5
0
        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));
        }
Esempio n. 6
0
        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
            });
        }
Esempio n. 7
0
        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>()));
        }