unittests
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
using TrafagSalesExporter.Models;
|
||||
using TrafagSalesExporter.Services;
|
||||
|
||||
namespace TrafagSalesExporter.Tests;
|
||||
|
||||
public class TransformationStrategiesTests
|
||||
{
|
||||
[Fact]
|
||||
public void ReplaceStrategy_Replaces_Text_Using_Argument_Syntax()
|
||||
{
|
||||
var strategy = new ReplaceTransformationStrategy();
|
||||
|
||||
var result = strategy.Transform("Intercompany Kunde", "Intercompany=>Extern");
|
||||
|
||||
Assert.Equal("Extern Kunde", result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ConstantStrategy_Returns_Argument_Ignoring_SourceValue()
|
||||
{
|
||||
var strategy = new ConstantTransformationStrategy();
|
||||
|
||||
var result = strategy.Transform("ignored", "CHF");
|
||||
|
||||
Assert.Equal("CHF", result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void FirstNonEmptyRecordStrategy_Uses_First_Non_Empty_Field_From_Argument_List()
|
||||
{
|
||||
var strategy = new FirstNonEmptyRecordTransformationStrategy();
|
||||
var record = new SalesRecord
|
||||
{
|
||||
CustomerName = "",
|
||||
SupplierName = "Fallback Supplier",
|
||||
Name = "Article Name"
|
||||
};
|
||||
var rule = new FieldTransformationRule
|
||||
{
|
||||
RuleScope = "Record",
|
||||
TargetField = nameof(SalesRecord.CustomerName),
|
||||
TransformationType = "FirstNonEmpty",
|
||||
Argument = $"{nameof(SalesRecord.CustomerName)}|{nameof(SalesRecord.SupplierName)}|{nameof(SalesRecord.Name)}"
|
||||
};
|
||||
|
||||
strategy.Transform(record, rule);
|
||||
|
||||
Assert.Equal("Fallback Supplier", record.CustomerName);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user