using Centron.BusinessLogic; using Centron.BusinessLogic.EmployeeArea; using Centron.BusinessLogic.Sales.Receipts.DataAndResults; using Centron.BusinessLogic.WebServices.Sales.Receipts; using Centron.Data.Entities.Administration.Logins; 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; using Xunit.Abstractions; namespace Centron.Tests.EndToEnd.Tests.ReceiptConsumables { public class ReceiptConsumablesTest : EndToEndTest { public ReceiptConsumablesTest(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { } public override void Execute() { var order = this.CreateNewOrderWithMasterDataListConsumables(); this.FailAddConsumable(order); } private ReceiptOrderDTO CreateNewOrderWithMasterDataListConsumables() { ReceiptOrderDTO order = null; using (var session = new BLSession()) { var user = session.GetBL().GetAppUser(f => f.I3D == 11); var orderResult = session.GetBL().CreateNewReceipt(CentronObjectKindNumeric.OrderClass, new LoggedInUser(user), 10000, new CreateReceiptData(), null, null, false, false, false); order = orderResult.Data.Receipt as ReceiptOrderDTO; int articleI3D = 1283; var receiptItemsResult = session.GetBL().CreateMasterDataListConsumableReceiptItem( order, articleI3D, 4714, -1, new LoggedInUser(user)); this.Verifier.Verify($"MasterDataListConsumableReceiptItemResultFor{articleI3D}", receiptItemsResult); order.Items.Add((ReceiptOrderItemDTO)receiptItemsResult.Data); } using (var session = new BLSession()) { var user = session.GetBL().GetAppUser(f => f.I3D == 11); var saveResult = session.GetBL().SaveReceipt(order, user, new SaveReceiptData { IgnoreCallbacks = true }, false, CreatedThroughApplication.CentronNet, null); this.Verifier.Verify("SaveOrderWithMasterDataListConsumableResult", saveResult); var orderLoaded = session.GetBL().GetReceiptByI3D(saveResult.Data.Receipt.I3D, CentronObjectKindNumeric.OrderClass, new LoggedInUser(user)); this.Verifier.Verify("OrderWithMasterDataListConsumableResult", orderLoaded.Data); } return order; } private void FailAddConsumable(ReceiptOrderDTO order) { using (var session = new BLSession()) { var user = session.GetBL().GetAppUser(f => f.I3D == 11); int articleI3D = 1283; var receiptItemsResult = session.GetBL().CreateMasterDataListConsumableReceiptItem( order, articleI3D, 10, //serialnumer which does not match master data list - 1, new LoggedInUser(user)); order.Items.Add((ReceiptOrderItemDTO)receiptItemsResult.Data); } using (var session = new BLSession()) { var user = session.GetBL().GetAppUser(f => f.I3D == 11); var saveResult = session.GetBL().SaveReceipt(order, user, new SaveReceiptData { IgnoreCallbacks = true }, false, CreatedThroughApplication.CentronNet, null); Assert.Equal(ResultStatus.Error, saveResult.Status); Assert.Equal("Mindestens eine Position verweist auf ein ungültiges Stammblatt.", saveResult.Message); } } } }