public void NamedCRSConstructorTest()
 {
     const string name = "testName";
     NamedCRS target = new NamedCRS(name);
     Assert.AreEqual(name, target.Properties["name"]);
     Assert.AreEqual(CRSTypes.Name, target.Type);
 }
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            if (reader.TokenType == JsonToken.Null)
            {
                reader.Read();
                return null;
            }

            if (reader.TokenType != JsonToken.StartObject)
                throw new ArgumentException("Expected token '{' not found.");
            reader.Read();
            if (!(reader.TokenType == JsonToken.PropertyName && (string) reader.Value == "type"))
                throw new ArgumentException("Expected token 'type' not found.");
            reader.Read();
            if (reader.TokenType != JsonToken.String)
                throw new ArgumentException("Expected string value not found.");
            string crsType = (string)reader.Value;
            reader.Read();
            if (!(reader.TokenType == JsonToken.PropertyName && (string) reader.Value == "properties"))
                throw new ArgumentException("Expected token 'properties' not found.");
            reader.Read();
            if (reader.TokenType != JsonToken.StartObject)
                throw new ArgumentException("Expected token '{' not found.");
            Dictionary<string, object> dictionary = serializer.Deserialize<Dictionary<string, object>>(reader);
            CRSBase result = null;
            switch (crsType)
            {
                case "link":
                    object href = dictionary["href"];
                    object type = dictionary["type"];
                    result = new LinkedCRS((string)href, type != null ? (string)type : "");
                    break;
                case "name":
                    object name = dictionary["name"];
                    result = new NamedCRS((string)name);
                    break;
            }
            if (reader.TokenType != JsonToken.EndObject)
                throw new ArgumentException("Expected token '}' not found.");
            reader.Read();
            if (reader.TokenType != JsonToken.EndObject)
                throw new ArgumentException("Expected token '}' not found.");
            reader.Read();
            return result;
        }
Example #3
0
        private NamedCRS ParseNamedCRS()
        {
            AssertRead(JsonToken.PropertyName);
            AssertValue("properties");

            AssertRead(JsonToken.StartObject);

            AssertRead(JsonToken.PropertyName);
            AssertValue("name");

            AssertRead(JsonToken.String);
            var name = (string)Reader.Value;

            AssertRead(JsonToken.EndObject);

            var namedCrs = new NamedCRS(name);
            return namedCrs;
        }