public async Task PropertyExclusiveMinimumDefiniton() { //// Arrange var data = @"{ ""$schema"": ""http://json-schema.org/draft-04/schema#"", ""title"": ""test schema"", ""type"": ""object"", ""required"": [ ""body"" ], ""properties"": { ""body"": { ""$ref"": ""#/definitions/body"" } }, ""definitions"": { ""body"": { ""type"": ""object"", ""additionalProperties"": false, ""properties"": { ""numberContent"": { ""$ref"": ""#/definitions/numberContent"" } } }, ""numberContent"": { ""type"": ""object"", ""additionalProperties"": false, ""properties"": { ""value"": { ""type"": ""number"", ""maximum"": 5.0, ""minimum"": 1.0, ""exclusiveMinimum"" : true } } } } }"; var generator = new SampleJsonDataGenerator(); var schema = await JsonSchema.FromJsonAsync(data); //// Act var testJson = generator.Generate(schema); //// Assert var validationResult = schema.Validate(testJson); Assert.NotNull(validationResult); Assert.Equal(0, validationResult.Count); Assert.Equal(1.1, testJson.SelectToken("body.numberContent.value").Value <double>()); }
public void Default_values_are_set_for_arrays() { //// Arrange var schema = JsonSchema.FromType <Measurements>(); var generator = new SampleJsonDataGenerator(); //// Act var token = generator.Generate(schema); var obj = token as JObject; //// Assert Assert.Equal(new JArray(new int[] { 1, 2, 3 }), obj.GetValue(nameof(Measurements.Weights))); }
public void When_sample_data_is_generated_from_schema_then_properties_are_set() { //// Arrange var schema = JsonSchema.FromType <Person>(); var generator = new SampleJsonDataGenerator(); //// Act var token = generator.Generate(schema); var obj = token as JObject; //// Assert Assert.NotNull(obj.Property(nameof(Person.FirstName))); Assert.NotNull(obj.Property(nameof(Person.LastName))); Assert.NotNull(obj.Property(nameof(Person.MainAddress))); Assert.NotNull(obj.Property(nameof(Person.Addresses))); }
public async Task When_generateOptionalProperties_is_false_then_optional_properties_are_not_set() { //// Arrange var data = @"{ ""$schema"": ""http://json-schema.org/draft-04/schema#"", ""title"": ""test schema"", ""type"": ""object"", ""required"": [ ""isrequired"" ], ""properties"": { ""isrequired"": { ""type"": ""object"", ""properties"": { ""value"": { ""type"": ""integer"" } } }, ""isoptional"": { ""type"": ""object"", ""properties"": { ""value"": { ""type"": ""integer"" } } } } }"; var schema = await JsonSchema.FromJsonAsync(data); var generator = new SampleJsonDataGenerator(new SampleJsonDataGeneratorSettings { GenerateOptionalProperties = false }); //// Act var token = generator.Generate(schema); var obj = token as JObject; //// Assert Assert.NotNull(obj.Property("isrequired")); Assert.Null(obj.Property("isoptional")); }
/// <summary>Creates a <see cref="JsonSchema" /> from sample JSON data.</summary> /// <returns>The JSON Schema.</returns> public JToken ToSampleJson() { var generator = new SampleJsonDataGenerator(); return(generator.Generate(this)); }