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); }
/// <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); }
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 ); }
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); }