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(); }