public void TestFlow()
        {
            Assert.IsNull(_access.GetNewData(0));
            Assert.IsNull(_access.GetOldData(0));

            _access.Update(new[] { _events[0] }, null);
            Assert.AreEqual(_events[0], _access.GetNewData(0));
            Assert.IsNull(_access.GetNewData(1));
            Assert.IsNull(_access.GetOldData(0));

            _access.Update(new[] { _events[1], _events[2] }, null);
            Assert.AreEqual(_events[2], _access.GetNewData(0));
            Assert.AreEqual(_events[1], _access.GetNewData(1));
            Assert.AreEqual(_events[0], _access.GetNewData(2));
            Assert.IsNull(_access.GetNewData(3));
            Assert.IsNull(_access.GetOldData(0));

            _access.Update(new[] { _events[3] }, new[] { _events[0] });
            Assert.AreEqual(_events[3], _access.GetNewData(0));
            Assert.AreEqual(_events[2], _access.GetNewData(1));
            Assert.AreEqual(_events[1], _access.GetNewData(2));
            Assert.IsNull(_access.GetNewData(3));
            Assert.IsNull(_access.GetOldData(0));

            _access.Update(null, new[] { _events[1], _events[2] });
            Assert.AreEqual(_events[3], _access.GetNewData(0));
            Assert.IsNull(_access.GetNewData(1));
            Assert.IsNull(_access.GetOldData(0));

            _access.Update(null, new[] { _events[3] });
            Assert.IsNull(_access.GetNewData(0));
            Assert.IsNull(_access.GetOldData(0));
        }