public void TestAddRange(bool track) { var events = 0; var acc = new Accumulator("test"); var dic = new TrackableDictionary <string, int>(acc, track) { { "one", 1 }, { "two", 2 } }; var other = new TrackableDictionary <string, int>() { { "three", 3 }, { "four", 4 } }; dic.CollectionChanged += (s, e) => { events++; Assert.AreEqual(e.Action, NotifyCollectionChangedAction.Reset); }; dic.AddRange(other); Assert.IsTrue(dic.ContainsKey("three")); Assert.IsTrue(dic.ContainsKey("four")); Assert.AreEqual(dic["three"], 3); Assert.AreEqual(dic["four"], 4); Assert.AreEqual(1, events); if (track) { Assert.AreEqual(4, acc.Records.Count); } else { Assert.AreEqual(0, acc.Records.Count); } }
public void TestAdd(bool track) { var events = 0; var acc = new Accumulator("test"); var dic = new TrackableDictionary <string, int>(acc, track) { { "one", 1 }, { "two", 2 } }; dic.CollectionChanged += (s, e) => { events++; Assert.AreEqual(e.Action, NotifyCollectionChangedAction.Add); Assert.AreEqual(e.NewItems[0], new KeyValuePair <string, int>("three", 3)); }; dic.Add("three", 3); Assert.IsTrue(dic.ContainsKey("three")); Assert.AreEqual(dic["three"], 3); Assert.AreEqual(1, events); if (track) { Assert.AreEqual(3, acc.Records.Count); } else { Assert.AreEqual(0, acc.Records.Count); } }
public void TestTryGetValueAndRemoveKey(bool track) { var events = 0; var acc = new Accumulator("test"); var dic = new TrackableDictionary <string, int>(acc, track) { { "one", 1 }, { "two", 2 } }; dic.CollectionChanged += (s, e) => { events++; Assert.AreEqual(e.Action, NotifyCollectionChangedAction.Remove); Assert.AreEqual(e.OldItems[0], new KeyValuePair <string, int>("one", 1)); }; Assert.IsTrue(dic.TryGetValueAndRemoveKey("one", out var val)); Assert.AreEqual(1, val); Assert.IsFalse(dic.ContainsKey("one")); Assert.AreEqual(1, events); if (track) { Assert.AreEqual(3, acc.Records.Count); } else { Assert.AreEqual(0, acc.Records.Count); } }
public void TestTryGetValue(bool track) { var acc = new Accumulator("test"); var dic = new TrackableDictionary <string, int>(acc, track) { { "one", 1 }, { "two", 2 } }; Assert.IsTrue(dic.TryGetValue("one", out var val)); Assert.AreEqual(1, val); Assert.IsTrue(dic.ContainsKey("one")); Assert.IsFalse(dic.TryGetValue("four", out val)); if (track) { Assert.AreEqual(2, acc.Records.Count); } else { Assert.AreEqual(0, acc.Records.Count); } }