using InkBlot.ParseHierarchy; using Shouldly; namespace InkBlot.Tests; public class ContentTextTest { [Theory] [InlineData("Hello!", "Hello!", 0)] [InlineData("Hel-lo!", "Hel-lo!", 0)] [InlineData("Hel\\lo!", "Hello!", 0)] [InlineData("Hel), threads (<-) and tags (#) are supported [InlineData("Hel->lo!", "", 1)] [InlineData("Hel<-lo!", "", 1)] [InlineData("Hel#lo!", "", 1)] public void TestBaseContentSuccess(string inkInput, string result, int numErrors) { // parse the story var fileReader = new PreMadeFileReader([ ("main.ink", inkInput) ]); var parser = new InkBlotParser(); var (story, diagnostics) = parser.Parse(fileReader, "main.ink"); // check the diagnostic counts match diagnostics.Count().ShouldBe(numErrors); // check the contents match (only if there was no diagnostic) if (numErrors != 0) return; var contents = story.StoryNodes.ToArray(); contents.ShouldBe([new Content(result)]); } }