public Task<JSchema> GetSchemaFromTemplateAsync(TemplateInfo template) { // TODO: use async var type = _modelTypeRepository.GetModelTypeFromTemplate(template); var schemaGenerator = new JSchemaGenerator(); return Task.FromResult(schemaGenerator.Generate(type)); }
public void ReadAsDecimalFailure() { ExceptionAssert.Throws<JSchemaException>(() => { JSchema s = new JSchemaGenerator().Generate(typeof(decimal)); s.MultipleOf = 1; JsonReader reader = new JSchemaValidatingReader(new JsonTextReader(new StringReader(@"5.5"))) { Schema = s }; reader.ReadAsDecimal(); }, "Float 5.5 is not a multiple of 1. Path '', line 1, position 3."); }
public void ReadAsDecimal() { JSchema s = new JSchemaGenerator().Generate(typeof(decimal)); JsonReader reader = new JSchemaValidatingReader(new JsonTextReader(new StringReader(@"1.5"))) { Schema = s }; decimal? d = reader.ReadAsDecimal(); Assert.AreEqual(1.5m, d); }
public void ReadAsInt32Failure() { ExceptionAssert.Throws<JSchemaException>(() => { JSchema s = new JSchemaGenerator().Generate(typeof(int)); s.Maximum = 2; JsonReader reader = new JSchemaValidatingReader(new JsonTextReader(new StringReader(@"5"))) { Schema = s }; reader.ReadAsInt32(); }, "Integer 5 exceeds maximum value of 2. Path '', line 1, position 1."); }
public void ReadAsInt32() { JSchema s = new JSchemaGenerator().Generate(typeof(int)); JsonReader reader = new JSchemaValidatingReader(new JsonTextReader(new StringReader(@"1"))) { Schema = s }; int? i = reader.ReadAsInt32(); Assert.AreEqual(1, i); }
public void ReadAsBytes() { JSchema s = new JSchemaGenerator().Generate(typeof(byte[])); byte[] data = Encoding.UTF8.GetBytes("Hello world"); JsonReader reader = new JSchemaValidatingReader(new JsonTextReader(new StringReader(@"""" + Convert.ToBase64String(data) + @""""))) { Schema = s }; byte[] bytes = reader.ReadAsBytes(); CollectionAssert.AreEquivalent(data, bytes); }
private static JSchema GetSchema(Type type) { JSchemaGenerator generator = new JSchemaGenerator(); JSchema schema = generator.Generate(type); // I didn't find the way how to disallow JSchemaGenerator to use nullable types, swagger doesn't work with them string tmp = schema.ToString(); string s = @"\""type\"":[\s\n\r]*\[[\s\n\r]*\""(\w+)\"",[\s\n\r]*\""null\""[\s\n\r]*\]"; tmp = Regex.Replace(tmp, s, "\"type\": \"$1\""); return JSchema.Parse(tmp); }