Пример #1
0
        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);
            }
        }
Пример #2
0
        public void Enable_ForDefaultInstance_ActsAsExpected()
        {
            var options = new ZeusCachingProfileOptions();


            options.Enable();


            Assert.True(options.IsEnabled);
        }
Пример #3
0
        public void UseCacheKeyHandler_ForDefaultInstance_ActsAsExpected()
        {
            var options = new ZeusCachingProfileOptions();
            Func <IServiceProvider, HttpContext, string> alwaysFooHandler = (__, _) => "/foo";

            options.UseCacheKeyHandler(alwaysFooHandler);


            Assert.Equal(alwaysFooHandler, options.CacheKeyHandler);
        }
Пример #4
0
        public void UseInMemoryCachingAdapter_ForDefaultInstance_ActsAsExpected()
        {
            var options = new ZeusCachingProfileOptions();


            options.UseInMemoryCachingAdapter();


            Assert.Equal(CachingAdapterMode.MemoryCache, options.CachingAdapterMode);
        }
Пример #5
0
        public void UseAutoDiscoveryCachingAdapter_ForDefaultInstance_ActsAsExpected()
        {
            var options = new ZeusCachingProfileOptions();


            options.UseAutoDiscoveryCachingAdapter();


            Assert.Equal(CachingAdapterMode.AutomaticDiscovery, options.CachingAdapterMode);
        }
Пример #6
0
        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);
        }
Пример #7
0
        public void UseCachingPredicate_ForDefaultInstance_ActsAsExpected()
        {
            var options = new ZeusCachingProfileOptions();
            Func <IServiceProvider, HttpContext, bool> alwaysTrueHandler = (__, _) => true;


            options.UseCachingPredicate(alwaysTrueHandler);


            Assert.Equal(alwaysTrueHandler, options.CachingPredicate);
        }