using Centron.BusinessLogic; using Centron.BusinessLogic.Administration.Profiling; using Centron.BusinessLogic.Administration.Settings; 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.Entities.Sales.Receipts.Log; using Xunit.Abstractions; namespace Centron.Tests.EndToEnd.Tests.Administration.Profiling; public class CommonProfilerTests : EndToEndTest { public CommonProfilerTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { Verifier.Settings.CleanupDateTimeValues = true; Verifier.Settings.IgnoreProperty((ReceiptLogDTO c) => c.CentronVersion); } public override void Execute() { using var session = new BLSession(); SetupProfilingForReceipts(session); var receiptBL = session.GetBL(); receiptBL.GetReceiptByI3D(151, CentronObjectKindNumeric.InvoiceClass, base.GetLoggedInUser()); receiptBL.GetReceiptByI3D(151, CentronObjectKindNumeric.InvoiceClass, base.GetLoggedInUser()); receiptBL.GetReceiptByI3D(152, CentronObjectKindNumeric.InvoiceClass, base.GetLoggedInUser()); // Test unreorganized log entries var logResult = session.GetBL().GetLogsByFilter(new ReceiptLogsFilter() { LogKind = ReceiptLogKind.ProfilerAccessTracking }); Verifier.Verify("CommonProfilerTests_ProfilerAccessTracking", logResult); // Reorganize the profile log entries session.GetBL().ReorganizeProfilerEntries(); // Test reorganization of the log entries logResult = session.GetBL().GetLogsByFilter(new ReceiptLogsFilter() { LogKind = ReceiptLogKind.ProfilerAccessTracking }); Verifier.Verify("CommonProfilerTests_ProfilerAccessTracking_AfterReorg", logResult); } internal void SetupProfilingForReceipts(BLSession session) { // Settings test on the side of the road :-) var settings = session.GetBL().GetProfilerSettings(); settings.IsExtendedReceiptProfilingActive = true; settings.KeepExtendedProfilingRecordsForXDays = 0; // we want immediate data aggregation for our test session.GetBL().UpdateProfilerSettings(settings); } }