using System.Linq; using Centron.BusinessLogic; using Centron.BusinessLogic.WebServices.Sales.Receipts; using Centron.Data.WebServices.Sales.Receipts; using Centron.Interfaces; 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.ReceiptVersions { public class ReceiptVersionTest : EndToEndTest { public ReceiptVersionTest(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { } private const int OrderI3D = 4357; public override void Execute() { this.LoadCurrentVersion(); this.LoadPreviousVersion(1); this.LoadPreviousVersion(2); this.LoadPreviousVersion(3); this.LoadPreviousVersion(4); } private void LoadCurrentVersion() { using (var session = new BLSession()) { var result = session.GetBL().GetReceiptByI3D(OrderI3D, CentronObjectKindNumeric.OrderClass); this.Verifier.Verify("CurrentVersion", result); } } private void LoadPreviousVersion(int version) { using (var session = new BLSession()) { var result = session.GetBL().GetReceiptVersionByI3D(CentronObjectKindNumeric.OrderClass, OrderI3D, version); this.Verifier.Verify("Version" + version, result); // Check receipt is previous version Assert.True(result.Data.IsPreviousVersion()); Assert.Equal(OrderI3D, result.Data.GetOriginalReceiptI3D()); // Check items are previous version var item = result.Data.GetReceiptItems().FirstOrDefault(); Assert.True(item.Has((IReceiptItemVersion f) => f.OriginalI3D)); Assert.True(item.Has((IReceiptItemVersion f) => f.ReceiptVersionI3D)); } } } }