Files
Masterarbeit/QuellCode/CentronERP/tests/Centron.Tests.EndToEnd/Tests/MassUpdate/MassUpdateTests.cs
T
Christoph Schwörer f045b99a25 Codebasis als Dateien ins Arbeitsrepo statt als Gitlink
QuellCode/CentronERP war nur als Gitlink (Submodul-Referenz auf 79c1142)
getrackt, ohne .gitmodules und ohne erreichbares Remote. Der
Untersuchungsgegenstand der Versuchsreihe war damit nicht reproduzierbar
gesichert: Ein Klon haette ein leeres Verzeichnis erhalten, und die Belege
der 3.287 Anforderungen waeren nicht ueberpruefbar gewesen.

Umstellung:
- Historie nach c:\DEV\CentronERP_git_snapshot_79c1142 ausgelagert
  (vollstaendig lesbar, enthaelt 79c1142 und Vorgaenger 89ccfd6)
- Gitlink aus dem Index entfernt
- Dateiinhalt aufgenommen: 24.557 Dateien, rund 333 MB

Die verschachtelte .gitignore der Codebasis gilt weiter, Build-Artefakte
bleiben ausgeschlossen. Details in Versuche/Versuch_01/_Codebasis-Nachweis.md
2026-08-26 07:43:51 +02:00

209 lines
8.3 KiB
C#

using System.Collections.Generic;
using System.Linq;
using Centron.BusinessLogic;
using Centron.BusinessLogic.WebServices.MassUpdate;
using Centron.BusinessLogic.WebServices.Sales.Receipts;
using Centron.BusinessLogic.WebServices.Warehousing;
using Centron.Core.Extensions;
using Centron.Data.Entities.MassUpdate.Settings;
using Centron.Interfaces;
using Centron.Tests.EndToEnd.Infrastructure;
using CentronSoftware.Centron.WebServices.Entities.MassUpdate;
using CentronSoftware.Centron.WebServices.Entities.MassUpdate.Filter;
using CentronSoftware.Centron.WebServices.Entities.MassUpdate.Settings;
using Xunit.Abstractions;
namespace Centron.Tests.EndToEnd.Tests.MassUpdate;
public class MassUpdateTests : EndToEndTest
{
public MassUpdateTests(ITestOutputHelper testOutputHelper)
: base(testOutputHelper)
{
}
public override void Execute()
{
var massUpdateTemplateArticle = this.CreateMassUpdateTemplateForArticle();
var massUpdateTemplateReceipt = this.CreateMassUpdateTemplateForReceipt();
var massUpdateTemplateReceiptData = this.CreateMassUpdateTemplateForReceiptData();
var allMassUpdates = this.GetAllMassUpdateTemplates("GetAllMassUpdates");
this.SearchForReceiptUpdateItems();
this.StartMassUpdateForArticle(massUpdateTemplateArticle.I3D, 11);
this.StartMassUpdateForReceipt(massUpdateTemplateReceipt.I3D, 5);
this.StartMassUpdateForReceiptData(massUpdateTemplateReceiptData.I3D, 5);
}
private List<MassUpdateTemplateDTO> GetAllMassUpdateTemplates(string testName)
{
using var session = new BLSession();
var result = session.GetBL<MassUpdateWebServiceBL>().GetAllMassUpdates();
this.Verifier.Verify(testName, result);
return result.ToList();
}
private MassUpdateTemplateDTO CreateMassUpdateTemplateForArticle()
{
using var session = new BLSession();
var massUpdateTemplateDTO = new MassUpdateTemplateDTO();
massUpdateTemplateDTO.Caption = "F: Wo war eigentlich Gondor als die Westfold fiel?";
massUpdateTemplateDTO.Description = "A: Wahrscheinlich zuhause.";
var massUpdateItem = new MassUpdateTemplateItemsDTO()
{
ObjectKind = CentronObjectKindNumeric.Article,
ObjectI3D = 11,
NewPrice1 = 10.0m,
NewPrice2 = 20.0m,
NewPrice3 = 30.0m,
NewPrice4 = 50.0m,
};
massUpdateTemplateDTO.MassUpdateTemplateItems = new List<MassUpdateTemplateItemsDTO>();
massUpdateTemplateDTO.MassUpdateTemplateItems.Add(massUpdateItem);
massUpdateTemplateDTO.PriceUpdateSettings = new PriceUpdateSettingsDTO()
{
IsArticleUpdate = true,
IsReceiptUpdate = false,
UpdateEkForReceipt = false,
UpdateVkForReceipt = false,
};
var saveResult = session.GetBL<MassUpdateWebServiceBL>().SaveOrUpdateMassUpdate(massUpdateTemplateDTO, this.GetLoggedInUser());
this.Verifier.Verify("CreateMassUpdateTemplateForArticle", saveResult);
return saveResult;
}
private MassUpdateTemplateDTO CreateMassUpdateTemplateForReceipt()
{
using var session = new BLSession();
var massUpdateTemplateDTO = new MassUpdateTemplateDTO();
massUpdateTemplateDTO.Caption = "F: Wo war eigentlich Gondor als die Westfold fiel?";
massUpdateTemplateDTO.Description = "A: Wahrscheinlich zuhause.";
var massUpdateItem = new MassUpdateTemplateItemsDTO()
{
ObjectKind = CentronObjectKindNumeric.OfferClass,
ObjectI3D = 5,
AdditionalObjectI3D = 1,
NewBasePrice = 666m,
NewPurchasePrice = 999m
};
massUpdateTemplateDTO.MassUpdateTemplateItems = new List<MassUpdateTemplateItemsDTO>();
massUpdateTemplateDTO.MassUpdateTemplateItems.Add(massUpdateItem);
massUpdateTemplateDTO.PriceUpdateSettings = new PriceUpdateSettingsDTO()
{
IsReceiptUpdate = true,
IsArticleUpdate = false,
UpdateEkForReceipt = true,
UpdateVkForReceipt = true
};
var saveResult = session.GetBL<MassUpdateWebServiceBL>().SaveOrUpdateMassUpdate(massUpdateTemplateDTO, this.GetLoggedInUser());
this.Verifier.Verify("CreateMassUpdateTemplateForReceipt", saveResult);
return saveResult;
}
private MassUpdateTemplateDTO CreateMassUpdateTemplateForReceiptData()
{
using var session = new BLSession();
var massUpdateTemplateDTO = new MassUpdateTemplateDTO();
massUpdateTemplateDTO.Caption = "F: Wo war eigentlich Gondor als die Westfold fiel?";
massUpdateTemplateDTO.Description = "A: Wahrscheinlich zuhause.";
var massUpdateItem = new MassUpdateTemplateItemsDTO()
{
ObjectKind = CentronObjectKindNumeric.OfferClass,
ObjectI3D = 5,
AdmI3D = 1,
PaymentConditionI3D = 1,
IdmI3D = 1
};
massUpdateTemplateDTO.MassUpdateTemplateItems = new List<MassUpdateTemplateItemsDTO>();
massUpdateTemplateDTO.MassUpdateTemplateItems.Add(massUpdateItem);
massUpdateTemplateDTO.PriceUpdateSettings = new PriceUpdateSettingsDTO()
{
MassUpdateType = MassUpdateType.AccountData
};
var saveResult = session.GetBL<MassUpdateWebServiceBL>().SaveOrUpdateMassUpdate(massUpdateTemplateDTO, this.GetLoggedInUser());
this.Verifier.Verify("CreateMassUpdateTemplateForReceiptData", saveResult);
return saveResult;
}
private void StartMassUpdateForArticle(int massUpdateI3D, int articleI3D)
{
using var session = new BLSession();
var articlePreUpdate = session.GetBL<ArticleWebServiceBL>().GetArticleByArticleI3D(articleI3D);
this.Verifier.Verify("PricePreUpdate", (articlePreUpdate.Price1, articlePreUpdate.Price2, articlePreUpdate.Price3, articlePreUpdate.Price4));
session.GetBL<MassUpdateWebServiceBL>().StartArticlePriceUpdate(massUpdateI3D, this.GetLoggedInUser());
var articlePostUpdate = session.GetBL<ArticleWebServiceBL>().GetArticleByArticleI3D(articleI3D);
this.Verifier.Verify("PricePostUpdate", (articlePostUpdate.Price1, articlePostUpdate.Price2, articlePostUpdate.Price3, articlePostUpdate.Price4));
}
private void StartMassUpdateForReceipt(int massUpdateI3D, int receiptI3D)
{
using var session = new BLSession();
var receiptPreUpdate = session.GetBL<ReceiptWebServiceBL>().GetReceiptByI3D(receiptI3D, CentronObjectKindNumeric.OfferClass, this.GetLoggedInUser());
this.Verifier.Verify("ReceiptPreUpdate", receiptPreUpdate);
session.GetBL<MassUpdateWebServiceBL>().StartReceiptDataUpdate(massUpdateI3D, this.GetLoggedInUser());
var receiptPostUpdate = new BLSession().GetBL<ReceiptWebServiceBL>().GetReceiptByI3D(receiptI3D, CentronObjectKindNumeric.OfferClass, this.GetLoggedInUser());
this.Verifier.Verify("ReceiptPostUpdate", receiptPostUpdate);
}
private void StartMassUpdateForReceiptData(int massUpdateI3D, int receiptI3D)
{
using var session = new BLSession();
var receiptPreUpdate = session.GetBL<ReceiptWebServiceBL>().GetReceiptByI3D(receiptI3D, CentronObjectKindNumeric.OfferClass, this.GetLoggedInUser());
this.Verifier.Verify("ReceiptDataPreUpdate", receiptPreUpdate);
session.GetBL<MassUpdateWebServiceBL>().StartReceiptDataUpdate(massUpdateI3D, this.GetLoggedInUser());
var receiptPostUpdate = new BLSession().GetBL<ReceiptWebServiceBL>().GetReceiptByI3D(receiptI3D, CentronObjectKindNumeric.OfferClass, this.GetLoggedInUser());
this.Verifier.Verify("ReceiptDataPostUpdate", receiptPostUpdate);
}
private void SearchForReceiptUpdateItems()
{
var filter = new List<UpdateReceiptFilter>();
filter.Add(new UpdateReceiptFilter() { ReceiptI3D = 6713, ObjectKind = CentronObjectKindNumeric.OfferClass });
using var session = new BLSession();
var filteredReceipts = session.GetBL<MassUpdateWebServiceBL>().SearchForReceiptUpdateItems(filter);
this.Verifier.Verify("SearchForReceiptUpdateItems", filteredReceipts);
}
}