using Centron.BusinessLogic; using Centron.BusinessLogic.Sales.Receipts.DataAndResults; using Centron.BusinessLogic.WebServices.Sales.Receipts; using Centron.Data.WebServices.Sales.Receipts.Orders; using Centron.Interfaces; using Centron.Interfaces.Administration.Environment; using Centron.Interfaces.BL; using Centron.Interfaces.Sales.Receipts; using Centron.Tests.EndToEnd.Infrastructure; using Xunit; using Xunit.Abstractions; namespace Centron.Tests.EndToEnd.Tests.ManuallyCloseOrder { public class ManuallyCloseOrderTests : EndToEndTest { public ManuallyCloseOrderTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { } public override void Execute() { const int OrderI3D = 4380; // Load order and ensure state is Active var order = this.GetOrder(OrderI3D); Assert.Equal(ReceiptState.Active, order.State); // Change state and save order order.State = ReceiptState.Completed; this.SaveOrder(order); // Ensure the state got saved correctly var orderAfterSave = this.GetOrder(OrderI3D); Assert.Equal(ReceiptState.Completed, order.State); } private ReceiptOrderDTO GetOrder(int orderI3D) { using var session = new BLSession(); var receipt = session.GetBL().GetReceiptByI3D(orderI3D, CentronObjectKindNumeric.OrderClass).ThrowIfError(); return (ReceiptOrderDTO)receipt; } private void SaveOrder(ReceiptOrderDTO order) { using var session = new BLSession(); var saveResult = session.GetBL().SaveReceipt( order, this.GetLoggedInUser().User, new SaveReceiptData { IgnoreCallbacks = true, }, autoLockIfNewReceipt: false, application: CreatedThroughApplication.WebServices, receiptTemplateFolderI3D: null).ThrowIfError(); } } }