public void TestContext() { var test = new RollingContextTest() .Update(@" 1. Test 1. Foo 2. Bar 2. Test 2. Something 3. Foo 5. Bar 3. Foo ") .Assert( (WarningIDs.InvalidListNumberOrder, 26, 32, "3-2"), (WarningIDs.InvalidListNumberOrder, 54, 59, "4-5")) .Update(@" 1. Test 1. Foo 2. Test 2. Something 3. Foo 4. Bar 18. Foo ") .Assert(WarningIDs.InvalidListNumberOrder, 53, 59, "5-18") .Clear() .AssertNotPresent(WarningIDs.InvalidListNumberOrder) .Update("2. Foo") .Assert(WarningIDs.InvalidListNumberOrder, 0, 5, "1-2") .Update("1. Bar") .AssertNoWarnings(); }
public void TestContext() { var test = new RollingContextTest() .Update("Foo bar") .AssertNoWarnings() .Update("[]") .Assert(WarningIDs.EmptyReference, 0, 1, string.Empty) .Update("[Foo](.)") .AssertNoWarnings() .Update("[Foo]()") .AssertContains(WarningIDs.EmptyReference) .AssertNotPresent(WarningIDs.UnresolvedReference) .Update("# Test", "Foo.md") .Update("[Bar](foo.md#test)") .AssertNoWarnings() .Update("\n[Bar](foo.md#tes)") .Assert(WarningIDs.UnresolvedReference, 7, 16, "foo.md#tes") .Update("[Bar]: foo.md#test") .Assert(WarningIDs.UnusedDefinedReference, 0, 17, "Bar") .RemoveEntity("fOo.mD") .AssertContains(WarningIDs.UnresolvedReference, 0, 17, "foo.md#test") .Clear() .AssertNoWarnings() .Update("\n[]()\n\n# Foo \n") .Assert( // Need a change in Markdig to get accurate LinkInline source spans for Label and Url (WarningIDs.EmptyLinkContent, 1, 4, string.Empty), (WarningIDs.EmptyReference, 1, 4, string.Empty), (WarningIDs.HeadingEndsWithWhitespace, 7, 12, "# Foo ")) .Clear() .Update("[Test]", "Bar.md") .Assert(WarningIDs.UnresolvedReference, 0, 5, "Test", "Bar.md") .AssertContains(w => w.IsError) .AssertSingle(w => w.Message.Length > 5); }
public void DuplicateMarkdownFile() { var test = new RollingContextTest() .Update("[Some error]") .AssertContains(WarningIDs.UnresolvedReference) .AddMarkdownFile("[Not an error anymore](.)", assertReturn: false) .AssertContains(WarningIDs.UnresolvedReference); }
public void RemoveHeaderReference() { var test = new RollingContextTest() .Update("# Foo\n# Bar", "test.md") .Update("[Bar](test.md#bar) [Foo](test.md#foo)") .AssertNoWarnings() .Update("# Bar", "test.md") .Assert(WarningIDs.UnresolvedReference, 25, 35, "test.md#foo"); }
public void RemoveNonMarkdownFile() { var test = new RollingContextTest() .AddEntity("foo.bar") .Update("[Foo](foo.bar)") .AssertNoWarnings() .RemoveEntity("foo.bar", true) .AssertHasWarnings(); }
public void DuplicateEntity() { var test = new RollingContextTest() .AddEntity("foo.bar") .Update("[Foo](foo.bar)") .AssertNoWarnings() .Update("[Foo](Foo.bar)") .AssertContains(WarningIDs.FileReferenceCaseMismatch) .AddEntity("Foo.bar", assertReturn: false) .AssertContains(WarningIDs.FileReferenceCaseMismatch); }
public void Test() { var test = new RollingContextTest() .AddEntity("Foo.bar") .Update("[Stuff](foo.bar)") .AssertContains(WarningIDs.FileReferenceCaseMismatch, 8, 14, "foo.bar") .AssertContains(WarningIDs.UnresolvedReference) .Clear() .AssertNoWarnings() .Update("[Test](bar.Foo)") .AddEntity("bar.foo") .AssertContains(WarningIDs.FileReferenceCaseMismatch, 7, 13, "bar.Foo") .AssertWarningCount(2); }
public void RemoveFileWithHeaderReference() { var test = new RollingContextTest() .Update("# Foo", "bar.md") .Update("[Foo](bar.md#foo)", "foo.md") .AssertNoWarnings() .RemoveEntity("foo.md") .Update("[Foo](bar.md#foo)", "foo.md") .Update("[Foo](bar.md#foo)", "foo2.md") .RemoveEntity("foo.md") .RemoveEntity("bar.md") .AssertWarningCount(1) .Assert(WarningIDs.UnresolvedReference, 6, 15, "bar.md#foo", "foo2.md"); }
public void IsRecognised() { var test = new RollingContextTest() .AddEntity("test-dir") .AddEntity("slash-dir/") .AddEntity("backslash-dir\\") .Update(@" [bare](test-dir) [slash](test-dir/) ") .AssertNoWarnings() .Update(@" [bare](slash-dir) [slash](slash-dir/) ") .AssertNoWarnings() .Update(@" [bare](backslash-dir) [slash](backslash-dir/) ") .AssertNoWarnings() .Update("[foo](test-dir\\)") .AssertHasWarnings(); }
public void RemoveNonExistantEntity() { var test = new RollingContextTest() .RemoveEntity("foo.bar", false); }