templates support
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
using Inspectron.Epson.PrintServer.Printers.Utils;
|
||||
|
||||
namespace Inspectron.Epson.Templates.Tests.Helpers;
|
||||
|
||||
public static class PrintCommandAssertions
|
||||
{
|
||||
public static void AssertCommandExists(
|
||||
List<PrintCommand> commands,
|
||||
string textContains,
|
||||
bool? isBold = null,
|
||||
bool? isBig = null,
|
||||
bool? isTall = null,
|
||||
bool? isRed = null)
|
||||
{
|
||||
var matching = commands.Where(c => c.Text.Contains(textContains)).ToList();
|
||||
|
||||
if (matching.Count == 0)
|
||||
{
|
||||
throw new Xunit.Sdk.XunitException($"No command found containing text: '{textContains}'");
|
||||
}
|
||||
|
||||
foreach (var cmd in matching)
|
||||
{
|
||||
if (isBold.HasValue && cmd.IsBold != isBold.Value)
|
||||
{
|
||||
throw new Xunit.Sdk.XunitException(
|
||||
$"Command with text '{textContains}' has IsBold={cmd.IsBold}, expected {isBold.Value}");
|
||||
}
|
||||
if (isBig.HasValue && cmd.IsBig != isBig.Value)
|
||||
{
|
||||
throw new Xunit.Sdk.XunitException(
|
||||
$"Command with text '{textContains}' has IsBig={cmd.IsBig}, expected {isBig.Value}");
|
||||
}
|
||||
if (isTall.HasValue && cmd.IsTall != isTall.Value)
|
||||
{
|
||||
throw new Xunit.Sdk.XunitException(
|
||||
$"Command with text '{textContains}' has IsTall={cmd.IsTall}, expected {isTall.Value}");
|
||||
}
|
||||
if (isRed.HasValue && cmd.IsRed != isRed.Value)
|
||||
{
|
||||
throw new Xunit.Sdk.XunitException(
|
||||
$"Command with text '{textContains}' has IsRed={cmd.IsRed}, expected {isRed.Value}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void AssertSequence(List<PrintCommand> commands, params string[] expectedTexts)
|
||||
{
|
||||
var commandTexts = commands.Select(c => c.Text).ToList();
|
||||
int searchIndex = 0;
|
||||
|
||||
foreach (var expected in expectedTexts)
|
||||
{
|
||||
var foundIndex = -1;
|
||||
for (int i = searchIndex; i < commandTexts.Count; i++)
|
||||
{
|
||||
if (commandTexts[i].Contains(expected))
|
||||
{
|
||||
foundIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (foundIndex < 0)
|
||||
{
|
||||
throw new Xunit.Sdk.XunitException(
|
||||
$"Expected text '{expected}' not found in sequence after index {searchIndex}");
|
||||
}
|
||||
|
||||
searchIndex = foundIndex + 1;
|
||||
}
|
||||
}
|
||||
|
||||
public static void AssertCommandCount(List<PrintCommand> commands, string textContains, int expectedCount)
|
||||
{
|
||||
var count = commands.Count(c => c.Text.Contains(textContains));
|
||||
if (count != expectedCount)
|
||||
{
|
||||
throw new Xunit.Sdk.XunitException(
|
||||
$"Expected {expectedCount} commands containing '{textContains}', found {count}");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user