public void UpdateCacheContext_CopiesTriggersFromEntryLink() { // Arrange var expiresSliding = TimeSpan.FromSeconds(30); var expected = new[] { Mock.Of <IExpirationTrigger>(), Mock.Of <IExpirationTrigger>() }; var triggers = new List <IExpirationTrigger>(); var cache = new MemoryCache(new MemoryCacheOptions()); var cacheContext = new Mock <ICacheSetContext>(); cacheContext.Setup(c => c.SetSlidingExpiration(expiresSliding)) .Verifiable(); cacheContext.Setup(c => c.AddExpirationTrigger(It.IsAny <IExpirationTrigger>())) .Callback <IExpirationTrigger>(triggers.Add) .Verifiable(); var cacheTagHelper = new CacheTagHelper { MemoryCache = cache, ExpiresSliding = expiresSliding }; var entryLink = new EntryLink(); entryLink.AddExpirationTriggers(expected); // Act cacheTagHelper.UpdateCacheContext(cacheContext.Object, entryLink); // Assert cacheContext.Verify(); Assert.Equal(expected, triggers); }
public void UpdateCacheContext_PrefersAbsoluteExpirationSpecifiedOnEntryLinkOverExpiresOn() { // Arrange var expiresOn1 = DateTimeOffset.UtcNow.AddDays(12); var expiresOn2 = DateTimeOffset.UtcNow.AddMinutes(4); var cache = new MemoryCache(new MemoryCacheOptions()); var cacheContext = new Mock <ICacheSetContext>(); var sequence = new MockSequence(); cacheContext.InSequence(sequence) .Setup(c => c.SetAbsoluteExpiration(expiresOn1)) .Verifiable(); cacheContext.InSequence(sequence) .Setup(c => c.SetAbsoluteExpiration(expiresOn2)) .Verifiable(); var cacheTagHelper = new CacheTagHelper { MemoryCache = cache, ExpiresOn = expiresOn1 }; var entryLink = new EntryLink(); entryLink.SetAbsoluteExpiration(expiresOn2); // Act cacheTagHelper.UpdateCacheContext(cacheContext.Object, entryLink); // Assert cacheContext.Verify(); }
public void UpdateCacheContext_SetsCachePreservationPriority() { // Arrange var priority = CachePreservationPriority.High; var cache = new MemoryCache(new MemoryCacheOptions()); var cacheContext = new Mock <ICacheSetContext>(); cacheContext.Setup(c => c.SetPriority(priority)) .Verifiable(); var cacheTagHelper = new CacheTagHelper { MemoryCache = cache, Priority = priority }; // Act cacheTagHelper.UpdateCacheContext(cacheContext.Object, new EntryLink()); // Assert cacheContext.Verify(); }
public void UpdateCacheContext_SetsSlidingExpiration_IfExpiresSlidingIsSet() { // Arrange var expiresSliding = TimeSpan.FromSeconds(37); var cache = new MemoryCache(new MemoryCacheOptions()); var cacheContext = new Mock <ICacheSetContext>(); cacheContext.Setup(c => c.SetSlidingExpiration(expiresSliding)) .Verifiable(); var cacheTagHelper = new CacheTagHelper { MemoryCache = cache, ExpiresSliding = expiresSliding }; // Act cacheTagHelper.UpdateCacheContext(cacheContext.Object, new EntryLink()); // Assert cacheContext.Verify(); }
public void UpdateCacheContext_SetsAbsoluteExpiration_IfExpiresOnIsSet() { // Arrange var expiresOn = DateTimeOffset.UtcNow.AddMinutes(4); var cache = new MemoryCache(new MemoryCacheOptions()); var cacheContext = new Mock <ICacheSetContext>(MockBehavior.Strict); cacheContext.Setup(c => c.SetAbsoluteExpiration(expiresOn)) .Verifiable(); var cacheTagHelper = new CacheTagHelper { MemoryCache = cache, ExpiresOn = expiresOn }; // Act cacheTagHelper.UpdateCacheContext(cacheContext.Object, new EntryLink()); // Assert cacheContext.Verify(); }
public void UpdateCacheContext_UsesAbsoluteExpirationSpecifiedOnEntryLink() { // Arrange var expiresOn = DateTimeOffset.UtcNow.AddMinutes(7); var cache = new MemoryCache(new MemoryCacheOptions()); var cacheContext = new Mock <ICacheSetContext>(MockBehavior.Strict); cacheContext.Setup(c => c.SetAbsoluteExpiration(expiresOn)) .Verifiable(); var cacheTagHelper = new CacheTagHelper { MemoryCache = cache }; var entryLink = new EntryLink(); entryLink.SetAbsoluteExpiration(expiresOn); // Act cacheTagHelper.UpdateCacheContext(cacheContext.Object, entryLink); // Assert cacheContext.Verify(); }
public void UpdateCacheContext_CopiesTriggersFromEntryLink() { // Arrange var expiresSliding = TimeSpan.FromSeconds(30); var expected = new[] { Mock.Of<IExpirationTrigger>(), Mock.Of<IExpirationTrigger>() }; var triggers = new List<IExpirationTrigger>(); var cache = new MemoryCache(new MemoryCacheOptions()); var cacheContext = new Mock<ICacheSetContext>(); cacheContext.Setup(c => c.SetSlidingExpiration(expiresSliding)) .Verifiable(); cacheContext.Setup(c => c.AddExpirationTrigger(It.IsAny<IExpirationTrigger>())) .Callback<IExpirationTrigger>(triggers.Add) .Verifiable(); var cacheTagHelper = new CacheTagHelper { MemoryCache = cache, ExpiresSliding = expiresSliding }; var entryLink = new EntryLink(); entryLink.AddExpirationTriggers(expected); // Act cacheTagHelper.UpdateCacheContext(cacheContext.Object, entryLink); // Assert cacheContext.Verify(); Assert.Equal(expected, triggers); }
public void UpdateCacheContext_SetsCachePreservationPriority() { // Arrange var priority = CachePreservationPriority.High; var cache = new MemoryCache(new MemoryCacheOptions()); var cacheContext = new Mock<ICacheSetContext>(); cacheContext.Setup(c => c.SetPriority(priority)) .Verifiable(); var cacheTagHelper = new CacheTagHelper { MemoryCache = cache, Priority = priority }; // Act cacheTagHelper.UpdateCacheContext(cacheContext.Object, new EntryLink()); // Assert cacheContext.Verify(); }
public void UpdateCacheContext_SetsSlidingExpiration_IfExpiresSlidingIsSet() { // Arrange var expiresSliding = TimeSpan.FromSeconds(37); var cache = new MemoryCache(new MemoryCacheOptions()); var cacheContext = new Mock<ICacheSetContext>(); cacheContext.Setup(c => c.SetSlidingExpiration(expiresSliding)) .Verifiable(); var cacheTagHelper = new CacheTagHelper { MemoryCache = cache, ExpiresSliding = expiresSliding }; // Act cacheTagHelper.UpdateCacheContext(cacheContext.Object, new EntryLink()); // Assert cacheContext.Verify(); }
public void UpdateCacheContext_PrefersAbsoluteExpirationSpecifiedOnEntryLinkOverExpiresOn() { // Arrange var expiresOn1 = DateTimeOffset.UtcNow.AddDays(12); var expiresOn2 = DateTimeOffset.UtcNow.AddMinutes(4); var cache = new MemoryCache(new MemoryCacheOptions()); var cacheContext = new Mock<ICacheSetContext>(); var sequence = new MockSequence(); cacheContext.InSequence(sequence) .Setup(c => c.SetAbsoluteExpiration(expiresOn1)) .Verifiable(); cacheContext.InSequence(sequence) .Setup(c => c.SetAbsoluteExpiration(expiresOn2)) .Verifiable(); var cacheTagHelper = new CacheTagHelper { MemoryCache = cache, ExpiresOn = expiresOn1 }; var entryLink = new EntryLink(); entryLink.SetAbsoluteExpiration(expiresOn2); // Act cacheTagHelper.UpdateCacheContext(cacheContext.Object, entryLink); // Assert cacheContext.Verify(); }
public void UpdateCacheContext_UsesAbsoluteExpirationSpecifiedOnEntryLink() { // Arrange var expiresOn = DateTimeOffset.UtcNow.AddMinutes(7); var cache = new MemoryCache(new MemoryCacheOptions()); var cacheContext = new Mock<ICacheSetContext>(MockBehavior.Strict); cacheContext.Setup(c => c.SetAbsoluteExpiration(expiresOn)) .Verifiable(); var cacheTagHelper = new CacheTagHelper { MemoryCache = cache }; var entryLink = new EntryLink(); entryLink.SetAbsoluteExpiration(expiresOn); // Act cacheTagHelper.UpdateCacheContext(cacheContext.Object, entryLink); // Assert cacheContext.Verify(); }
public void UpdateCacheContext_SetsAbsoluteExpiration_IfExpiresOnIsSet() { // Arrange var expiresOn = DateTimeOffset.UtcNow.AddMinutes(4); var cache = new MemoryCache(new MemoryCacheOptions()); var cacheContext = new Mock<ICacheSetContext>(MockBehavior.Strict); cacheContext.Setup(c => c.SetAbsoluteExpiration(expiresOn)) .Verifiable(); var cacheTagHelper = new CacheTagHelper { MemoryCache = cache, ExpiresOn = expiresOn }; // Act cacheTagHelper.UpdateCacheContext(cacheContext.Object, new EntryLink()); // Assert cacheContext.Verify(); }