using Centron.BusinessLogic; using Centron.BusinessLogic.Sales.Receipts.DataAndResults; using Centron.BusinessLogic.WebServices.Sales.Receipts; using Centron.BusinessLogic.WebServices.Sales.Receipts.DataAndResults; using Centron.Data.WebServices.Sales.Receipts.Orders; using Centron.Interfaces; using Centron.Interfaces.Administration.Environment; using Centron.Interfaces.BL; using Centron.Tests.EndToEnd.Infrastructure; using Xunit.Abstractions; namespace Centron.Tests.EndToEnd.Tests.ReceiptAdditionalText { public class ReceiptAdditionalTextTests : EndToEndTest { public ReceiptAdditionalTextTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { } public override void Execute() { var additionalTextRequiredInputs = new[] { false, true }; var additionalTextFilledInputs = new[] { false, true }; this.ExecuteMatrix(additionalTextRequiredInputs, additionalTextFilledInputs, (additionalTextRequired, additionalTextFilled) => { this.UpdateSettings(additionalTextRequired); var order = this.GetNewVersion(); order.AdditionalText = additionalTextFilled ? "Überschrift" : string.Empty; var saveResult = this.SaveReceipt(order); this.Verifier.Verify($"Required_{additionalTextRequired}_AdditionalTextFilled_{additionalTextFilled}", saveResult); }); } private void UpdateSettings(bool additionalTextRequired) { using var session = new BLSession(); var receiptSettings = session.GetBL().GetReceiptSettings(this.GetLoggedInUser().User); receiptSettings.ReceiptAdditionalTextIsRequired = additionalTextRequired; session.GetBL().UpdateReceiptSettings(receiptSettings, this.GetLoggedInUser().User); } private Result SaveReceipt(ReceiptOrderDTO order) { using var session = new BLSession(); var saveResult = session.GetBL().SaveReceipt( order, this.GetLoggedInUser().User, new SaveReceiptData(), autoLockIfNewReceipt: false, CreatedThroughApplication.CentronNet, receiptTemplateFolderI3D: null); return saveResult; } private ReceiptOrderDTO GetNewVersion() { using var session = new BLSession(); var newVersionResult = session.GetBL().CreateNewVersion( CentronObjectKindNumeric.OrderClass, 100, null, null, this.GetLoggedInUser().User, new CreateNewVersionData { IgnoreCallbacks = true }); return (ReceiptOrderDTO)newVersionResult.Data.Receipt; } } }