コード例 #1
0
        public static void TestCacheInvalidation(string method)
        {
            // setup
            var    mocks          = new MockRepository();
            var    request        = new HttpRequestMessage(new HttpMethod(method), TestUrl);
            string routePattern   = "http://myserver/api/stuffs/*";
            var    entityTagStore = mocks.StrictMock <IEntityTagStore>();
            var    linkedUrls     = new [] { "url1", "url2" };
            var    cachingHandler = new CachingHandler(new HttpConfiguration(), entityTagStore)
            {
                LinkedRoutePatternProvider = (req) => linkedUrls
            };
            var entityTagKey    = new CacheKey(TestUrl, new string[0], routePattern);
            var response        = new HttpResponseMessage();
            var invalidateCache = cachingHandler.InvalidateCache(entityTagKey, request, response);

            entityTagStore.Expect(x => x.RemoveResource("/api/stuff/")).Return(1);

            mocks.ReplayAll();

            // run
            invalidateCache();

            // verify
            mocks.VerifyAll();
        }