From d1051edc90bd5fef2ab74b2a752a13c6c0432501 Mon Sep 17 00:00:00 2001 From: mattia Date: Sat, 1 Mar 2025 18:17:17 +0100 Subject: [PATCH] test: check both with and without spaces --- InkBlot.Tests/MultiDivertTest.cs | 84 ++++++++++++++++++++------------ 1 file changed, 52 insertions(+), 32 deletions(-) diff --git a/InkBlot.Tests/MultiDivertTest.cs b/InkBlot.Tests/MultiDivertTest.cs index 28b16f9..eeb11b1 100644 --- a/InkBlot.Tests/MultiDivertTest.cs +++ b/InkBlot.Tests/MultiDivertTest.cs @@ -5,9 +5,9 @@ namespace InkBlot.Tests; public class MultiDivertTest : TestBase { - private IStoryNode[] MyParseText(string text) + private IStoryNode[] MyParseText(string text, bool stripSpaces) { - var (story, diagnostics) = ParseText(text); + var (story, diagnostics) = ParseText(stripSpaces ? text.Replace(" ", "").Replace("\t", "") : text); diagnostics.ShouldBe([]); var storyNodes = story.StoryNodes.ToArray(); @@ -15,74 +15,90 @@ public class MultiDivertTest : TestBase return storyNodes; } - [Fact] - public void TestThreadDivert() + [Theory] + [InlineData(true)] + [InlineData(false)] + public void TestThreadDivert(bool stripSpaces) { - var storyNodes = MyParseText("<- threadName"); + var storyNodes = MyParseText("<- threadName", stripSpaces); storyNodes.ShouldBe([new MultiDivert(new ThreadDivert(new Identifier(["threadName"])))]); } - [Fact] - public void TestSimpleDivert() + [Theory] + [InlineData(true)] + [InlineData(false)] + public void TestSimpleDivert(bool stripSpaces) { - var storyNodes = MyParseText("-> divertName"); + var storyNodes = MyParseText("-> divertName", stripSpaces); storyNodes.ShouldBe([ new MultiDivert(new TunnelsAndDivertsList([], new TunnelListEndingDivert(new Identifier(["divertName"])))) ]); } - [Fact] - public void TestDefaultChoice() + [Theory] + [InlineData(true)] + [InlineData(false)] + public void TestDefaultChoice(bool stripSpaces) { - var storyNodes = MyParseText("->"); + var storyNodes = MyParseText("->", stripSpaces); storyNodes.ShouldBe([ new MultiDivert(new TunnelsAndDivertsList([], new TunnelListEndingDivert(null))) ]); } - [Fact] - public void TestReturnFromTunnel() + [Theory] + [InlineData(true)] + [InlineData(false)] + public void TestReturnFromTunnel(bool stripSpaces) { - var storyNodes = MyParseText("->->"); + var storyNodes = MyParseText("->->", stripSpaces); storyNodes.ShouldBe([ new MultiDivert(new TunnelsAndDivertsList([], new TunnelListEndingReturnFromTunnel(null))) ]); } - [Fact] - public void TestDivertFromTunnel() + [Theory] + [InlineData(true)] + [InlineData(false)] + public void TestDivertFromTunnel(bool stripSpaces) { - var storyNodes = MyParseText("->-> divertName"); + var storyNodes = MyParseText("->-> divertName", stripSpaces); storyNodes.ShouldBe([ new MultiDivert(new TunnelsAndDivertsList([], new TunnelListEndingReturnFromTunnel(new Identifier(["divertName"])))) ]); } - [Fact] - public void TestTunnel() + [Theory] + [InlineData(true)] + [InlineData(false)] + public void TestTunnel(bool stripSpaces) { - var storyNodes = MyParseText("-> tunnelName ->"); + var storyNodes = MyParseText("-> tunnelName ->", stripSpaces); storyNodes.ShouldBe([ new MultiDivert(new TunnelsAndDivertsList([new Identifier(["tunnelName"])], new TunnelListEndingDivert(null))) ]); } - [Fact] - public void TestTunnelWithDivert() + [Theory] + [InlineData(true)] + [InlineData(false)] + public void TestTunnelWithDivert(bool stripSpaces) { - var storyNodes = MyParseText("-> tunnelName -> divertName"); + var storyNodes = MyParseText("-> tunnelName -> divertName", stripSpaces); storyNodes.ShouldBe([ new MultiDivert(new TunnelsAndDivertsList([new Identifier(["tunnelName"])], new TunnelListEndingDivert(new Identifier(["divertName"])))) ]); } - [Fact] - public void TestMultiTunnel() + [Theory] + [InlineData(true)] + [InlineData(false)] + public void TestMultiTunnel(bool stripSpaces) { - var storyNodes = MyParseText("-> tunnelName1 -> tunnelName2 ->"); + var storyNodes = MyParseText("-> tunnelName1 -> tunnelName2 ->", stripSpaces); storyNodes.ShouldBe([ new MultiDivert(new TunnelsAndDivertsList( [new Identifier(["tunnelName1"]), new Identifier(["tunnelName2"])], @@ -90,10 +106,12 @@ public class MultiDivertTest : TestBase ]); } - [Fact] - public void TestMultiTunnelWithReturn() + [Theory] + [InlineData(true)] + [InlineData(false)] + public void TestMultiTunnelWithReturn(bool stripSpaces) { - var storyNodes = MyParseText("-> tunnelName1 -> tunnelName2 ->->"); + var storyNodes = MyParseText("-> tunnelName1 -> tunnelName2 ->->", stripSpaces); storyNodes.ShouldBe([ new MultiDivert(new TunnelsAndDivertsList( [new Identifier(["tunnelName1"]), new Identifier(["tunnelName2"])], @@ -101,10 +119,12 @@ public class MultiDivertTest : TestBase ]); } - [Fact] - public void TestMultiTunnelWithReturnAndReplacement() + [Theory] + [InlineData(true)] + [InlineData(false)] + public void TestMultiTunnelWithReturnAndReplacement(bool stripSpaces) { - var storyNodes = MyParseText("-> tunnelName1 -> tunnelName2 ->-> replacementDivert"); + var storyNodes = MyParseText("-> tunnelName1 -> tunnelName2 ->-> replacementDivert", stripSpaces); storyNodes.ShouldBe([ new MultiDivert(new TunnelsAndDivertsList( [new Identifier(["tunnelName1"]), new Identifier(["tunnelName2"])],