diff --git a/test/IntegrationTests/TestBase.cs b/test/IntegrationTests/TestBase.cs index ff88424..41fa600 100644 --- a/test/IntegrationTests/TestBase.cs +++ b/test/IntegrationTests/TestBase.cs @@ -89,7 +89,11 @@ public virtual async ValueTask InitializeAsync() // Create or ensure KV store exists var jsContext = NatsConnection.CreateJetStreamContext(); var kvContext = new NatsKVContext(jsContext); - await kvContext.CreateOrUpdateStoreAsync(new NatsKVConfig("cache")); + var kvConfig = new NatsKVConfig("cache") + { + LimitMarkerTTL = TimeSpan.MaxValue, + }; + await kvContext.CreateOrUpdateStoreAsync(kvConfig); } /// diff --git a/test/IntegrationTests/TimeExpirationAsyncTests.cs b/test/IntegrationTests/TimeExpirationAsyncTests.cs index 91871ef..ee4d99c 100644 --- a/test/IntegrationTests/TimeExpirationAsyncTests.cs +++ b/test/IntegrationTests/TimeExpirationAsyncTests.cs @@ -3,6 +3,7 @@ using System.Threading.Tasks; using Microsoft.Extensions.Caching.Distributed; using Microsoft.Extensions.Options; +using NATS.Client.KeyValueStore; using Xunit; namespace CodeCargo.NatsDistributedCache.IntegrationTests; @@ -121,8 +122,7 @@ public async Task SlidingExpirationExpiresIfNotAccessedAsync() await Task.Delay(TimeSpan.FromSeconds(3)); - result = await cache.GetAsync(key); - Assert.Null(result); + await Assert.ThrowsAsync(async () => await cache.GetAsync(key)); } [Fact] @@ -148,8 +148,7 @@ public async Task SlidingExpirationRenewedByAccessAsync() await Task.Delay(TimeSpan.FromSeconds(3)); - result = await cache.GetAsync(key); - Assert.Null(result); + await Assert.ThrowsAsync(async () => await cache.GetAsync(key)); } [Fact] @@ -181,8 +180,7 @@ public async Task SlidingExpirationRenewedByAccessUntilAbsoluteExpirationAsync() await Task.Delay(TimeSpan.FromSeconds(0.5)); } - result = await cache.GetAsync(key); - Assert.Null(result); + await Assert.ThrowsAsync(async () => await cache.GetAsync(key)); } private static async Task GetNameAndReset(IDistributedCache cache, [CallerMemberName] string caller = "") diff --git a/test/UnitTests/CacheServiceExtensionsUnitTests.cs b/test/UnitTests/CacheServiceExtensionsUnitTests.cs index 747418f..e9890b1 100644 --- a/test/UnitTests/CacheServiceExtensionsUnitTests.cs +++ b/test/UnitTests/CacheServiceExtensionsUnitTests.cs @@ -102,6 +102,9 @@ public void AddNatsCache_UsesCacheOptionsAction() wasInvoked = true; }); + var sp = services.BuildServiceProvider(); + _ = sp.GetRequiredService(); + // Assert Assert.True(wasInvoked); } diff --git a/test/UnitTests/TimeExpirationUnitTests.cs b/test/UnitTests/TimeExpirationUnitTests.cs index 705e1c6..61524bf 100644 --- a/test/UnitTests/TimeExpirationUnitTests.cs +++ b/test/UnitTests/TimeExpirationUnitTests.cs @@ -1,12 +1,8 @@ -using System; -using System.Runtime.CompilerServices; -using System.Threading; using CodeCargo.NatsDistributedCache.UnitTests.TestHelpers; using Microsoft.Extensions.Caching.Distributed; -using Microsoft.Extensions.Options; +using Microsoft.Extensions.Logging; using Moq; using NATS.Client.Core; -using Xunit; namespace CodeCargo.NatsDistributedCache.UnitTests; @@ -17,6 +13,11 @@ public class TimeExpirationUnitTests public TimeExpirationUnitTests() { _mockNatsConnection = new Mock(); + // Setup the mock to properly handle the Opts property + var opts = new NatsOpts { LoggerFactory = new LoggerFactory() }; + _mockNatsConnection.SetupGet(m => m.Opts).Returns(opts); + var connection = new NatsConnection(opts); + _mockNatsConnection.SetupGet(m => m.Connection).Returns(connection); } private IDistributedCache CreateCacheInstance()