예제 #1
0
        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);
            }
        }
예제 #2
0
        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);
            }
        }