using System.Collections.Generic; using System.Linq; using Centron.BusinessLogic; using Centron.BusinessLogic.EmployeeArea; using Centron.BusinessLogic.WebServices.Sales.Receipts.MasterDataLists; using Centron.Tests.EndToEnd.Infrastructure; using CentronSoftware.Centron.WebServices.Entities.Sales.Receipts.MasterDataLists; using Xunit.Abstractions; namespace Centron.Tests.EndToEnd.Tests.MasterDataList { public class MasterDataListTests : EndToEndTest { public MasterDataListTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { } public override void Execute() { this.CheckMasterDataMultiplyingBug(); this.GetOverview(); } private void CheckMasterDataMultiplyingBug() { // Known case one: We have multiple barcodes for the same MasterDataList using var bl = new BLSession(); bl.DAOSession.Advanced.RawSqlAccess.ExecuteNonQueryTransactionSave(@"UPDATE Barcode SET GeraetePosI3D = 180 WHERE I3D = 9"); // Known case two: We had the MasterDataList already in a other contract bl.DAOSession.Advanced.RawSqlAccess.ExecuteNonQueryTransactionSave(@"INSERT INTO VertragGeraete (VertragKopfI3D, GeraeteKopfI3D, Status) VALUES (7, 13, 0)"); // If you know other issues which resulted in multiplying data, please add them here :-) // Verify the View returns us no data Verifier.VerifySql("MasterDataListTests_CheckMasterDataMultiplyingBug", "select md.I3D, COUNT(*) cnt from MasterDataList md group by md.I3D HAVING COUNT(*) > 1"); } private void GetOverview() { using (var bl = new BLSession()) { var filter = new MasterDataListSearchFilter { State = true }; var overview = bl.GetBL().GetMasterDataListOverview(filter); this.Verifier.Verify("MasterDataListOverview", overview.Data); } } } }