/// <summary>
        /// Check single filter event.
        /// </summary>
        /// <param name="expKey">Expected key.</param>
        /// <param name="expOldVal">Expected old value.</param>
        /// <param name="expVal">Expected value.</param>
        /// <param name="timeout">Timeout.</param>
        private static void CheckFilterSingle(int expKey, BinarizableEntry expOldVal, BinarizableEntry expVal, int timeout)
        {
            FilterEvent evt;

            Assert.IsTrue(FILTER_EVTS.TryTake(out evt, timeout));

            Assert.AreEqual(expKey, evt.entry.Key);
            Assert.AreEqual(expOldVal, evt.entry.OldValue);
            Assert.AreEqual(expVal, evt.entry.Value);

            ClearEvents();
        }
        /// <summary>
        /// Check single callback event.
        /// </summary>
        /// <param name="expKey">Expected key.</param>
        /// <param name="expOldVal">Expected old value.</param>
        /// <param name="expVal">Expected new value.</param>
        /// <param name="timeout">Timeout.</param>
        private static void CheckCallbackSingle(int expKey, BinarizableEntry expOldVal, BinarizableEntry expVal, int timeout)
        {
            CallbackEvent evt;

            Assert.IsTrue(CB_EVTS.TryTake(out evt, timeout));

            Assert.AreEqual(1, evt.entries.Count);

            Assert.AreEqual(expKey, evt.entries.First().Key);
            Assert.AreEqual(expOldVal, evt.entries.First().OldValue);
            Assert.AreEqual(expVal, evt.entries.First().Value);
        }
        /// <summary>
        /// Check single callback event.
        /// </summary>
        /// <param name="expKey">Expected key.</param>
        /// <param name="expOldVal">Expected old value.</param>
        /// <param name="expVal">Expected new value.</param>
        /// <param name="expType">Expected type.</param>
        /// <param name="timeout">Timeout.</param>
        private static void CheckCallbackSingle(int expKey, BinarizableEntry expOldVal, BinarizableEntry expVal,
                                                CacheEntryEventType expType, int timeout = 1000)
        {
            CallbackEvent evt;

            Assert.IsTrue(CB_EVTS.TryTake(out evt, timeout));
            Assert.AreEqual(0, CB_EVTS.Count);

            var e = evt.entries.Single();

            Assert.AreEqual(expKey, e.Key);
            Assert.AreEqual(expOldVal, e.OldValue);
            Assert.AreEqual(expVal, e.Value);
            Assert.AreEqual(expType, e.EventType);
        }
 /// <summary>
 /// Check single filter event.
 /// </summary>
 /// <param name="expKey">Expected key.</param>
 /// <param name="expOldVal">Expected old value.</param>
 /// <param name="expVal">Expected value.</param>
 private void CheckFilterSingle(int expKey, BinarizableEntry expOldVal, BinarizableEntry expVal)
 {
     CheckFilterSingle(expKey, expOldVal, expVal, 1000);
     ClearEvents();
 }
 /// <summary>
 /// Check single callback event.
 /// </summary>
 /// <param name="expKey">Expected key.</param>
 /// <param name="expOldVal">Expected old value.</param>
 /// <param name="expVal">Expected new value.</param>
 private static void CheckCallbackSingle(int expKey, BinarizableEntry expOldVal, BinarizableEntry expVal)
 {
     CheckCallbackSingle(expKey, expOldVal, expVal, 1000);
 }