public void SerializeDictionarysWithPreserveObjectReferences()
        {
            CircularDictionary circularDictionary = new CircularDictionary();

            circularDictionary.Add("other", new CircularDictionary {
                { "blah", null }
            });
            circularDictionary.Add("self", circularDictionary);

            string json = JsonConvert.SerializeObject(circularDictionary, Formatting.Indented,
                                                      new JsonSerializerSettings {
                PreserveReferencesHandling = PreserveReferencesHandling.All
            });

            StringAssert.AreEqual(@"{
  ""$id"": ""1"",
  ""other"": {
    ""$id"": ""2"",
    ""blah"": null
  },
  ""self"": {
    ""$ref"": ""1""
  }
}", json);
        }
Esempio n. 2
0
        /// <summary>
        ///     Creates a new RoundTripTimeHelper.
        /// </summary>
        public RoundTripTimeHelper(int rttSampleCount, int pingBacklogSize)
        {
            this.RttSampleCount = rttSampleCount;

            movingAverage = new MovingAverageFilter(rttSampleCount);
            waitingPings  = new CircularDictionary <ushort, long>(pingBacklogSize);
        }
        CircularDictionary CreateCircularDictionary()
        {
            var to = new CircularDictionary();

            to["X"] = to;
            return(to);
        }
Esempio n. 4
0
        public void SerializeCircularDictionarysIgnore()
        {
            CircularDictionary circularDictionary = new CircularDictionary();

            circularDictionary.Add("other", new CircularDictionary {
                { "blah", null }
            });
            circularDictionary.Add("self", circularDictionary);

            string json = JsonConvert.SerializeObject(
                circularDictionary,
                Formatting.Indented,
                new JsonSerializerSettings {
                ReferenceLoopHandling = ReferenceLoopHandling.Ignore
            }
                );

            StringAssert.AreEqual(
                @"{
  ""other"": {
    ""blah"": null
  }
}",
                json
                );
        }
Esempio n. 5
0
        public void DeserializeDictionarysWithPreserveObjectReferences()
        {
            string json =
                @"{
  ""$id"": ""1"",
  ""other"": {
    ""$id"": ""2"",
    ""blah"": null
  },
  ""self"": {
    ""$ref"": ""1""
  }
}";

            CircularDictionary circularDictionary =
                JsonConvert.DeserializeObject <CircularDictionary>(
                    json,
                    new JsonSerializerSettings
            {
                PreserveReferencesHandling = PreserveReferencesHandling.All
            }
                    );

            Assert.AreEqual(2, circularDictionary.Count);
            Assert.AreEqual(1, circularDictionary["other"].Count);
            Assert.IsTrue(ReferenceEquals(circularDictionary, circularDictionary["self"]));
        }
        public void SerializeCircularDictionarysError()
        {
            CircularDictionary circularDictionary = new CircularDictionary();

            circularDictionary.Add("other", new CircularDictionary {
                { "blah", null }
            });
            circularDictionary.Add("self", circularDictionary);

            JsonConvert.SerializeObject(circularDictionary, Formatting.Indented);
        }
        public void SerializeCircularDictionarysError()
        {
            string classRef = typeof(CircularDictionary).FullName;

            CircularDictionary circularDictionary = new CircularDictionary();

            circularDictionary.Add("other", new CircularDictionary {
                { "blah", null }
            });
            circularDictionary.Add("self", circularDictionary);

            ExceptionAssert.Throws <JsonSerializationException>(() => { JsonConvert.SerializeObject(circularDictionary, Formatting.Indented); }, @"Self referencing loop detected with type " + classRef + ", Path: other");
        }
 public void Initialize()
 {
     dictionary = new CircularDictionary <int, int>(4);
 }