Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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"));
        }
Exemplo n.º 4
0
 public void Explode(UdiRange range, List <Udi> udis)
 {
     throw new NotImplementedException();
 }