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%")); }
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 % }