예제 #1
0
        /// <summary>
        /// Validate the OData Uri using an ODataUrlValidator.
        /// </summary>
        /// <param name="validator">The ODataUrlValidator used to validate the OData Uri.</param>
        /// <param name="validationMessages">The collection of validation messages found during validation.</param>
        /// <returns>True if validation messages are discovered during validation, otherwise false.</returns>
        public bool Validate(ODataUrlValidator validator, out IEnumerable <ODataUrlValidationMessage> validationMessages)
        {
            if (this.Model != validator.Model)
            {
                throw new ODataException(Strings.UriValidator_ValidatorMustUseSameModelAsParser);
            }

            return(validator.ValidateUrl(this.ParseUri(), out validationMessages));
        }
예제 #2
0
        public static void MustUseSameModel()
        {
            const string request = @"company";

            IEdmModel model  = CreateModel();
            IEdmModel model2 = CreateModel();

            ODataUrlValidator validator = new ODataUrlValidator(model2, ODataUrlValidationRuleSet.AllRules);
            ODataUriParser    parser    = new ODataUriParser(model, new Uri(request, UriKind.Relative));

            Action validate = () =>
            {
                IEnumerable <ODataUrlValidationMessage> errors;
                parser.Validate(validator, out errors);
            };

            validate.Throws <ODataException>(Strings.UriValidator_ValidatorMustUseSameModelAsParser);
        }
예제 #3
0
        public static void PassingValidatorSucceeds()
        {
            const string request = @"company";

            IEdmModel model = CreateModel();

            ODataUrlValidator validator = new ODataUrlValidator(model, dummyRuleset);
            ODataUriParser    parser    = new ODataUriParser(model, new Uri(request, UriKind.Relative));
            IEnumerable <ODataUrlValidationMessage> errors;

            parser.Validate(validator, out errors);
            Assert.Collection <ODataUrlValidationMessage>(errors, (error) =>
            {
                Assert.Equal("dummyCode", error.MessageCode);
                Assert.Equal("dummyMessage", error.Message);
                Assert.Equal(OData.UriParser.Validation.Severity.Warning, error.Severity);
            });
        }
예제 #4
0
        /// <summary>
        /// Validate the OData Uri using a specified set of rules.
        /// </summary>
        /// <param name="rules">The set of rules to use in validating the OData Uri.</param>
        /// <param name="validationMessages">The collection of validation messages found during validation.</param>
        /// <returns>True if validation messages are discovered during validation, otherwise false.</returns>
        public bool Validate(ODataUrlValidationRuleSet rules, out IEnumerable <ODataUrlValidationMessage> validationMessages)
        {
            ODataUrlValidator validator = new ODataUrlValidator(this.Model, rules);

            return(validator.ValidateUrl(this.ParseUri(), out validationMessages));
        }