public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var jo = JToken.ReadFrom(reader); var val = jo.ToObject <string>(); return(val == null ? null : UdiRange.Parse(val)); }
public void SerializationTest() { var settings = new JsonSerializerSettings { Converters = new JsonConverter[] { new UdiJsonConverter(), new UdiRangeJsonConverter() } }; var guid = Guid.NewGuid(); var udi = new GuidUdi(Constants.UdiEntityType.AnyGuid, guid); var json = JsonConvert.SerializeObject(udi, settings); Assert.AreEqual(string.Format("\"umb://any-guid/{0:N}\"", guid), json); var dudi = JsonConvert.DeserializeObject <Udi>(json, settings); Assert.AreEqual(Constants.UdiEntityType.AnyGuid, dudi.EntityType); Assert.AreEqual(guid, ((GuidUdi)dudi).Guid); var range = new UdiRange(udi, Constants.DeploySelector.ChildrenOfThis); json = JsonConvert.SerializeObject(range, settings); Assert.AreEqual(string.Format("\"umb://any-guid/{0:N}?children\"", guid), json); var drange = JsonConvert.DeserializeObject <UdiRange>(json, settings); Assert.AreEqual(udi, drange.Udi); Assert.AreEqual(string.Format("umb://any-guid/{0:N}", guid), drange.Udi.UriValue.ToString()); Assert.AreEqual(Constants.DeploySelector.ChildrenOfThis, drange.Selector); }
public void RangeTest() { // can parse open string udi var stringUdiString = "umb://" + Constants.UdiEntityType.AnyString; Assert.IsTrue(UdiParser.TryParse(stringUdiString, out Udi stringUdi)); Assert.AreEqual(string.Empty, ((StringUdi)stringUdi).Id); // can parse open guid udi var guidUdiString = "umb://" + Constants.UdiEntityType.AnyGuid; Assert.IsTrue(UdiParser.TryParse(guidUdiString, out Udi guidUdi)); Assert.AreEqual(Guid.Empty, ((GuidUdi)guidUdi).Guid); // can create a range var range = new UdiRange(stringUdi, Constants.DeploySelector.ChildrenOfThis); // cannot create invalid ranges Assert.Throws <ArgumentException>(() => new UdiRange(guidUdi, "x")); }
public void Explode(UdiRange range, List <Udi> udis) { throw new NotImplementedException(); }