test: check both with and without spaces
This commit is contained in:
@@ -5,9 +5,9 @@ namespace InkBlot.Tests;
|
|||||||
|
|
||||||
public class MultiDivertTest : TestBase
|
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([]);
|
diagnostics.ShouldBe([]);
|
||||||
var storyNodes = story.StoryNodes.ToArray();
|
var storyNodes = story.StoryNodes.ToArray();
|
||||||
@@ -15,74 +15,90 @@ public class MultiDivertTest : TestBase
|
|||||||
return storyNodes;
|
return storyNodes;
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Theory]
|
||||||
public void TestThreadDivert()
|
[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"])))]);
|
storyNodes.ShouldBe([new MultiDivert(new ThreadDivert(new Identifier(["threadName"])))]);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Theory]
|
||||||
public void TestSimpleDivert()
|
[InlineData(true)]
|
||||||
|
[InlineData(false)]
|
||||||
|
public void TestSimpleDivert(bool stripSpaces)
|
||||||
{
|
{
|
||||||
var storyNodes = MyParseText("-> divertName");
|
var storyNodes = MyParseText("-> divertName", stripSpaces);
|
||||||
storyNodes.ShouldBe([
|
storyNodes.ShouldBe([
|
||||||
new MultiDivert(new TunnelsAndDivertsList([], new TunnelListEndingDivert(new Identifier(["divertName"]))))
|
new MultiDivert(new TunnelsAndDivertsList([], new TunnelListEndingDivert(new Identifier(["divertName"]))))
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Theory]
|
||||||
public void TestDefaultChoice()
|
[InlineData(true)]
|
||||||
|
[InlineData(false)]
|
||||||
|
public void TestDefaultChoice(bool stripSpaces)
|
||||||
{
|
{
|
||||||
var storyNodes = MyParseText("->");
|
var storyNodes = MyParseText("->", stripSpaces);
|
||||||
storyNodes.ShouldBe([
|
storyNodes.ShouldBe([
|
||||||
new MultiDivert(new TunnelsAndDivertsList([], new TunnelListEndingDivert(null)))
|
new MultiDivert(new TunnelsAndDivertsList([], new TunnelListEndingDivert(null)))
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Theory]
|
||||||
public void TestReturnFromTunnel()
|
[InlineData(true)]
|
||||||
|
[InlineData(false)]
|
||||||
|
public void TestReturnFromTunnel(bool stripSpaces)
|
||||||
{
|
{
|
||||||
var storyNodes = MyParseText("->->");
|
var storyNodes = MyParseText("->->", stripSpaces);
|
||||||
storyNodes.ShouldBe([
|
storyNodes.ShouldBe([
|
||||||
new MultiDivert(new TunnelsAndDivertsList([], new TunnelListEndingReturnFromTunnel(null)))
|
new MultiDivert(new TunnelsAndDivertsList([], new TunnelListEndingReturnFromTunnel(null)))
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Theory]
|
||||||
public void TestDivertFromTunnel()
|
[InlineData(true)]
|
||||||
|
[InlineData(false)]
|
||||||
|
public void TestDivertFromTunnel(bool stripSpaces)
|
||||||
{
|
{
|
||||||
var storyNodes = MyParseText("->-> divertName");
|
var storyNodes = MyParseText("->-> divertName", stripSpaces);
|
||||||
storyNodes.ShouldBe([
|
storyNodes.ShouldBe([
|
||||||
new MultiDivert(new TunnelsAndDivertsList([],
|
new MultiDivert(new TunnelsAndDivertsList([],
|
||||||
new TunnelListEndingReturnFromTunnel(new Identifier(["divertName"]))))
|
new TunnelListEndingReturnFromTunnel(new Identifier(["divertName"]))))
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Theory]
|
||||||
public void TestTunnel()
|
[InlineData(true)]
|
||||||
|
[InlineData(false)]
|
||||||
|
public void TestTunnel(bool stripSpaces)
|
||||||
{
|
{
|
||||||
var storyNodes = MyParseText("-> tunnelName ->");
|
var storyNodes = MyParseText("-> tunnelName ->", stripSpaces);
|
||||||
storyNodes.ShouldBe([
|
storyNodes.ShouldBe([
|
||||||
new MultiDivert(new TunnelsAndDivertsList([new Identifier(["tunnelName"])],
|
new MultiDivert(new TunnelsAndDivertsList([new Identifier(["tunnelName"])],
|
||||||
new TunnelListEndingDivert(null)))
|
new TunnelListEndingDivert(null)))
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Theory]
|
||||||
public void TestTunnelWithDivert()
|
[InlineData(true)]
|
||||||
|
[InlineData(false)]
|
||||||
|
public void TestTunnelWithDivert(bool stripSpaces)
|
||||||
{
|
{
|
||||||
var storyNodes = MyParseText("-> tunnelName -> divertName");
|
var storyNodes = MyParseText("-> tunnelName -> divertName", stripSpaces);
|
||||||
storyNodes.ShouldBe([
|
storyNodes.ShouldBe([
|
||||||
new MultiDivert(new TunnelsAndDivertsList([new Identifier(["tunnelName"])],
|
new MultiDivert(new TunnelsAndDivertsList([new Identifier(["tunnelName"])],
|
||||||
new TunnelListEndingDivert(new Identifier(["divertName"]))))
|
new TunnelListEndingDivert(new Identifier(["divertName"]))))
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Theory]
|
||||||
public void TestMultiTunnel()
|
[InlineData(true)]
|
||||||
|
[InlineData(false)]
|
||||||
|
public void TestMultiTunnel(bool stripSpaces)
|
||||||
{
|
{
|
||||||
var storyNodes = MyParseText("-> tunnelName1 -> tunnelName2 ->");
|
var storyNodes = MyParseText("-> tunnelName1 -> tunnelName2 ->", stripSpaces);
|
||||||
storyNodes.ShouldBe([
|
storyNodes.ShouldBe([
|
||||||
new MultiDivert(new TunnelsAndDivertsList(
|
new MultiDivert(new TunnelsAndDivertsList(
|
||||||
[new Identifier(["tunnelName1"]), new Identifier(["tunnelName2"])],
|
[new Identifier(["tunnelName1"]), new Identifier(["tunnelName2"])],
|
||||||
@@ -90,10 +106,12 @@ public class MultiDivertTest : TestBase
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Theory]
|
||||||
public void TestMultiTunnelWithReturn()
|
[InlineData(true)]
|
||||||
|
[InlineData(false)]
|
||||||
|
public void TestMultiTunnelWithReturn(bool stripSpaces)
|
||||||
{
|
{
|
||||||
var storyNodes = MyParseText("-> tunnelName1 -> tunnelName2 ->->");
|
var storyNodes = MyParseText("-> tunnelName1 -> tunnelName2 ->->", stripSpaces);
|
||||||
storyNodes.ShouldBe([
|
storyNodes.ShouldBe([
|
||||||
new MultiDivert(new TunnelsAndDivertsList(
|
new MultiDivert(new TunnelsAndDivertsList(
|
||||||
[new Identifier(["tunnelName1"]), new Identifier(["tunnelName2"])],
|
[new Identifier(["tunnelName1"]), new Identifier(["tunnelName2"])],
|
||||||
@@ -101,10 +119,12 @@ public class MultiDivertTest : TestBase
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Theory]
|
||||||
public void TestMultiTunnelWithReturnAndReplacement()
|
[InlineData(true)]
|
||||||
|
[InlineData(false)]
|
||||||
|
public void TestMultiTunnelWithReturnAndReplacement(bool stripSpaces)
|
||||||
{
|
{
|
||||||
var storyNodes = MyParseText("-> tunnelName1 -> tunnelName2 ->-> replacementDivert");
|
var storyNodes = MyParseText("-> tunnelName1 -> tunnelName2 ->-> replacementDivert", stripSpaces);
|
||||||
storyNodes.ShouldBe([
|
storyNodes.ShouldBe([
|
||||||
new MultiDivert(new TunnelsAndDivertsList(
|
new MultiDivert(new TunnelsAndDivertsList(
|
||||||
[new Identifier(["tunnelName1"]), new Identifier(["tunnelName2"])],
|
[new Identifier(["tunnelName1"]), new Identifier(["tunnelName2"])],
|
||||||
|
|||||||
Reference in New Issue
Block a user