public void TestCache() { Resolver<ContentType> resolver = new Resolver<ContentType>(); resolver.Add(new ContentType("*.html", "text/html")); resolver.Add(new ContentType("*.jpg", "image/jpeg")); resolver.Add(new ContentType("/images/*", "image/jpeg")); resolver.Add(new ContentType("/log/**", "text/plain")); resolver.Add(new ContentType("*.exe", "application/octetstream")); resolver.Add(new ContentType("**.txt", "text/plain")); resolver.Add(new ContentType("/html/*", "text/html")); AssertEquals(7, resolver.Count); AssertEquals("image/jpeg", resolver.Resolve("image.jpg").Value); AssertEquals("text/plain", resolver.Resolve("README.txt").Value); int index = 0; for(int i = resolver.Count; i > 0; i--) { ContentType type = resolver[i - 1]; if(type.Value.Equals("text/plain")) { index = i; } } resolver.RemoveAt(index); resolver.Add(new ContentType("*", "application/octetstream")); AssertEquals("application/octetstream", resolver.Resolve("README.txt").Value); AssertEquals("application/octetstream", resolver.Resolve("README.txt").Value); resolver.Add(new ContentType("README.*", "text/html")); resolver.Add(new ContentType("README.txt", "text/plain")); AssertEquals("text/plain", resolver.Resolve("README.txt").Value); AssertEquals("text/html", resolver.Resolve("README.jsp").Value); }