public void TestLoadTwisonDataWithOptionsIsValid() { var allOptions = new TwisonLoaderOptions() { trimPassages = true, removeLinkTextFromPassages = true, collapseNewLines = true, maxNewLineChain = 1 }; var story = new TwisonLoader(allOptions).Load(ExampleStory); Assert.AreEqual(story.passages.Count, 5); Assert.NotNull(story.startNodePassage); foreach (var passage in story.passages) { Assert.False(string.IsNullOrWhiteSpace(passage.name)); Assert.False(string.IsNullOrWhiteSpace(passage.text)); foreach (var link in passage.links) { Assert.False(string.IsNullOrWhiteSpace(link.name)); Assert.False(string.IsNullOrWhiteSpace(link.link)); Assert.NotNull(link.passage); } } }
public void TestCreateRuntime() { var story = new TwisonLoader().Load(ExampleStory); var tracker = new TwisonTagFilterBehaviour(); var runtime = new TwisonRuntime(story, tracker, true); Assert.AreEqual(runtime.FindByName("Dialog.VillagerGeneric1.Hello"), runtime.Active); }
public void TestLoadTwisonData() { var story = new TwisonLoader().Load(ExampleStory); Assert.AreEqual(story.passages.Count, 5); Assert.NotNull(story.startNodePassage); foreach (var link in story.passages.SelectMany(passage => passage.links)) { Assert.NotNull(link.passage); } }
public void TestLoadTwisonDataAndPruneAndFilterPassages() { var story = new TwisonLoader(new TwisonLoaderOptions() { trimPassages = true, removeLinkTextFromPassages = true }).Load(ExampleStory); var cleanedPassage = story.passages.First(i => i.name == "Dialog.VillagerGeneric1.Hello"); Assert.AreEqual(cleanedPassage.text, "Greetings stranger~\n\nWhat brings you here?\n\n\n\n\n\n..."); }
public void TestLoadTwisonDataCollapseNewLinesMultiNewlLine() { var story = new TwisonLoader(new TwisonLoaderOptions() { trimPassages = true, removeLinkTextFromPassages = true, collapseNewLines = true, maxNewLineChain = 2 }).Load(ExampleStory); var cleanedPassage = story.passages.First(i => i.name == "Dialog.VillagerGeneric1.Hello"); Assert.AreEqual(cleanedPassage.text, "Greetings stranger~\n\nWhat brings you here?\n\n..."); }
public void TestFilteredLinksBehaviour() { var story = new TwisonLoader().Load(ExampleStory); var tracker = new TwisonTagFilterBehaviour(); var runtime = new TwisonRuntime(story, tracker, true); // Before seeing restricted tag, cannot see link Assert.False(runtime.Links.Any(i => i.name == "North forest")); // Act Assert.True(runtime.GoToPassage("Rumors")); Assert.True(runtime.GoToPassage("Goblins")); Assert.True(runtime.GoToPreviousPassage()); Assert.True(runtime.GoToPreviousPassage()); Assert.AreEqual(runtime.Active.name, "Dialog.VillagerGeneric1.Hello"); // Assert: After seeing tag, can see link Assert.True(runtime.Links.Any(i => i.name == "North forest")); }