public void Has_Correct_Type() { var name = "EPSG:31370"; var crs = new NamedCRS(name); Assert.AreEqual(CRSType.Name, crs.Type); }
public void Equals_GetHashCode_Contract() { var name = "EPSG:31370"; var left = new NamedCRS(name); var right = new NamedCRS(name); Assert.AreEqual(left, right); Assert.IsTrue(left == right); Assert.IsTrue(right == left); Assert.IsTrue(left.Equals(right)); Assert.IsTrue(right.Equals(left)); Assert.IsTrue(left.Equals(left)); Assert.IsTrue(right.Equals(right)); Assert.AreEqual(left.GetHashCode(), right.GetHashCode()); name = "EPSG:25832"; right = new NamedCRS(name); Assert.AreNotEqual(left, right); Assert.IsFalse(left == right); Assert.IsFalse(right == left); Assert.IsFalse(left.Equals(right)); Assert.IsFalse(right.Equals(left)); Assert.AreNotEqual(left.GetHashCode(), right.GetHashCode()); }
public void Has_Name_Property_With_Name() { var name = "EPSG:31370"; var crs = new NamedCRS(name); Assert.IsTrue(crs.Properties.ContainsKey("name")); Assert.AreEqual(name, crs.Properties["name"]); }
/// <summary> /// Reads the JSON representation of the object. /// </summary> /// <param name="reader">The <see cref="T:Newtonsoft.Json.JsonReader" /> to read from.</param> /// <param name="objectType">Type of the object.</param> /// <param name="existingValue">The existing value of object being read.</param> /// <param name="serializer">The calling serializer.</param> /// <returns> /// The object value. /// </returns> /// <exception cref="Newtonsoft.Json.JsonReaderException"> /// CRS must be null or a json object /// or /// CRS must have a "type" property /// </exception> public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (reader.TokenType == JsonToken.Null) { return new UnspecifiedCRS(); } if (reader.TokenType != JsonToken.StartObject) { throw new JsonReaderException("CRS must be null or a json object"); } var jObject = JObject.Load(reader); JToken token; if (!jObject.TryGetValue("type", StringComparison.OrdinalIgnoreCase, out token)) { throw new JsonReaderException("CRS must have a \"type\" property"); } var crsType = token.Value<string>(); if (string.Equals("name", crsType, StringComparison.OrdinalIgnoreCase)) { JObject properties = null; if (jObject.TryGetValue("properties", out token)) { properties = token as JObject; } if (properties != null) { var target = new NamedCRS(properties["name"].ToString()); serializer.Populate(jObject.CreateReader(), target); return target; } } else if (string.Equals("link", crsType, StringComparison.OrdinalIgnoreCase)) { var linked = new LinkedCRS(string.Empty); serializer.Populate(jObject.CreateReader(), linked); return linked; } return new NotSupportedException(string.Format("Type {0} unexpected.", crsType)); }