public void Create_InitialJsonObject_AsExpected() { var sb = new StringBuilder(); SaJsonSchema.Create(sb, "test", SaJsonValueType.ObjectArray, new List <string>()); const string expectedJsonString = "{\"$schema\":\"" + SchemaVersion + "\",\"type\":\"object\",\"properties\":{\"test\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{"; Assert.Equal(expectedJsonString, sb.ToString()); }
public static SaJsonSchema Get() { var jsonSchema = SaJsonSchema.Create(new StringBuilder(), SaCommon.ClinvarTag, PrimaryValueType, JsonKeys); jsonSchema.SetNonSaKeys(new [] { "isAlleleSpecific" }); foreach ((string key, var valueType) in JsonKeys.Zip(ValueTypes, (a, b) => (a, b))) { jsonSchema.AddAnnotation(key, SaJsonKeyAnnotation.CreateFromProperties(valueType, 0, null)); } return(jsonSchema); }
public void GetJsonString_DoubleValueHandling_AsExpected() { var jsonSchema = SaJsonSchema.Create(new StringBuilder(), "test", SaJsonValueType.ObjectArray, new List <string> { "allAf", "doubleValue1", "doubleValue2" }); jsonSchema.AddAnnotation("allAf", SaJsonKeyAnnotation.CreateFromProperties(SaJsonValueType.Number, CustomAnnotationCategories.AlleleFrequency, null)); jsonSchema.AddAnnotation("doubleValue1", SaJsonKeyAnnotation.CreateFromProperties(SaJsonValueType.Number, 0, "A double value")); jsonSchema.AddAnnotation("doubleValue2", SaJsonKeyAnnotation.CreateFromProperties(SaJsonValueType.Number, 0, "Another double value")); var jsonString = jsonSchema.GetJsonString(new List <string[]> { new[] { "0.12345678" }, new[] { "0.12" }, new[] { "0.12345678" } }); Assert.Equal("\"allAf\":0.123457,\"doubleValue1\":0.12,\"doubleValue2\":0.12345678", jsonString); }
public void GetJsonString_AsExpected() { var jsonSchema = SaJsonSchema.Create(new StringBuilder(), "test", SaJsonValueType.ObjectArray, new List <string> { "name", "phone", "employed" }); jsonSchema.AddAnnotation("name", SaJsonKeyAnnotation.CreateFromProperties(SaJsonValueType.String, 0, null)); jsonSchema.AddAnnotation("phone", SaJsonKeyAnnotation.CreateFromProperties(SaJsonValueType.Number, 0, "phone number")); jsonSchema.AddAnnotation("employed", SaJsonKeyAnnotation.CreateFromProperties(SaJsonValueType.Bool, 0, null)); var jsonString = jsonSchema.GetJsonString(new List <string[]> { new[] { "Ada" }, new[] { "123456" }, new[] { "true" } }); Assert.Equal("\"name\":\"Ada\",\"phone\":123456,\"employed\":true", jsonString); }
public void ToString_AsExpected() { var jsonSchema = SaJsonSchema.Create(new StringBuilder(), "test", SaJsonValueType.ObjectArray, new List <string> { "name", "phone", "employed" }); jsonSchema.AddAnnotation("name", SaJsonKeyAnnotation.CreateFromProperties(SaJsonValueType.String, 0, null)); jsonSchema.AddAnnotation("phone", SaJsonKeyAnnotation.CreateFromProperties(SaJsonValueType.Number, 0, "phone number")); jsonSchema.AddAnnotation("employed", SaJsonKeyAnnotation.CreateFromProperties(SaJsonValueType.Bool, 0, null)); jsonSchema.TotalItems = 100; jsonSchema.KeyCounts["name"] = 100; jsonSchema.KeyCounts["phone"] = 50; jsonSchema.KeyCounts["employed"] = 0; const string expectedJsonSchemaString = "{\"$schema\":\"" + SchemaVersion + "\",\"type\":\"object\",\"properties\":{\"test\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{" + "\"name\":{\"type\":\"string\"},\"phone\":{\"type\":\"number\",\"description\":\"phone number\"}}," + "\"required\":[\"name\"],\"additionalProperties\":false}}}}"; Assert.Equal(expectedJsonSchemaString, jsonSchema.ToString()); // make sure the returned string is the same when ToString method is called more than once Assert.Equal(expectedJsonSchemaString, jsonSchema.ToString()); }
private void InitiateSchema() { JsonSchema = SaJsonSchema.Create(new StringBuilder(), JsonTag, SaJsonValueType.Object, JsonKeys); }