public void ShrinkCacheTest() { NFileCache target = new NFileCache("ShrinkCacheTest"); // Test empty case Assert.AreEqual(0, target.Trim(0)); // Insert 4 items, and keep track of their size target.Add("item1", "test1", DateTime.Now.AddDays(1)); long size1 = target.GetCacheSize(); target.Add("item2", "test22", DateTime.Now); long size2 = target.GetCacheSize() - size1; target.Add("item3", "test333", DateTime.Now.AddSeconds(10)); long size3 = target.GetCacheSize() - size1 - size2; target.Add("item4", "test4444", DateTime.Now.AddDays(-1)); long size4 = target.GetCacheSize() - size1 - size2 - size3; // Shrink to the size of the first 3 items (should remove item4 because it's the oldest, keeping the other 3) long newSize = target.Trim(size1 + size2 + size3); Assert.AreEqual(size1 + size2 + size3, newSize); // Shrink to just smaller than two items (should keep just item1, delete item2 and item3) newSize = target.Trim(size1 + size3 - 1); Assert.AreEqual(size1, newSize); // Shrink to size 1 (should delete everything) newSize = target.Trim(1); Assert.AreEqual(0, newSize); }
public void CacheSizeTest() { NFileCache target = new NFileCache("CacheSizeTest"); target["foo"] = "bar"; target["foo"] = "foobar"; long cacheSize = target.GetCacheSize("bar"); Assert.AreEqual(0, cacheSize); cacheSize = target.GetCacheSize(); Assert.IsTrue(cacheSize > 0); target.Remove("foo"); cacheSize = target.GetCacheSize(); Assert.AreEqual(0, cacheSize); }