public void TestTrackableCollection_TryDequeue(bool track) { var acc = new Accumulator("test"); IQueue <Simple> coll = new TrackableCollection <Simple>(acc, track); Assert.AreEqual(0, coll.Count()); var a = new Simple("a"); var b = new Simple("b"); coll.Enqueue(a); coll.Enqueue(b); Assert.IsTrue(coll.TryDequeue(out var a1)); Assert.AreEqual(a, a1); Assert.AreEqual(1, coll.Count()); Assert.IsTrue(coll.TryDequeue(out var b1)); Assert.AreEqual(b, b1); Assert.AreEqual(0, coll.Count()); Assert.IsFalse(coll.TryDequeue(out var c1)); if (track) { Assert.AreEqual(4, acc.Records.Count); } else { Assert.AreEqual(0, acc.Records.Count); } }
public void TestTrackableCollection_Enqueue(bool track) { var acc = new Accumulator("test"); IQueue <Simple> coll = new TrackableCollection <Simple>(acc, track); Assert.AreEqual(0, coll.Count()); coll.Enqueue(new Simple("a")); Assert.AreEqual(1, coll.Count()); coll.Enqueue(new Simple("b")); Assert.AreEqual(2, coll.Count()); if (track) { Assert.AreEqual(2, acc.Records.Count); } else { Assert.AreEqual(0, acc.Records.Count); } }