public void CreateLanguageValidatorReturnsFalseWhenNameIsEmpty()
        {
            IValidator <CreateLanguageRequest> validator = new CreateLanguageValidator();

            var request = new CreateLanguageRequest()
            {
                Name        = "",
                Description = "Description"
            };

            Assert.IsFalse(validator.IsRequestValid(request));
        }
        public void CreateLanguageValidatorReturnsTrueForValidRequest()
        {
            IValidator <CreateLanguageRequest> validator = new CreateLanguageValidator();

            var request = new CreateLanguageRequest()
            {
                Name        = "Name",
                Description = "Description"
            };

            Assert.IsTrue(validator.IsRequestValid(request));
        }
        public void CreateLanguageValidatorReturnsFalseWhenDescriptionIsNull()
        {
            IValidator <CreateLanguageRequest> validator = new CreateLanguageValidator();

            var request = new CreateLanguageRequest()
            {
                Name        = "Name",
                Description = null
            };

            Assert.IsFalse(validator.IsRequestValid(request));
        }
        public void Should_have_validation_error_when_language_name_is_too_short()
        {
            var command = new CreateLanguage
            {
                SiteId      = Guid.NewGuid(),
                Id          = Guid.NewGuid(),
                Name        = "A",
                CultureName = "aa-bb",
                Url         = "url"
            };

            var languageRulesMock = new Mock <ILanguageRules>();
            var siteRulesMock     = new Mock <ISiteRules>();
            var validator         = new CreateLanguageValidator(languageRulesMock.Object, siteRulesMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.Name, command);
        }
        public void Should_have_validation_error_when_site_id_is_empty()
        {
            var command = new CreateLanguage
            {
                SiteId      = Guid.Empty,
                Id          = Guid.NewGuid(),
                Name        = "My Language",
                CultureName = "aa-bb",
                Url         = "url"
            };

            var languageRulesMock = new Mock <ILanguageRules>();
            var siteRulesMock     = new Mock <ISiteRules>();
            var validator         = new CreateLanguageValidator(languageRulesMock.Object, siteRulesMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.SiteId, command);
        }
        public void Should_have_validation_error_when_language_id_already_exists()
        {
            var command = new CreateLanguage
            {
                SiteId      = Guid.NewGuid(),
                Id          = Guid.NewGuid(),
                Name        = "My Language",
                CultureName = "aa-bb",
                Url         = "url"
            };

            var languageRulesMock = new Mock <ILanguageRules>();

            languageRulesMock.Setup(x => x.IsLanguageIdUnique(command.Id)).Returns(false);

            var siteRulesMock = new Mock <ISiteRules>();
            var validator     = new CreateLanguageValidator(languageRulesMock.Object, siteRulesMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.Id, command);
        }
        public void Should_have_validation_error_when_site_does_not_exist()
        {
            var command = new CreateLanguage
            {
                SiteId      = Guid.NewGuid(),
                Id          = Guid.NewGuid(),
                Name        = "My Language",
                CultureName = "aa-bb",
                Url         = "url"
            };

            var languageRulesMock = new Mock <ILanguageRules>();

            var siteRulesMock = new Mock <ISiteRules>();

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

            var validator = new CreateLanguageValidator(languageRulesMock.Object, siteRulesMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.SiteId, command);
        }
        public void Should_have_validation_error_when_url_is_not_valid()
        {
            var command = new CreateLanguage
            {
                SiteId      = Guid.NewGuid(),
                Id          = Guid.NewGuid(),
                Name        = "My Language",
                CultureName = "aa-bb",
                Url         = "a@b"
            };

            var languageRulesMock = new Mock <ILanguageRules>();

            languageRulesMock.Setup(x => x.IsLanguageUrlValid(command.Url)).Returns(false);

            var siteRulesMock = new Mock <ISiteRules>();

            var validator = new CreateLanguageValidator(languageRulesMock.Object, siteRulesMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.Url, command);
        }
        public void Should_have_validation_error_when_culture_name_is_not_unique()
        {
            var command = new CreateLanguage
            {
                SiteId      = Guid.NewGuid(),
                Id          = Guid.NewGuid(),
                Name        = "My Language",
                CultureName = "aa-bb",
                Url         = "url"
            };

            var languageRulesMock = new Mock <ILanguageRules>();

            languageRulesMock.Setup(x => x.IsCultureNameUnique(command.SiteId, command.CultureName, Guid.Empty)).Returns(false);

            var siteRulesMock = new Mock <ISiteRules>();

            var validator = new CreateLanguageValidator(languageRulesMock.Object, siteRulesMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.CultureName, command);
        }
        public void Should_have_validation_error_when_url_is_too_long()
        {
            var url = "";

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

            var command = new CreateLanguage
            {
                SiteId      = Guid.NewGuid(),
                Id          = Guid.NewGuid(),
                Name        = "My Language",
                CultureName = "aa-bb",
                Url         = url
            };

            var languageRulesMock = new Mock <ILanguageRules>();
            var siteRulesMock     = new Mock <ISiteRules>();
            var validator         = new CreateLanguageValidator(languageRulesMock.Object, siteRulesMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.Url, command);
        }