using Centron.BusinessLogic; using Centron.BusinessLogic.WebServices.Sales.Receipts; using Centron.BusinessLogic.WebServices.Sales.Receipts.ArticleSearch; using Centron.BusinessLogic.WebServices.Warehousing; using Centron.Interfaces; using Centron.Interfaces.BL; using Centron.Tests.EndToEnd.Infrastructure; using CentronSoftware.Centron.WebServices.Entities.Warehousing; using Xunit.Abstractions; namespace Centron.Tests.EndToEnd.Tests.ForeignArticleTextTest; public class ForeignArticleTextTest : EndToEndTest { public ForeignArticleTextTest(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { } private const int ARTICLE1 = 50; //ArticleCode 9673A003 -> some scanner private const int FRANCE = 6; private const int SWEDEN = 18; private const int SPAIN = 22; private const int OFFERI3D = 6750; public override void Execute() { this.CreateForeignArticleTexts(); this.ApplyForeignArticleTextsToReceipt(); } private void CreateForeignArticleTexts() { var one = new ForeignArticleTextDTO() { ArticleI3D = ARTICLE1, CountryI3D = FRANCE, Description = "Yo mamma si grosse, ce n'est pas la cigogne qui l'a amenée. C'était la grue !" }; var savedOneResult = this.WithSession(f => f.GetBL().SaveOrUpdateForeignArticleText(one)); this.Verifier.Verify("1_savedForeignArticleText_France", savedOneResult); var two = new ForeignArticleTextDTO() { ArticleI3D = ARTICLE1, CountryI3D = SWEDEN, Description = "Min vän fick 8 av 10 på sitt förarprov. De andra två lyckades hoppa ur vägen för honom." }; var savedTwoResult = this.WithSession(f => f.GetBL().SaveOrUpdateForeignArticleText(two)); this.Verifier.Verify("2_savedForeignArticleText_Sweden", savedTwoResult); var three = new ForeignArticleTextDTO() { ArticleI3D = ARTICLE1, CountryI3D = SPAIN, Description = "hija: mamá estoy aburrida.mamá: no sea burra." }; var savedThreeResult = this.WithSession(f => f.GetBL().SaveOrUpdateForeignArticleText(three)); this.Verifier.Verify("3_savedForeignArticleText_Spain", savedThreeResult); } private void ApplyForeignArticleTextsToReceipt() { var user = this.GetLoggedInUser(); using (var session = new BLSession()) { var receipt = session.GetBL().GetReceiptByI3D(OFFERI3D, CentronObjectKindNumeric.OfferClass).ThrowIfError(); receipt.CountryI3D = FRANCE; var receiptItemsResultFrance = session.GetBL().CreateArticleReceiptItems( receipt, false, ARTICLE1, null, null, -1, user); this.Verifier.Verify("1_FrenchArticleTextInReceipt", receiptItemsResultFrance); receipt.CountryI3D = SWEDEN; var receiptItemsResultSweden = session.GetBL().CreateArticleReceiptItems( receipt, false, ARTICLE1, null, null, -1, user); this.Verifier.Verify("2_SwedishArticleTextInReceipt", receiptItemsResultSweden); receipt.CountryI3D = SPAIN; var receiptItemsResultSpain = session.GetBL().CreateArticleReceiptItems( receipt, false, ARTICLE1, null, null, -1, user); this.Verifier.Verify("3_SpanishArticleTextInReceipt", receiptItemsResultSpain); //Belgium has no foreign article texts, so it should take the default one receipt.CountryI3D = 2; var receiptItemsResultDefault = session.GetBL().CreateArticleReceiptItems( receipt, false, ARTICLE1, null, null, -1, user); this.Verifier.Verify("4_DefaultArticleTextInReceipt", receiptItemsResultDefault); } } }