示例#1
0
        public void Should_have_validation_error_if_title_is_too_long()
        {
            var title = string.Empty;

            for (int i = 0; i < 101; i++)
            {
                title += i.ToString();
            }

            var updateMenuItem = new MenuItemDetails
            {
                SiteId                = Guid.NewGuid(),
                MenuId                = Guid.NewGuid(),
                MenuItemId            = Guid.NewGuid(),
                MenuItemType          = MenuItemType.Link,
                PageId                = Guid.Empty,
                Link                  = "Link",
                Text                  = "Text",
                Title                 = title,
                MenuItemLocalisations = new List <MenuItemDetails.MenuItemLocalisation>()
            };

            var pageRulesMock             = new Mock <IPageRules>();
            var languageRulesMock         = new Mock <ILanguageRules>();
            var localisationValidatorMock = new Mock <IValidator <MenuItemDetails.MenuItemLocalisation> >();
            var siteRulesMock             = new Mock <ISiteRules>();

            var validator = new MenuItemValidator <MenuItemDetails>(siteRulesMock.Object, pageRulesMock.Object, languageRulesMock.Object, localisationValidatorMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.Title, updateMenuItem);
        }
示例#2
0
        public void Should_have_validation_error_if_page_does_not_exist()
        {
            var updateMenuItem = new MenuItemDetails
            {
                SiteId                = Guid.NewGuid(),
                MenuId                = Guid.NewGuid(),
                MenuItemId            = Guid.NewGuid(),
                MenuItemType          = MenuItemType.Page,
                PageId                = Guid.NewGuid(),
                Link                  = "link",
                Text                  = "Text",
                Title                 = "Title",
                MenuItemLocalisations = new List <MenuItemDetails.MenuItemLocalisation>()
            };

            var pageRulesMock = new Mock <IPageRules>();

            pageRulesMock.Setup(x => x.DoesPageExist(updateMenuItem.SiteId, updateMenuItem.PageId)).Returns(false);

            var languageRulesMock         = new Mock <ILanguageRules>();
            var localisationValidatorMock = new Mock <IValidator <MenuItemDetails.MenuItemLocalisation> >();
            var siteRulesMock             = new Mock <ISiteRules>();

            var validator = new MenuItemValidator <MenuItemDetails>(siteRulesMock.Object, pageRulesMock.Object, languageRulesMock.Object, localisationValidatorMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.PageId, updateMenuItem);
        }
示例#3
0
        public void Should_have_error_when_localisations_are_missing()
        {
            var pageRulesMock     = new Mock <IPageRules>();
            var languageRulesMock = new Mock <ILanguageRules>();

            languageRulesMock.Setup(x => x.AreAllSupportedLanguagesIncluded(It.IsAny <Guid>(), It.IsAny <IEnumerable <Guid> >())).Returns(false);
            var localisationValidatorMock = new Mock <IValidator <MenuItemDetails.MenuItemLocalisation> >();
            var siteRulesMock             = new Mock <ISiteRules>();

            var validator = new MenuItemValidator <MenuItemDetails>(siteRulesMock.Object, pageRulesMock.Object, languageRulesMock.Object, localisationValidatorMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.MenuItemLocalisations, new MenuItemDetails());
        }
示例#4
0
        public void Should_have_validation_error_when_site_id_is_empty()
        {
            var command = new MenuItemDetails
            {
                SiteId = Guid.Empty
            };

            var pageRulesMock             = new Mock <IPageRules>();
            var languageRulesMock         = new Mock <ILanguageRules>();
            var localisationValidatorMock = new Mock <IValidator <MenuItemDetails.MenuItemLocalisation> >();
            var siteRulesMock             = new Mock <ISiteRules>();

            var validator = new MenuItemValidator <MenuItemDetails>(siteRulesMock.Object, pageRulesMock.Object, languageRulesMock.Object, localisationValidatorMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.SiteId, command);
        }
示例#5
0
        public void Should_have_validation_error_when_site_does_not_exist()
        {
            var command = new MenuItemDetails
            {
                SiteId = Guid.NewGuid()
            };

            var siteRulesMock = new Mock <ISiteRules>();

            siteRulesMock.Setup(x => x.DoesSiteExist(command.SiteId)).Returns(false);

            var pageRulesMock             = new Mock <IPageRules>();
            var languageRulesMock         = new Mock <ILanguageRules>();
            var localisationValidatorMock = new Mock <IValidator <MenuItemDetails.MenuItemLocalisation> >();

            var validator = new MenuItemValidator <MenuItemDetails>(siteRulesMock.Object, pageRulesMock.Object, languageRulesMock.Object, localisationValidatorMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.SiteId, command);
        }
示例#6
0
        public void Should_set_localisation_validator_when_validate_add_menu_item_command()
        {
            var updateMenuItem = new MenuItemDetails
            {
                SiteId                = Guid.NewGuid(),
                MenuId                = Guid.NewGuid(),
                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 pageRulesMock             = new Mock <IPageRules>();
            var languageRulesMock         = new Mock <ILanguageRules>();
            var localisationValidatorMock = new Mock <IValidator <MenuItemDetails.MenuItemLocalisation> >();
            var siteRulesMock             = new Mock <ISiteRules>();

            var validator = new MenuItemValidator <MenuItemDetails>(siteRulesMock.Object, pageRulesMock.Object, languageRulesMock.Object, localisationValidatorMock.Object);

            validator.ShouldHaveChildValidator(x => x.MenuItemLocalisations, typeof(MenuItemLocalisationValidator));
        }
示例#7
0
        public void Should_have_validation_error_if_page_id_is_empty()
        {
            var updateMenuItem = new MenuItemDetails
            {
                SiteId                = Guid.NewGuid(),
                MenuId                = Guid.NewGuid(),
                MenuItemId            = Guid.NewGuid(),
                MenuItemType          = MenuItemType.Page,
                PageId                = Guid.Empty,
                Link                  = "link",
                Text                  = "Text",
                Title                 = "Title",
                MenuItemLocalisations = new List <MenuItemDetails.MenuItemLocalisation>()
            };

            var pageRulesMock             = new Mock <IPageRules>();
            var languageRulesMock         = new Mock <ILanguageRules>();
            var localisationValidatorMock = new Mock <IValidator <MenuItemDetails.MenuItemLocalisation> >();
            var siteRulesMock             = new Mock <ISiteRules>();

            var validator = new MenuItemValidator <MenuItemDetails>(siteRulesMock.Object, pageRulesMock.Object, languageRulesMock.Object, localisationValidatorMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.PageId, updateMenuItem);
        }