41 lines
1.1 KiB
C#
41 lines
1.1 KiB
C#
using ImportAssist.Core;
|
|
using Xunit;
|
|
|
|
namespace ImportAssist.Core.Tests;
|
|
|
|
public sealed class InvoiceAnalysisValidatorTests
|
|
{
|
|
[Theory]
|
|
[InlineData(null, true)]
|
|
[InlineData("INV-001", true)]
|
|
[InlineData("", false)]
|
|
[InlineData(" ", false)]
|
|
[InlineData("\t", false)]
|
|
[InlineData("\r\n", false)]
|
|
public void Validate_ChecksInvoiceIdContract(
|
|
string? invoiceId,
|
|
bool expectedValid)
|
|
{
|
|
var analysis = new InvoiceAnalysis(
|
|
Summary: "Testanalyse",
|
|
Findings:
|
|
[
|
|
new AnalysisFinding(
|
|
LineNumber: 6,
|
|
InvoiceId: invoiceId,
|
|
RuleId: "INV-004",
|
|
Description: "Betrag muss größer als null sein.",
|
|
NextCheck: "Originalbetrag anhand des Belegs prüfen.",
|
|
MissingInformation: ["Originalbetrag"])
|
|
],
|
|
Limitations: []);
|
|
|
|
var errors = InvoiceAnalysisValidator.Validate(analysis);
|
|
|
|
if (expectedValid)
|
|
Assert.Empty(errors);
|
|
else
|
|
Assert.Single(errors);
|
|
}
|
|
}
|