Пример #1
0
        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);
        }