private static IEnumerable <HttpValidationError> ValidateBody(
            RouteSpecRequestBody body,
            JToken bodyContent,
            string contentType)
        {
            if (body == null)
            {
                yield return(ValidationError.UnexpectedContentType(contentType));

                yield break;
            }

            if (bodyContent == null && body.Required)
            {
                yield return(ValidationError.BodyRequired());

                yield break;
            }

            var schemaErrors = body.Schema.ValidateValue(bodyContent).ToArray();

            if (schemaErrors.Any())
            {
                yield return(ValidationError.InvalidBody(schemaErrors));
            }
        }
Beispiel #2
0
        public void CanInvalidateRequestWithoutRequiredBody()
        {
            var spec = TestData.Petstore.Post("/pets");
            var ctx  = RouteContextBuilder.FromUrl("/pets").WithSpec(spec).Build();

            var actual   = Sut.Validate(ctx);
            var expected = ValidationError.BodyRequired().AsStatus();

            Assert.Equal(expected, actual);
        }