public void load_cache()
        {
            CreateCacheFiles();
            using (var store = new FileAppendOnlyStore(new DirectoryInfo(_storePath)))
            {
                store.LoadCaches();

                for (int j = 0; j < DataFileCount; j++)
                {
                    var key = "test-key" + j;
                    var data = store.ReadRecords(key, -1, Int32.MaxValue);

                    int i = 0;
                    foreach (var dataWithKey in data)
                    {
                        Assert.AreEqual("test messages" + i, Encoding.UTF8.GetString(dataWithKey.Data));
                        i++;
                    }
                    Assert.AreEqual(FileMessagesCount, i);
                }
            }
        }
        public void load_cache_when_incorrect_data_file()
        {
            var currentPath = Path.Combine(_storePath, "EmptyCache");
            Directory.CreateDirectory(currentPath);
            var store = new FileAppendOnlyStore(new DirectoryInfo(currentPath));

            //write frame
            using (var stream = new FileStream(Path.Combine(currentPath, "0.dat"), FileMode.OpenOrCreate, FileAccess.Write, FileShare.ReadWrite))
                StorageFramesEvil.WriteFrame("test-key", 0, Encoding.UTF8.GetBytes("test message"), stream);

            //write incorrect frame
            using (var sw = new StreamWriter(Path.Combine(currentPath, "1.dat")))
                sw.Write("incorrect frame data");

            store.LoadCaches();
            var data = store.ReadRecords(0, Int32.MaxValue).ToArray();

            Assert.AreEqual(1, data.Length);
            Assert.AreEqual("test-key", data[0].Key);
            Assert.AreEqual(0, data[0].StreamVersion);
            Assert.AreEqual("test message", Encoding.UTF8.GetString(data[0].Data));
            Assert.IsTrue(File.Exists(Path.Combine(currentPath, "1.dat")));
        }