예제 #1
0
        public static void ResolverThrowIsWrapped()
        {
            INameResolver resolver = new MockNameResolver {
                OnResolve = (name) => { throw new NotImplementedException(); }
            };

            Assert.Equal("abc", resolver.ResolveWholeString("abc")); // never called, ok

            // rogue exceptions are caught and wrapped.
            Assert.Throws <InvalidOperationException>(() => resolver.ResolveWholeString("%abc%"));
        }
예제 #2
0
        public static void ResolveNameSet()
        {
            INameResolver resolver = new MockNameResolver {
                OnResolve = (name) => name.ToUpper()
            };

            Assert.Equal("ABC", resolver.ResolveWholeString("%abc%"));
            Assert.Equal("1ABC23XYZ4", resolver.ResolveWholeString("1%abc%23%xyz%4"));
            Assert.Equal("ABCdefXYZ", resolver.ResolveWholeString("%abc%def%xyz%"));
            Assert.Equal("ab", resolver.ResolveWholeString("a%%b"));

            Assert.Throws <InvalidOperationException>(() => resolver.ResolveWholeString("%abc")); // no closing %
        }