예제 #1
0
        public void Should_have_error_when_page_meta_keywords_is_too_long()
        {
            var pageRulesMock             = new Mock <IPageRules>();
            var siteRulesMock             = new Mock <ISiteRules>();
            var languageRulesMock         = new Mock <ILanguageRules>();
            var localisationValidatorMock = new Mock <IValidator <PageLocalisation> >();
            var validator = new PageDetailsValidator <PageDetails>(pageRulesMock.Object, siteRulesMock.Object, languageRulesMock.Object, localisationValidatorMock.Object);

            var metaKeywords = "";

            for (int i = 0; i < 251; i++)
            {
                metaKeywords += i;
            }

            validator.ShouldHaveValidationErrorFor(x => x.MetaKeywords, new PageDetails
            {
                SiteId          = Guid.NewGuid(),
                Id              = Guid.NewGuid(),
                Name            = "Name",
                Url             = "url",
                Title           = string.Empty,
                MetaDescription = string.Empty,
                MetaKeywords    = metaKeywords
            });
        }
예제 #2
0
        public void Should_have_error_when_page_name_is_too_long()
        {
            var pageRulesMock             = new Mock <IPageRules>();
            var siteRulesMock             = new Mock <ISiteRules>();
            var languageRulesMock         = new Mock <ILanguageRules>();
            var localisationValidatorMock = new Mock <IValidator <PageLocalisation> >();
            var validator = new PageDetailsValidator <PageDetails>(pageRulesMock.Object, siteRulesMock.Object, languageRulesMock.Object, localisationValidatorMock.Object);

            var name = "";

            for (int i = 0; i < 101; i++)
            {
                name += i;
            }

            validator.ShouldHaveValidationErrorFor(x => x.Name, new PageDetails
            {
                SiteId          = Guid.NewGuid(),
                Id              = Guid.NewGuid(),
                Name            = name,
                Url             = "url",
                Title           = "Title",
                MetaDescription = "Meta Description",
                MetaKeywords    = "Meta Keywords"
            });
        }
예제 #3
0
        public void Should_have_error_when_page_url_already_exists()
        {
            Guid         siteId = Guid.NewGuid();
            Guid         pageId = Guid.NewGuid();
            const string url    = "my-url";

            var pageRulesMock = new Mock <IPageRules>();

            pageRulesMock.Setup(x => x.IsPageUrlUnique(siteId, url, pageId)).Returns(false);

            var siteRulesMock             = new Mock <ISiteRules>();
            var languageRulesMock         = new Mock <ILanguageRules>();
            var localisationValidatorMock = new Mock <IValidator <PageLocalisation> >();
            var validator = new PageDetailsValidator <PageDetails>(pageRulesMock.Object, siteRulesMock.Object, languageRulesMock.Object, localisationValidatorMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.Url, new PageDetails
            {
                SiteId          = siteId,
                Id              = pageId,
                Name            = "Name",
                Url             = url,
                Title           = "Title",
                MetaDescription = "Meta Description",
                MetaKeywords    = "Meta Keywords"
            });
        }
예제 #4
0
        public void Should_have_error_when_page_name_is_not_valid()
        {
            Guid         siteId = Guid.NewGuid();
            const string name   = "My@Page";

            var pageRulesMock = new Mock <IPageRules>();

            pageRulesMock.Setup(x => x.IsPageNameValid(name)).Returns(false);

            var siteRulesMock             = new Mock <ISiteRules>();
            var languageRulesMock         = new Mock <ILanguageRules>();
            var localisationValidatorMock = new Mock <IValidator <PageLocalisation> >();
            var validator = new PageDetailsValidator <PageDetails>(pageRulesMock.Object, siteRulesMock.Object, languageRulesMock.Object, localisationValidatorMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.Name, new PageDetails
            {
                SiteId          = siteId,
                Id              = Guid.NewGuid(),
                Name            = name,
                Url             = "url",
                Title           = "Title",
                MetaDescription = "Meta Description",
                MetaKeywords    = "Meta Keywords"
            });
        }
예제 #5
0
        public void Should_have_validation_error_when_site_id_is_empty()
        {
            var command = new PageDetails
            {
                SiteId = Guid.Empty
            };

            var pageRulesMock             = new Mock <IPageRules>();
            var siteRulesMock             = new Mock <ISiteRules>();
            var languageRulesMock         = new Mock <ILanguageRules>();
            var localisationValidatorMock = new Mock <IValidator <PageLocalisation> >();
            var validator = new PageDetailsValidator <PageDetails>(pageRulesMock.Object, siteRulesMock.Object, languageRulesMock.Object, localisationValidatorMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.SiteId, command);
        }
예제 #6
0
        public void Should_have_validation_error_when_site_does_not_exist()
        {
            var command = new PageDetails
            {
                SiteId = Guid.NewGuid()
            };

            var pageRulesMock = new Mock <IPageRules>();
            var siteRulesMock = new Mock <ISiteRules>();

            siteRulesMock.Setup(x => x.DoesSiteExist(command.SiteId)).Returns(false);
            var languageRulesMock         = new Mock <ILanguageRules>();
            var localisationValidatorMock = new Mock <IValidator <PageLocalisation> >();
            var validator = new PageDetailsValidator <PageDetails>(pageRulesMock.Object, siteRulesMock.Object, languageRulesMock.Object, localisationValidatorMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.SiteId, command);
        }
예제 #7
0
        public void Should_have_error_when_localisations_are_missing()
        {
            var pageRulesMock             = new Mock <IPageRules>();
            var siteRulesMock             = new Mock <ISiteRules>();
            var languageRulesMock         = new Mock <ILanguageRules>();
            var localisationValidatorMock = new Mock <IValidator <PageLocalisation> >();

            languageRulesMock.Setup(x => x.AreAllSupportedLanguagesIncluded(It.IsAny <Guid>(), It.IsAny <IEnumerable <Guid> >())).Returns(false);
            var validator = new PageDetailsValidator <PageDetails>(pageRulesMock.Object, siteRulesMock.Object, languageRulesMock.Object, localisationValidatorMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.PageLocalisations, new PageDetails
            {
                SiteId = Guid.NewGuid(),
                Id     = Guid.NewGuid(),
                Name   = "Name",
                Url    = "Url"
            });
        }
예제 #8
0
        public void Should_have_error_when_localised_page_slug_is_not_unique()
        {
            var          pageId = Guid.NewGuid();
            const string slug   = "My@Url";

            var pageRulesMock = new Mock <IPageRules>();

            pageRulesMock.Setup(x => x.IsSlugUnique(Guid.NewGuid(), slug, pageId)).Returns(false);
            var siteRulesMock             = new Mock <ISiteRules>();
            var languageRulesMock         = new Mock <ILanguageRules>();
            var localisationValidatorMock = new Mock <IValidator <PageLocalisation> >();
            var validator = new PageDetailsValidator <PageDetails>(pageRulesMock.Object,
                                                                   siteRulesMock.Object,
                                                                   languageRulesMock.Object,
                                                                   localisationValidatorMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.PageLocalisations, new PageDetails());
        }
예제 #9
0
        public void Should_have_error_when_page_name_is_empty()
        {
            var pageRulesMock             = new Mock <IPageRules>();
            var siteRulesMock             = new Mock <ISiteRules>();
            var languageRulesMock         = new Mock <ILanguageRules>();
            var localisationValidatorMock = new Mock <IValidator <PageLocalisation> >();
            var validator = new PageDetailsValidator <PageDetails>(pageRulesMock.Object, siteRulesMock.Object, languageRulesMock.Object, localisationValidatorMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.Name, new PageDetails
            {
                SiteId          = Guid.NewGuid(),
                Id              = Guid.NewGuid(),
                Name            = string.Empty,
                Url             = "url",
                Title           = "Title",
                MetaDescription = "Meta Description",
                MetaKeywords    = "Meta Keywords"
            });
        }
예제 #10
0
        public void Should_have_error_when_page_url_is_reserved()
        {
            const string url = "admin";

            var pageRulesMock = new Mock <IPageRules>();

            pageRulesMock.Setup(x => x.IsPageUrlReserved(url)).Returns(true);

            var siteRulesMock             = new Mock <ISiteRules>();
            var languageRulesMock         = new Mock <ILanguageRules>();
            var localisationValidatorMock = new Mock <IValidator <PageLocalisation> >();
            var validator = new PageDetailsValidator <PageDetails>(pageRulesMock.Object, siteRulesMock.Object, languageRulesMock.Object, localisationValidatorMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.Url, new PageDetails
            {
                SiteId = Guid.NewGuid(),
                Id     = Guid.NewGuid(),
                Name   = "Name",
                Url    = url
            });
        }
예제 #11
0
        public void Should_have_error_when_page_name_already_exists()
        {
            Guid         siteId = Guid.NewGuid();
            Guid         pageId = Guid.NewGuid();
            const string name   = "My Page";

            var pageRulesMock = new Mock <IPageRules>();

            pageRulesMock.Setup(x => x.IsPageNameUnique(siteId, name, pageId)).Returns(false);

            var siteRulesMock             = new Mock <ISiteRules>();
            var languageRulesMock         = new Mock <ILanguageRules>();
            var localisationValidatorMock = new Mock <IValidator <PageLocalisation> >();
            var validator = new PageDetailsValidator <PageDetails>(pageRulesMock.Object, siteRulesMock.Object, languageRulesMock.Object, localisationValidatorMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.Name, new PageDetails
            {
                SiteId = siteId,
                Id     = pageId,
                Name   = name,
                Url    = "url"
            });
        }