Do ##class(vhUnitTest.Manager).RunTest("/debug/display=all","DOM.ProdRes.TestVerwachteInvoerAPI") 1 vhUnitTest.TestCase 0 0,"De due in is ingesteld") Do $$$AssertEquals(VerwachteInvoer.GeefProductID(),"Product1","De product id") Do $$$AssertEquals(VerwachteInvoer.GeefTransactieReferentie(),"UT Transactieref","De transactiereferentie") Do VerwachteInvoer.ZetTransactieReferentie("UT Transactieref gewijzigd") Do $$$AssertEquals(VerwachteInvoer.GeefTransactieReferentie(),"UT Transactieref gewijzigd","De transactiereferentie gewijzigd") Do $$$AssertEquals(VerwachteInvoer.GeefTransactieLijnReferentie(),"UT Transactielijnref","De transactielijnreferentie") Do VerwachteInvoer.ZetTransactieLijnReferentie("UT Transactielijnref gewijzigd") Do $$$AssertEquals(VerwachteInvoer.GeefTransactieLijnReferentie(),"UT Transactielijnref gewijzigd","De transactielijnreferentie gewijzigd") Do VerwachteInvoer.%DeleteId(VerwachteInvoer.%Id()) ]]> | P1 210 | // | P1 170 | ---170---> | | // | | +------------+ // | | +------------+ // | P2 30 | ----15---> | P2 15 | // +------------+ +------------+ // \ +------------+ // \--15---> | P2 18 | // +------------+ // Opbouw uitvoer objecten Set VerwachteUitvoerAPI = ##class(DOM.DomeinContext).Instance().GeefVerwachteUitvoerAPI() Set ReservatieVoorVerwachteUitvoer = ##class(DOM.ProdRes.dto.ReservatieVoorVerwachteUitvoer).%New() Set ReservatieVoorVerwachteUitvoer.TransactieReferentie = "UT uitvoer1" Set ReservatieVoorVerwachteUitvoer.TransactieLijnReferentie = "UT uitvoer1 lijn1" Set ReservatieVoorVerwachteUitvoer.Bedrijf = ##class(DOM.common.enu.Bedrijf).VanHoecke() Set ReservatieMoeder = ##class(DOM.ProdRes.dto.Reservatie).%New() Set ReservatieVoorVerwachteUitvoer.Reservatie = ReservatieMoeder Set ReservatieMoeder.ProductID = "MoederProduct" Set ReservatieMoeder.Aantal = 1 // Aantal maakt hier niet uit Set Reservatie1 = ##class(DOM.ProdRes.dto.Reservatie).%New() Set Reservatie1.ProductID = "P1" Set Reservatie1.Aantal = 50 Do ReservatieMoeder.Reservaties.Insert(Reservatie1) Set Reservatie2 = ##class(DOM.ProdRes.dto.Reservatie).%New() Set Reservatie2.ProductID = "P1" Set Reservatie2.Aantal = 170 Do ReservatieMoeder.Reservaties.Insert(Reservatie2) Set Reservatie3 = ##class(DOM.ProdRes.dto.Reservatie).%New() Set Reservatie3.ProductID = "P2" Set Reservatie3.Aantal = 30 Do ReservatieMoeder.Reservaties.Insert(Reservatie3) Set VerwachteUitvoer = VerwachteUitvoerAPI.RegistreerReservaties(ReservatieVoorVerwachteUitvoer) // Opbouw invoer objecten Set VerwachteInvoerAPI = ##class(DOM.DomeinContext).Instance().GeefVerwachteInvoerAPI() Set VerwachteInvoerInfo = ##class(DOM.ProdRes.dto.VerwachteInvoerInfo).%New() Set VerwachteInvoerInfo.Aantal = 210 Set VerwachteInvoerInfo.ProductID = "P1" Set VerwachteInvoerInfo.TransactieReferentie = "UT invoer1" Set VerwachteInvoerInfo.TransactieLijnReferentie = "UT invoer1 lijn1" Set VerwachteInvoer1 = VerwachteInvoerAPI.RegistreerVerwachteInvoer(VerwachteInvoerInfo) Set VerwachteInvoerInfo = ##class(DOM.ProdRes.dto.VerwachteInvoerInfo).%New() Set VerwachteInvoerInfo.Aantal = 15 Set VerwachteInvoerInfo.ProductID = "P2" Set VerwachteInvoerInfo.TransactieReferentie = "UT invoer2" Set VerwachteInvoerInfo.TransactieLijnReferentie = "UT invoer2 lijn1" Set VerwachteInvoer2 = VerwachteInvoerAPI.RegistreerVerwachteInvoer(VerwachteInvoerInfo) Set VerwachteInvoerInfo = ##class(DOM.ProdRes.dto.VerwachteInvoerInfo).%New() Set VerwachteInvoerInfo.Aantal = 18 Set VerwachteInvoerInfo.ProductID = "P2" Set VerwachteInvoerInfo.TransactieReferentie = "UT invoer3" Set VerwachteInvoerInfo.TransactieLijnReferentie = "UT invoer3 lijn1" Set VerwachteInvoer3 = VerwachteInvoerAPI.RegistreerVerwachteInvoer(VerwachteInvoerInfo) // Registreren van invoer/uitvoer links Do VerwachteInvoerAPI.RegistreerInvoerUitvoerLinken(VerwachteInvoer1.%Id(),VerwachteUitvoer.%Id()) Do $$$AssertEquals(VerwachteInvoer1.GeefAantalGelinkt(),210,"Er zijn 210 producten gelinkt") Set ReservatieIterator = VerwachteUitvoer.GeefReservatie().GeefKindReservatieIterator() Set Reservatie1 = ReservatieIterator.Next() Set Reservatie2 = ReservatieIterator.Next() Set Reservatie3 = ReservatieIterator.Next() Do $$$AssertEquals(Reservatie1.GeefAantalGelinkt(),40,"40 van de 50 producten zijn gelinkt") Do $$$AssertEquals(Reservatie2.GeefAantalGelinkt(),170,"Alle producten zijn gelinkt") Do $$$AssertEquals(Reservatie3.GeefAantalGelinkt(),0,"Er zijn nog geen producten gelinkt") Do $$$AssertEquals(VerwachteInvoer1.GeefAantalGelinkt(),210,"Alle producten zijn gelinkt") Do VerwachteInvoerAPI.RegistreerInvoerUitvoerLinken(VerwachteInvoer2.%Id(),VerwachteUitvoer.%Id()) Do $$$AssertEquals(Reservatie1.GeefAantalGelinkt(),40,"40 van de 50 producten zijn gelinkt") Do $$$AssertEquals(Reservatie2.GeefAantalGelinkt(),170,"Alle producten zijn gelinkt") Do $$$AssertEquals(Reservatie3.GeefAantalGelinkt(),15,"Er zijn 15 producten gelinkt") Do $$$AssertEquals(VerwachteInvoer2.GeefAantalGelinkt(),15,"Alle producten zijn gelinkt") Do VerwachteInvoerAPI.RegistreerInvoerUitvoerLinken(VerwachteInvoer3.%Id(),VerwachteUitvoer.%Id()) Do $$$AssertEquals(Reservatie1.GeefAantalGelinkt(),40,"40 van de 50 producten zijn gelinkt") Do $$$AssertEquals(Reservatie2.GeefAantalGelinkt(),170,"Alle producten zijn gelinkt") Do $$$AssertEquals(Reservatie3.GeefAantalGelinkt(),30,"Alle producten zijn gelinkt") Do $$$AssertEquals(VerwachteInvoer3.GeefAantalGelinkt(),15,"15 van de 18 producten zijn gelinkt") // Verwachte invoer iterator controleren Set VerwachteInvoerIterator = VerwachteUitvoer.GeefVerwachteInvoerIterator() Do $$$AssertTrue(VerwachteInvoerIterator.HasNext(),"Element 1 is aanwezig") Do VerwachteInvoerIterator.Next() Do $$$AssertTrue(VerwachteInvoerIterator.HasNext(),"Element 2 is aanwezig") Do VerwachteInvoerIterator.Next() Do $$$AssertTrue(VerwachteInvoerIterator.HasNext(),"Element 3 is aanwezig") Do VerwachteInvoerIterator.Next() Do $$$AssertFalse(VerwachteInvoerIterator.HasNext(),"Er is geen 4de element aanwezig") // Samenvoegvoorstel nagaan Set VerwachteUitvoerIDs = ##class(%ListOfDataTypes).%New() Do VerwachteUitvoerIDs.Insert(VerwachteUitvoer.%Id()) Set SamenvoegVoorstellen = VerwachteInvoerAPI.GeefSamenvoegVoorstellen(VerwachteUitvoerIDs) Do $$$AssertEquals(SamenvoegVoorstellen.Count(),1,"Er is 1 samenvoeg voorstel") Set SamenvoegVoorstel = SamenvoegVoorstellen.GetAt(1) Do $$$AssertEquals(SamenvoegVoorstel.Aantal,15+18,"33 producten kunnen samengevoegd worden") Do $$$AssertEquals(SamenvoegVoorstel.ProductID,"P2","P2 kan worden samengevoegd") // Opkuis data Do VerwachteUitvoer.%DeleteId(VerwachteUitvoer.%Id()) Do VerwachteInvoer1.%DeleteId(VerwachteInvoer1.%Id()) Do VerwachteInvoer2.%DeleteId(VerwachteInvoer2.%Id()) Do VerwachteInvoer3.%DeleteId(VerwachteInvoer3.%Id()) ]]> 1 %Status