using System.Linq; using Centron.BusinessLogic; using Centron.BusinessLogic.WebServices.Sales.Receipts; using Centron.Data.WebServices.Sales.Receipts; using Centron.Interfaces; using Centron.Interfaces.BL; using Centron.Interfaces.Sales.Receipts; using Centron.Tests.EndToEnd.Infrastructure; using CentronSoftware.Centron.WebServices.Extensions; using Xunit; using Xunit.Abstractions; namespace Centron.Tests.EndToEnd.Tests.SupplierReceiptItemOrigin { public class SupplierReceiptItemOriginTests : EndToEndTest { public SupplierReceiptItemOriginTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { } public override void Execute() { this.VerifyOriginFields(CentronObjectKindNumeric.SupplierDeliveryList, 4143); this.VerifyOriginFields(CentronObjectKindNumeric.SupplierInvoice, 4102); this.VerifyOriginFields(CentronObjectKindNumeric.SupplierCreditVoucher, 3); } private void VerifyOriginFields(CentronObjectKindNumeric receiptKind, int receiptI3D) { using (var session = new BLSession()) { var receipt = session.GetBL().GetReceiptByI3D(receiptI3D, receiptKind); Assert.Equal(ResultStatus.Success, receipt.Status); Assert.NotNull(receipt.Data); var itemsWithOrigin = receipt.Data.GetReceiptItems() .Select(f => new { ItemI3D = f.I3D, OriginKind = f.Get((IReceiptItemWithOrigin d) => d.OriginKind), OriginReceiptI3D = f.Get((IReceiptItemWithOrigin d) => d.OriginReceiptI3D), OriginReceiptItemI3D = f.Get((IReceiptItemWithOrigin d) => d.OriginReceiptItemI3D), }) .ToList(); this.Verifier.Verify($"{receiptKind.GetReceiptName()}_{receiptI3D}", itemsWithOrigin); } } } }