public void StubWebFileProviderTest()
        {
            var provider = new StubWebStaticProvider {
                Prefix = "xxx"
            };

            provider.Add("/a/b.c", "/a/b/c.d", "/a/b/b.c", "/a/a/b.c");
            Assert.AreEqual("/xxx/a/b.c", provider.Find("/a/b.c").Name);
            Assert.AreEqual(null, provider.Find("b.c"));
            Assert.AreEqual("/xxx/a/b.c", provider.Find("B.c", WebFileSerachMode.IgnorePath).Name);
            Assert.AreEqual("/xxx/a/b.c", provider.Find("/a/a/b.c", WebFileSerachMode.IgnorePath).Name);
            Assert.AreEqual("/xxx/a/a/b.c", provider.Find("a/a/b.c", WebFileSerachMode.ExactThenIgnore).Name);
            Assert.AreEqual("/xxx/a/b/b.c", provider.Find("/a/b/b.c", WebFileSerachMode.ExactThenIgnore).Name);
            Assert.AreEqual("/xxx/a/b.c", provider.Find("a/d/b.c", WebFileSerachMode.ExactThenIgnore).Name);
            Assert.AreEqual("/xxx/a/a/b.c", provider.Find("/a/A/b.c").Name);
            Assert.AreEqual("/xxx/a/a/b.c", provider.Find("/xxx/a/A/b.c").Name);
        }
        public void BasicResolverTest(string search, string result)
        {
            var resolver = new WebFileResolver();
            var provider = new StubWebStaticProvider {
                Prefix = "x"
            };

            provider.Add("/a/b.c", "/a/b/c.d", "/a/b/b.c", "/a/a/b.c");
            resolver.Providers.Add(provider);
            provider = new StubWebStaticProvider {
                Prefix = "y"
            };
            provider.Add("/a/b.c", "/a/b/c.x", "/a/b/b.c", "/a/a/b.c");
            resolver.Providers.Add(provider);
            provider = new StubWebStaticProvider {
                Prefix = ""
            };
            provider.Add("/a/b.c", "/a/b/c.x", "/a/b/b.c", "/a/a/b.c");
            resolver.Providers.Add(provider);

            Assert.AreEqual(result, resolver.Find(search).Name);
        }