public void TestClearUpdate()
        {
            IncrementalUpdateQueue q = new IncrementalUpdateQueue(new TestIncrementalUpdateDataProvider());

            q.Push(0, null, new List <string[]>());
            q[0].Clear();
            Assert.AreEqual(true, q[0].Empty);
            Assert.AreEqual(false, q[0].Applied);
        }
        public void TestUpdateOne()
        {
            IncrementalUpdateQueue q = new IncrementalUpdateQueue(new TestIncrementalUpdateDataProvider());

            q.Push(0, null, new List <string[]>());
            Assert.AreEqual(true, q.CanApply);
            q.Apply();
            Assert.AreEqual(0, q.Count);
            Assert.AreEqual(true, q.CanApply);
            Assert.AreEqual(1, q.SeqNumber);
        }
        public void TestDefaults()
        {
            IncrementalUpdateQueue q = new IncrementalUpdateQueue(new TestIncrementalUpdateDataProvider());

            Assert.AreEqual(0, q.Count);
            Assert.AreEqual(0, q.SeqNumber);
            for (int i = 0; i < q.Capacity; i++)
            {
                Assert.AreEqual(true, q[i].Empty);
                Assert.AreEqual(false, q[i].Applied);
            }
            Assert.AreEqual(true, q.CanApply);
        }
        public void TestCanApply()
        {
            IncrementalUpdateQueue q = new IncrementalUpdateQueue(new TestIncrementalUpdateDataProvider());

            List <string[]>[] items = new List <string[]> [q.Capacity];
            for (int i = 0; i < q.Capacity; i++)
            {
                items[i] = new List <string[]>();
                Assert.AreEqual(true, q.Push(i, null, items[i]));
            }
            q[100].Clear();
            Assert.AreEqual(false, q.CanApply);
            q[100].Fill(22, null, new List <string[]>());
            Assert.AreEqual(true, q.CanApply);
        }
        public void TestPush()
        {
            IncrementalUpdateQueue q = new IncrementalUpdateQueue(new TestIncrementalUpdateDataProvider());

            Assert.AreEqual(false, q.Push(q.Capacity, null, null));
            Assert.AreEqual(true, q.Push(q.SeqNumber - 1, null, null));

            List <string[]>[] items = new List <string[]> [q.Capacity];
            for (int i = 0; i < q.Capacity; i++)
            {
                items[i] = new List <string[]>();
                Assert.AreEqual(true, q.Push(i, null, items[i]));
                Assert.AreEqual(items[i], q[i].Updates);
                Assert.AreEqual(false, q[i].Empty);
                Assert.AreEqual(false, q[i].Applied);
                Assert.AreEqual(i + 1, q.Count);
                Assert.AreEqual(true, q.CanApply);
            }
        }