public static void GetExpiredEntries_WhenCacheExhausted_ReturnsEarliestValue() { var policy = new FifoCachePolicy <string>(); var cacheEntry1 = new Mock <ICacheEntry <string> >(); cacheEntry1.Setup(k => k.CreationTime).Returns(new DateTime(2017, 1, 1)); cacheEntry1.Setup(k => k.Size).Returns(5); cacheEntry1.Setup(k => k.Key).Returns("test1"); var cacheEntry2 = new Mock <ICacheEntry <string> >(); cacheEntry2.Setup(k => k.CreationTime).Returns(new DateTime(2017, 1, 2)); cacheEntry2.Setup(k => k.Size).Returns(5); cacheEntry2.Setup(k => k.Key).Returns("test2"); var cacheEntry3 = new Mock <ICacheEntry <string> >(); cacheEntry3.Setup(k => k.CreationTime).Returns(new DateTime(2017, 1, 3)); cacheEntry3.Setup(k => k.Size).Returns(5); cacheEntry3.Setup(k => k.Key).Returns("test3"); var expired = policy.GetExpiredEntries(new[] { cacheEntry1.Object, cacheEntry2.Object, cacheEntry3.Object }, 12).ToList(); var expiredKey = expired.Single().Key; Assert.AreEqual(cacheEntry1.Object.Key, expiredKey); }
public static async Task ClearAsync_WhenValuePresent_RemovesAnyPresentValues() { var testDirPath = Path.Combine(Environment.CurrentDirectory, "clearasync_test"); var testDir = new DirectoryInfo(testDirPath); if (!testDir.Exists) { testDir.Create(); } var cachePolicy = new FifoCachePolicy <string>(); var input = new byte[] { 1, 2, 3, 4 }; const ulong size = 20; using (var cache = new DiskCache <string>(testDir, cachePolicy, size)) { await cache.SetValueAsync("asd", new MemoryStream(input)).ConfigureAwait(false); await cache.ClearAsync().ConfigureAwait(false); var result = await cache.ContainsKeyAsync("asd").ConfigureAwait(false); Assert.IsFalse(result); } testDir.Delete(true); }
public static void GetExpiredEntries_WhenOnlyValueExceedsSize_ReturnsValue() { var policy = new FifoCachePolicy <string>(); var cacheEntry = new Mock <ICacheEntry <string> >(); cacheEntry.Setup(k => k.CreationTime).Returns(DateTime.Now); cacheEntry.Setup(k => k.Size).Returns(101); cacheEntry.Setup(k => k.Key).Returns("test"); var expired = policy.GetExpiredEntries(new[] { cacheEntry.Object }, 100).ToList(); Assert.AreEqual(1, expired.Count); }
public static void GetExpiredEntries_WhenCacheNotExhausted_ReturnsEmptySet() { var policy = new FifoCachePolicy <string>(); var cacheEntry = new Mock <ICacheEntry <string> >(); cacheEntry.Setup(k => k.CreationTime).Returns(DateTime.Now); cacheEntry.Setup(k => k.Size).Returns(1); cacheEntry.Setup(k => k.Key).Returns("test"); var expired = policy.GetExpiredEntries(new[] { cacheEntry.Object }, 100).ToList(); Assert.AreEqual(0, expired.Count); }
public static void GetExpiredEntries_GivenZeroSize_ThrowsArgOutOfRangeException() { var policy = new FifoCachePolicy <string>(); Assert.Throws <ArgumentOutOfRangeException>(() => policy.GetExpiredEntries(Enumerable.Empty <ICacheEntry <string> >(), 0)); }
public static void GetExpiredEntries_GivenNullEntries_ThrowsArgNullException() { var policy = new FifoCachePolicy <string>(); Assert.Throws <ArgumentNullException>(() => policy.GetExpiredEntries(null, 1)); }