protected virtual async Task SetContentToCacheAsync( ZeusCachingContext context, ZeusCachingProfileOptions options, string key, object content, ICachingAdapter cachingAdapter) { object wrappedContent; if (options.WrappingResultHandler != null) { wrappedContent = options.WrappingResultHandler(_serviceProvider, context.ExecutionContext.HttpContext, content); } else { wrappedContent = content; } if (wrappedContent is string) { await cachingAdapter.SetContentAsync(key, (string)wrappedContent, context.SlidingExpiration, null, context.AbsoluteExpirationRelativeToNow); } else { // Serialize the response var json = Serializer(wrappedContent); await cachingAdapter.SetContentAsync(key, json, context.SlidingExpiration, null, context.AbsoluteExpirationRelativeToNow); } }
public void Enable_ForDefaultInstance_ActsAsExpected() { var options = new ZeusCachingProfileOptions(); options.Enable(); Assert.True(options.IsEnabled); }
public void UseCacheKeyHandler_ForDefaultInstance_ActsAsExpected() { var options = new ZeusCachingProfileOptions(); Func <IServiceProvider, HttpContext, string> alwaysFooHandler = (__, _) => "/foo"; options.UseCacheKeyHandler(alwaysFooHandler); Assert.Equal(alwaysFooHandler, options.CacheKeyHandler); }
public void UseInMemoryCachingAdapter_ForDefaultInstance_ActsAsExpected() { var options = new ZeusCachingProfileOptions(); options.UseInMemoryCachingAdapter(); Assert.Equal(CachingAdapterMode.MemoryCache, options.CachingAdapterMode); }
public void UseAutoDiscoveryCachingAdapter_ForDefaultInstance_ActsAsExpected() { var options = new ZeusCachingProfileOptions(); options.UseAutoDiscoveryCachingAdapter(); Assert.Equal(CachingAdapterMode.AutomaticDiscovery, options.CachingAdapterMode); }
public void UseWrappingHandler_ForDefaultInstance_ActsAsExpected() { var options = new ZeusCachingProfileOptions(); Func <IServiceProvider, HttpContext, object, object> wrapInResultHandler = (__, _, content) => new { Result = content }; options.UseWrappingHandler(wrapInResultHandler); Assert.Equal(wrapInResultHandler, options.WrappingResultHandler); }
public void UseCachingPredicate_ForDefaultInstance_ActsAsExpected() { var options = new ZeusCachingProfileOptions(); Func <IServiceProvider, HttpContext, bool> alwaysTrueHandler = (__, _) => true; options.UseCachingPredicate(alwaysTrueHandler); Assert.Equal(alwaysTrueHandler, options.CachingPredicate); }