Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ internal static class HybridCacheExtensions
/// Hat-tip: https://github.com/dotnet/aspnetcore/discussions/57191
/// Will never add or alter the state of any items in the cache.
/// </remarks>
public static async Task<bool> ExistsAsync(this Microsoft.Extensions.Caching.Hybrid.HybridCache cache, string key)
public static async Task<bool> ExistsAsync<T>(this Microsoft.Extensions.Caching.Hybrid.HybridCache cache, string key)
{
(bool exists, _) = await TryGetValueAsync<object>(cache, key);
(bool exists, _) = await TryGetValueAsync<T>(cache, key);
return exists;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ public async Task SeedAsync(CancellationToken cancellationToken)

var cacheKey = GetCacheKey(key, false);

var existsInCache = await _hybridCache.ExistsAsync(cacheKey);
var existsInCache = await _hybridCache.ExistsAsync<ContentCacheNode>(cacheKey);
if (existsInCache is false)
{
uncachedKeys.Add(key);
Expand Down Expand Up @@ -278,7 +278,7 @@ public async Task<bool> HasContentByIdAsync(int id, bool preview = false)
return false;
}

return await _hybridCache.ExistsAsync(GetCacheKey(keyAttempt.Result, preview));
return await _hybridCache.ExistsAsync<ContentCacheNode>(GetCacheKey(keyAttempt.Result, preview));
}

public async Task RefreshContentAsync(IContent content)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ public async Task<bool> HasContentByIdAsync(int id)
return false;
}

return await _hybridCache.ExistsAsync($"{keyAttempt.Result}");
return await _hybridCache.ExistsAsync<ContentCacheNode>($"{keyAttempt.Result}");
}

public async Task RefreshMediaAsync(IMedia media)
Expand Down Expand Up @@ -170,7 +170,7 @@ public async Task SeedAsync(CancellationToken cancellationToken)

var cacheKey = GetCacheKey(key, false);

var existsInCache = await _hybridCache.ExistsAsync(cacheKey);
var existsInCache = await _hybridCache.ExistsAsync<ContentCacheNode>(cacheKey);
if (existsInCache is false)
{
uncachedKeys.Add(key);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using Microsoft.Extensions.Caching.Hybrid;
using Moq;
using NUnit.Framework;
using Umbraco.Cms.Infrastructure.HybridCache;
using Umbraco.Cms.Infrastructure.HybridCache.Extensions;

namespace Umbraco.Cms.Tests.UnitTests.Umbraco.PublishedCache.HybridCache.Extensions;
Expand All @@ -27,20 +28,20 @@ public async Task ExistsAsync_WhenKeyExists_ShouldReturnTrue()
{
// Arrange
string key = "test-key";
var expectedValue = "test-value";
var expectedValue = new ContentCacheNode { Id = 1234 };

_cacheMock
.Setup(cache => cache.GetOrCreateAsync(
key,
null!,
It.IsAny<Func<object, CancellationToken, ValueTask<object>>>(),
It.IsAny<Func<object, CancellationToken, ValueTask<ContentCacheNode>>>(),
It.IsAny<HybridCacheEntryOptions>(),
null,
CancellationToken.None))
.ReturnsAsync(expectedValue);

// Act
var exists = await HybridCacheExtensions.ExistsAsync(_cacheMock.Object, key);
var exists = await HybridCacheExtensions.ExistsAsync<ContentCacheNode>(_cacheMock.Object, key);

// Assert
Assert.IsTrue(exists);
Expand All @@ -56,14 +57,14 @@ public async Task ExistsAsync_WhenKeyDoesNotExist_ShouldReturnFalse()
.Setup(cache => cache.GetOrCreateAsync(
key,
null!,
It.IsAny<Func<object, CancellationToken, ValueTask<object>>>(),
It.IsAny<Func<object, CancellationToken, ValueTask<ContentCacheNode>>>(),
It.IsAny<HybridCacheEntryOptions>(),
null,
CancellationToken.None))
.Returns((
string key,
object? state,
Func<object, CancellationToken, ValueTask<object>> factory,
Func<object, CancellationToken, ValueTask<ContentCacheNode>> factory,
HybridCacheEntryOptions? options,
IEnumerable<string>? tags,
CancellationToken token) =>
Expand All @@ -72,7 +73,7 @@ public async Task ExistsAsync_WhenKeyDoesNotExist_ShouldReturnFalse()
});

// Act
var exists = await HybridCacheExtensions.ExistsAsync(_cacheMock.Object, key);
var exists = await HybridCacheExtensions.ExistsAsync<ContentCacheNode>(_cacheMock.Object, key);

// Assert
Assert.IsFalse(exists);
Expand Down