public void ReadJsonWithArrayWithTwoObjectsTest() { const string json = "{\"test1\":\"value1\",\"test2\": [{ \"innertest1\":\"innervalue1\" }, { \"innertest2\":\"innervalue2\", \"innertest3\":\"innervalue3\"}]}}"; var options = DefaultOptions; var converter = (JsonConverter <IAttributesTable>)GeoJsonConverterFactory.CreateConverter(typeof(IAttributesTable), options); var reader = new Utf8JsonReader(Encoding.UTF8.GetBytes(json)); // read start object token and prepare the next token reader.Read(); var result = converter.Read(ref reader, typeof(IAttributesTable), options); Assert.IsNotNull(result); Assert.AreEqual(2, result.Count); Assert.AreEqual("value1", result["test1"]); Assert.IsNotNull(result["test2"]); Assert.IsInstanceOf <IList <object> >(result["test2"]); var list = (IList <object>)result["test2"]; Assert.IsNotEmpty(list); Assert.AreEqual(2, list.Count); Assert.IsInstanceOf <IAttributesTable>(list[0]); Assert.IsInstanceOf <IAttributesTable>(list[1]); var first = (IAttributesTable)list[0]; Assert.AreEqual(1, first.Count); Assert.AreEqual("innervalue1", first["innertest1"]); var second = (IAttributesTable)list[1]; Assert.AreEqual(2, second.Count); Assert.AreEqual("innervalue2", second["innertest2"]); Assert.AreEqual("innervalue3", second["innertest3"]); }
public void CanConvertTest() { var options = DefaultOptions; var target = (JsonConverter <IFeature>)GeoJsonConverterFactory.CreateConverter(typeof(IFeature), options); var objectType = typeof(IFeature); const bool expected = true; bool actual = target.CanConvert(objectType); Assert.AreEqual(expected, actual); }