do ##class(vhUnitTest.Manager).RunTest("/debug/display=all","APPS.PM.Maatwerk.Framework.TestConfiguratieService") 1 vhUnitTest.TestCase 0,"Er zijn hf specs gevonden") Set MogelijkeKostSpecs = Service.GeefMogelijkeKostSpecs() Do $$$AssertTrue(MogelijkeKostSpecs.Count()>0,"Er zijn kost specs gevonden") ]]> %String IntegratieTest 0,"Er zijn bewerkingsinfo objecten terug gegeven") Do $$$AssertTrue(BewerkingsInfos.Lijst.GetAt(1).%Extends("APPS.PM.Maatwerk.Framework.dto.BewerkingsInfo"),"Van het juiste type") Set HalffabrikaatSpecificaties = Service.GeefHalffabrikaatSpecificaties() Do $$$AssertTrue(HalffabrikaatSpecificaties.Lijst.Count()>0,"Er zijn halffabrikaatspecificatie objecten terug gegeven") Do $$$AssertTrue(HalffabrikaatSpecificaties.Lijst.GetAt(1).%Extends("APPS.PM.Maatwerk.Framework.dto.HalffabrikaatSpecificatie"),"Van het juiste type") Set KostSpecificaties = Service.GeefKostSpecificaties() Do $$$AssertTrue(KostSpecificaties.Lijst.Count()>0,"Er zijn kostspecificatie objecten terug gegeven") Do $$$AssertTrue(KostSpecificaties.Lijst.GetAt(1).%Extends("APPS.PM.Maatwerk.Framework.dto.KostSpecificatie"),"Van het juiste type") ]]> makkelijker te deleten achteraf Set BewerkingsInfo = ##class(APPS.PM.Maatwerk.Framework.dto.BewerkingsInfo).%New() Set BewerkingsInfo.Familie = Familie Set BewerkingsInfo.Variant = Variant Set BewerkingsInfo.ProductID = 13 Set BewerkingsInfo.BewerkingDimensie = "Lengte" Set BewerkingsInfo.Geldigheid = ##class(APPS.PM.Maatwerk.Framework.dto.GeldigheidOpTag).%New() Set BewerkingsInfo.Geldigheid.Tag = "UTTag" Set BewerkingsInfo.BewerkingsCalculator = ##class(APPS.PM.Maatwerk.Framework.dto.StandaardContinuFlowCalculator).%New() Set BewerkingsInfo.BewerkingsCalculator.BrutoAfmetingHalffabrikaat = 1000 Set BewerkingsInfo.BewerkingsCalculator.BrutoPercentage = 1 Set BewerkingsInfo.BewerkingsCalculator.BrutoVast = 1 Set BewerkingsInfo.BewerkingsCalculator.UitvalPercentage = 1 Set BewerkingsInfo.BewerkingsCalculator.UitvalVast = 1 &SQL(DELETE FROM DOM_PM_Maatwerk_Calc_HF_impl.BewerkingsInfo WHERE Tag = 'UTTag') Set BewaarResultaat = Service.BewaarBewerkingsInfo(BewerkingsInfo) Do $$$AssertTrue(BewaarResultaat.IsGeslaagd,"De bewerkingsinfo werd bewaard") Set BewaarResultaat = Service.BewaarBewerkingsInfo(BewerkingsInfo) Do $$$AssertFalse(BewaarResultaat.IsGeslaagd,"De bewerkingsinfo werd reeds opgeslagen en kan niet opnieuw worden opgeslagen met deze tag") &SQL(DELETE FROM DOM_PM_Maatwerk_Calc_HF_impl.BewerkingsInfo WHERE Tag = 'UTTag') // === Timeline: < 2000 > Set BewerkingsInfo.Geldigheid = ##class(APPS.PM.Maatwerk.Framework.dto.GeldigheidOpDatum).%New() Set BewerkingsInfo.Geldigheid.GeldigVan = 2000 // %Date Set BewaarResultaat = Service.BewaarBewerkingsInfo(BewerkingsInfo) Do $$$AssertTrue(BewaarResultaat.IsGeslaagd,"De bewerkingsinfo werd bewaard") Set GeldigTot = "" &SQL(SELECT GeldigVan, GeldigTot, BewerkingsCalculator INTO :GeldigVan,:GeldigTot,:BewerkingsCalculator FROM DOM_PM_Maatwerk_Calc_HF_impl.BewerkingsInfo WHERE Familie = :Familie AND Variant = :Variant) Do $$$AssertEquals(%ROWCOUNT,1,"Het opgeslagen item werd terug gevonden") Do $$$AssertEquals(GeldigTot,2980013,"Geldig tot the end of days") Do $$$AssertTrue(BewerkingsCalculator>0,"De bewerkingscalculator werd gesaved") // === Timeline: < 2000 3000 > Set BewerkingsInfo.Geldigheid = ##class(APPS.PM.Maatwerk.Framework.dto.GeldigheidOpDatum).%New() Set BewerkingsInfo.Geldigheid.GeldigVan = 3000 // %Date Set BewaarResultaat = Service.BewaarBewerkingsInfo(BewerkingsInfo) Do $$$AssertTrue(BewaarResultaat.IsGeslaagd,"De bewerkingsinfo werd bewaard") Set GeldigVan = "" Set GeldigTot = "" &SQL(SELECT GeldigVan, GeldigTot INTO :GeldigVan,:GeldigTot FROM DOM_PM_Maatwerk_Calc_HF_impl.BewerkingsInfo WHERE Familie = :Familie AND Variant = :Variant AND GeldigVan = 3000) Do $$$AssertEquals(%ROWCOUNT,1,"Het opgeslagen item werd terug gevonden") Do $$$AssertEquals(GeldigVan,3000,"Geldig van") Do $$$AssertEquals(GeldigTot,2980013,"Geldig tot the end of days") // De geldig tot tijd van de vorige moet nu dus verlegd zijn naar de geldig van tijd van de nieuwe (om geen overlap te hebben) Set GeldigVan = "" Set GeldigTot = "" &SQL(SELECT GeldigVan, GeldigTot INTO :GeldigVan,:GeldigTot FROM DOM_PM_Maatwerk_Calc_HF_impl.BewerkingsInfo WHERE Familie = :Familie AND Variant = :Variant AND GeldigVan = 2000) Do $$$AssertEquals(%ROWCOUNT,1,"Het opgeslagen item werd terug gevonden") Do $$$AssertEquals(GeldigVan,2000,"Geldig van") Do $$$AssertEquals(GeldigTot,3000,"Geldig tot het begin van het nieuwe object") // === Timeline: < 2000 2500 3000 > // Een nieuwe saven die geldig is tussen 2 bestaande objecten Set BewerkingsInfo.Geldigheid = ##class(APPS.PM.Maatwerk.Framework.dto.GeldigheidOpDatum).%New() Set BewerkingsInfo.Geldigheid.GeldigVan = 2500 // %Date Set BewaarResultaat = Service.BewaarBewerkingsInfo(BewerkingsInfo) // De geldig tot tijd van het voorgaande object moet aangepast zijn Set GeldigVan = "" Set GeldigTot = "" &SQL(SELECT GeldigVan, GeldigTot INTO :GeldigVan,:GeldigTot FROM DOM_PM_Maatwerk_Calc_HF_impl.BewerkingsInfo WHERE Familie = :Familie AND Variant = :Variant AND GeldigVan = 2000) Do $$$AssertEquals(%ROWCOUNT,1,"Het opgeslagen item werd terug gevonden") Do $$$AssertEquals(GeldigVan,2000,"Geldig van") Do $$$AssertEquals(GeldigTot,2500,"Geldig tot het begin van het nieuwe object") // De geldig tot tijd van het nieuwe object is correct gezet Set GeldigVan = "" Set GeldigTot = "" &SQL(SELECT GeldigVan, GeldigTot INTO :GeldigVan,:GeldigTot FROM DOM_PM_Maatwerk_Calc_HF_impl.BewerkingsInfo WHERE Familie = :Familie AND Variant = :Variant AND GeldigVan = 2500) Do $$$AssertEquals(%ROWCOUNT,1,"Het opgeslagen item werd terug gevonden") Do $$$AssertEquals(GeldigVan,2500,"Geldig van") Do $$$AssertEquals(GeldigTot,3000,"Geldig tot het begin van het andere object dat aanwezig was") &SQL(DELETE FROM DOM_PM_Maatwerk_Calc_HF_impl.BewerkingsInfo WHERE Familie = :Familie AND Variant = :Variant) ]]> makkelijker te deleten achteraf Set HalffabrikaatSpecificatie = ##class(APPS.PM.Maatwerk.Framework.dto.HalffabrikaatSpecificatie).%New() Set HalffabrikaatSpecificatie.Familie = Familie Set HalffabrikaatSpecificatie.Variant = Variant Set HalffabrikaatSpecificatie.HalffabrikaatSpecificatie = ##class(vhTest.Dummy.DOM.PM.Maatwerk.Calc.HF.HalffabSpec).%ClassName(1) Set HalffabrikaatSpecificatie.Geldigheid = ##class(APPS.PM.Maatwerk.Framework.dto.GeldigheidOpTag).%New() Set HalffabrikaatSpecificatie.Geldigheid.Tag = "UTTag" &SQL(DELETE FROM DOM_PM_Maatwerk_Calc_HF_impl.HalffabSpecInfo WHERE Tag = 'UTTag') Set BewaarResultaat = Service.BewaarHalffabrikaatSpecificatie(HalffabrikaatSpecificatie) Do $$$AssertTrue(BewaarResultaat.IsGeslaagd,"De halffabrikaatspecificatie werd bewaard") Set BewaarResultaat = Service.BewaarHalffabrikaatSpecificatie(HalffabrikaatSpecificatie) Do $$$AssertFalse(BewaarResultaat.IsGeslaagd,"De halffabrikaatspecificatie werd reeds opgeslagen en kan niet opnieuw worden opgeslagen met deze tag") &SQL(DELETE FROM DOM_PM_Maatwerk_Calc_HF_impl.HalffabSpecInfo WHERE Tag = 'UTTag') // === Timeline: < 2000 > Set HalffabrikaatSpecificatie.Geldigheid = ##class(APPS.PM.Maatwerk.Framework.dto.GeldigheidOpDatum).%New() Set HalffabrikaatSpecificatie.Geldigheid.GeldigVan = 2000 // %Date Set BewaarResultaat = Service.BewaarHalffabrikaatSpecificatie(HalffabrikaatSpecificatie) Do $$$AssertTrue(BewaarResultaat.IsGeslaagd,"De halffabrikaatspecificatie werd bewaard") &SQL(DELETE FROM DOM_PM_Maatwerk_Calc_HF_impl.HalffabSpecInfo WHERE Familie = :Familie AND Variant = :Variant) // Het testen of de GeldigVan en GeldigTot property correct wordt gewijzigd bij meerdere inserts van specs werd getest bij TestBewaarBewerkingsInfo(), // vermits deze wordt uitgevoerd door common code is dit hier nog eens testen overbodig. ]]> makkelijker te deleten achteraf Set KostSpecificatie = ##class(APPS.PM.Maatwerk.Framework.dto.KostSpecificatie).%New() Set KostSpecificatie.Familie = Familie Set KostSpecificatie.Variant = Variant Set KostSpecificatie.KostSpecificatie = "vhUnitTest.DOM.PM.Maatwerk.Kost.UTKostSpec" Set KostSpecificatie.Geldigheid = ##class(APPS.PM.Maatwerk.Framework.dto.GeldigheidOpTag).%New() Set KostSpecificatie.Geldigheid.Tag = "UTTag" &SQL(DELETE FROM DOM_PM_Maatwerk_Calc_HF_impl.HalffabSpecInfo WHERE Tag = 'UTTag') Set BewaarResultaat = Service.BewaarKostSpecificatie(KostSpecificatie) Do $$$AssertTrue(BewaarResultaat.IsGeslaagd,"De Kostspecificatie werd bewaard") Set BewaarResultaat = Service.BewaarKostSpecificatie(KostSpecificatie) Do $$$AssertFalse(BewaarResultaat.IsGeslaagd,"De Kostspecificatie werd reeds opgeslagen en kan niet opnieuw worden opgeslagen met deze tag") &SQL(DELETE FROM DOM_PM_Maatwerk_Calc_Kost_impl.KostSpecInfo WHERE Tag = 'UTTag') // === Timeline: < 2000 > Set KostSpecificatie.Geldigheid = ##class(APPS.PM.Maatwerk.Framework.dto.GeldigheidOpDatum).%New() Set KostSpecificatie.Geldigheid.GeldigVan = 2000 // %Date Set BewaarResultaat = Service.BewaarKostSpecificatie(KostSpecificatie) Do $$$AssertTrue(BewaarResultaat.IsGeslaagd,"De Kostspecificatie werd bewaard") &SQL(DELETE FROM DOM_PM_Maatwerk_Calc_Kost_impl.KostSpecInfo WHERE Familie = :Familie AND Variant = :Variant) // Het testen of de GeldigVan en GeldigTot property correct wordt gewijzigd bij meerdere inserts van specs werd getest bij TestBewaarBewerkingsInfo(), // vermits deze wordt uitgevoerd door common code is dit hier nog eens testen overbodig. ]]>