package Ġno . nav . hel se . mode ll . tilde ling Ċ Ċ import ĠDatabase IntegrationTest Ċ import Ġk ot li query . query Of Ċ import Ġk ot li query . session Of Ċ import Ġno . nav . hel se . op pg ave . Opp g av est atus Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . util .* Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertFalse Ċ import Ġkotlin . test . assertNull Ċ import Ġkotlin . test . assertTrue Ċ Ċ internal Ġclass ĠT ilde ling Dao Test Ġ: ĠDatabase IntegrationTest () Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` op pret ter Ġtil de ling `() Ġ{ ĊĠĠĠĠĠĠĠ Ġny Person () ĊĠĠĠĠĠĠĠ Ġval Ġs aks be handler oid Ġ= ĠUUID . randomUUID () ĊĠĠĠĠĠĠĠ Ġs aks be handler Dao . op prett S aks be handler ( s aks be handler oid , Ġ" Nav n ĠNav nes en ", Ġ" nav n @ nav nes en . no ", Ġ" Z 9 9 9 9 9 9 ") ĊĠĠĠĠĠĠĠ Ġtil de ling Dao . op prett T ilde ling ( op pg ave Id , Ġs aks be handler oid ) ĊĠĠĠĠĠĠĠ Ġassert T ilde ling ( op pg ave Id , Ġs aks be handler oid ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` en Ġs aks be handler Ġkan Ġik ke Ġtil de le Ġseg Ġen Ġopp g ave Ġsom Ġall ere de Ġer Ġtil delt `() Ġ{ ĊĠĠĠĠĠĠĠ Ġny Person () ĊĠĠĠĠĠĠĠ Ġval Ġs aks be handler Oid 1 Ġ= ĠUUID . randomUUID () ĊĠĠĠĠĠĠĠ Ġval Ġs aks be handler Oid 2 Ġ= ĠUUID . randomUUID () ĊĠĠĠĠĠĠĠ Ġs aks be handler Dao . op prett S aks be handler ( s aks be handler Oid 1 , Ġ" A ", Ġ" a @ nav . no ", Ġ" A 9 9 9 9 9 9 ") ĊĠĠĠĠĠĠĠ Ġs aks be handler Dao . op prett S aks be handler ( s aks be handler Oid 2 , Ġ" B ", Ġ" b @ nav . no ", Ġ" A 9 9 9 9 9 9 ") ĊĊĠĠĠĠĠĠĠ Ġtil de ling Dao . op prett T ilde ling ( op pg ave Id , Ġs aks be handler Oid 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġtil de ling Nr ToS uk sess Ġ= Ġtil de ling Dao . op prett T ilde ling ( op pg ave Id , Ġs aks be handler Oid 2 ) ĊĊĠĠĠĠĠĠĠ ĠassertFalse ( tilde ling Nr ToS uk sess ) ĊĠĠĠĠĠĠĠ Ġassert T ilde ling ( op pg ave Id , Ġs aks be handler Oid 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` kan Ġtil de le Ġopp g ave ĠpÃ¥ Ġny tt Ġet ter Ġat Ġgy ld ig _ til Ġhar Ġg Ã¥ tt Ġut `() Ġ{ ĊĠĠĠĠĠĠĠ Ġny Person () ĊĠĠĠĠĠĠĠ Ġval Ġs aks be handler Oid Ġ= ĠUUID . randomUUID () ĊĠĠĠĠĠĠĠ Ġs aks be handler Dao . op prett S aks be handler ( s aks be handler Oid , Ġ" A ", Ġ" a @ nav . no ", Ġ" A 9 9 9 9 9 9 ") ĊĊĠĠĠĠĠĠĠ Ġtil de ling Dao . op prett T ilde ling ( op pg ave Id , Ġs aks be handler Oid , ĠLocalDateTime . now (). minus Minutes ( 1 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġtil de ling Nr ToS uk sess Ġ= Ġtil de ling Dao . op prett T ilde ling ( op pg ave Id , Ġs aks be handler Oid ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( tilde ling Nr ToS uk sess ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` kan Ġik ke Ġtil de le Ġopp g ave Ġn Ã¥r Ġgy ld ig _ til Ġik ke Ġhar Ġg Ã¥ tt Ġut `() Ġ{ ĊĠĠĠĠĠĠĠ Ġny Person () ĊĠĠĠĠĠĠĠ Ġval Ġs aks be handler Oid Ġ= ĠUUID . randomUUID () ĊĠĠĠĠĠĠĠ Ġs aks be handler Dao . op prett S aks be handler ( s aks be handler Oid , Ġ" A ", Ġ" a @ nav . no ", Ġ" A 9 9 9 9 9 9 ") ĊĊĠĠĠĠĠĠĠ Ġtil de ling Dao . op prett T ilde ling ( op pg ave Id , Ġs aks be handler Oid , ĠLocalDateTime . now (). plus Minutes ( 1 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġtil de ling Nr ToS uk sess Ġ= Ġtil de ling Dao . op prett T ilde ling ( op pg ave Id , Ġs aks be handler Oid ) ĊĊĠĠĠĠĠĠĠ ĠassertFalse ( tilde ling Nr ToS uk sess ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` h enter Ġs aks be hand l ere post Ġfor Ġtil de ling Ġmed Ġf Ã¸ d se ls nummer `() Ġ{ ĊĠĠĠĠĠĠĠ Ġny Person () ĊĠĠĠĠĠĠĠ Ġtil del Til S aks be handler () ĊĠĠĠĠĠĠĠ Ġval Ġtil de ling Ġ= Ġtil de ling Dao . tilde ling For Person ( FN R ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( SA KS BE HANDLER E POST , Ġtil de ling ?. ep ost ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` s lett Ġtil de ling `() Ġ{ ĊĠĠĠĠĠĠĠ Ġny Person () ĊĠĠĠĠĠĠĠ Ġs aks be handler Dao . op prett S aks be handler ( SA KS BE HANDLER _ OID , Ġ" Nav n ĠNav nes en ", ĠS AK S BE HANDLER E POST , ĠS AK S BE HANDLER _ IDENT ) ĊĠĠĠĠĠĠĠ Ġtil de ling Dao . op prett T ilde ling ( op pg ave Id , ĠS AK S BE HANDLER _ OID ) ĊĠĠĠĠĠĠĠ Ġassert T ilde ling ( op pg ave Id , ĠS AK S BE HANDLER _ OID ) ĊĠĠĠĠĠĠĠ Ġtil de ling Dao . s lett T ilde ling ( op pg ave Id ) ĊĠĠĠĠĠĠĠ Ġassert T ilde ling ( op pg ave Id , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` h enter Ġbare Ġtil de ling er Ġsom Ġhar Ġen Ġaktiv Ġopp g ave `() Ġ{ ĊĠĠĠĠĠĠĠ Ġopp rett Person () ĊĠĠĠĠĠĠĠ Ġopp rett Ar be id sg iver () ĊĠĠĠĠĠĠĠ Ġopp rett V ed tak sp eri ode () ĊĠĠĠĠĠĠĠ Ġopp rett Opp g ave () ĊĠĠĠĠĠĠĠ Ġopp g ave Dao . update Opp g ave ( op pg ave Id , ĠO pp g av est atus . F er dig st ilt , ĠS AK S BE HANDLER E POST , ĠS AK S BE HANDLER _ OID ) ĊĠĠĠĠĠĠĠ Ġtil del Til S aks be handler () ĊĠĠĠĠĠĠĠ Ġval Ġs aks be hand l ere post Ġ= Ġtil de ling Dao . tilde ling For Person ( FN R ) ĊĠĠĠĠĠĠĠ ĠassertNull ( s aks be hand l ere post ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` h enter Ġden Ġsist e Ġs aks be hand l ere post en Ġfor Ġtil de ling Ġmed Ġf Ã¸ d se ls nummer `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġny S aks be hand l ere post Ġ= Ġ" ny . s aks be handler @ nav . no " ĊĠĠĠĠĠĠĠ Ġny Person () ĊĠĠĠĠĠĠĠ Ġtil del Til S aks be handler () ĊĠĠĠĠĠĠĠ Ġopp rett V ed tak sp eri ode ( ved tak sp eri ode Id Ġ= ĠUUID . randomUUID ()) ĊĠĠĠĠĠĠĠ Ġopp rett Opp g ave ( ved tak sp eri ode Id Ġ= ĠV ED TA K SP ER IO DE ) ĊĠĠĠĠĠĠĠ Ġtil del Til S aks be handler ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopp g ave Id Ġ= Ġopp g ave Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoid Ġ= ĠUUID . randomUUID (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnav n Ġ= Ġ" Ny ĠS aks be handler ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe post Ġ= Ġny S aks be hand l ere post ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġtil de ling Ġ= Ġtil de ling Dao . tilde ling For Person ( FN R ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ny S aks be hand l ere post , Ġtil de ling ?. ep ost ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` ut g Ã¥ tt Ġtil de ling Ġb lir Ġik ke Ġt att Ġmed Ġi Ġsnapshot `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġs aks be handler Oid Ġ= ĠUUID . randomUUID () ĊĠĠĠĠĠĠĠ Ġval Ġved tak sp eri ode Id Ġ= ĠUUID . randomUUID () ĊĠĠĠĠĠĠĠ Ġval Ġs aks be handler E post Ġ= Ġ"${ UUID . randomUUID ()} @ nav . no " ĊĠĠĠĠĠĠĠ Ġopp rett Person () ĊĠĠĠĠĠĠĠ Ġopp rett Ar be id sg iver () ĊĠĠĠĠĠĠĠ Ġopp rett V ed tak sp eri ode ( ved tak sp eri ode Id Ġ= Ġved tak sp eri ode Id ) ĊĠĠĠĠĠĠĠ Ġopp rett Opp g ave ( ved tak sp eri ode Id Ġ= Ġved tak sp eri ode Id ) ĊĠĠĠĠĠĠĠ Ġs aks be handler Dao . op prett S aks be handler ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs aks be handler Oid , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" S ara ĠS aks be handler ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs aks be handler E post , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS AK S BE HANDLER _ IDENT ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġtil de ling Dao . op prett T ilde ling ( op pg ave Id , Ġs aks be handler Oid , ĠLocalDateTime . now (). minus Days ( 1 )) ĊĠĠĠĠĠĠĠ ĠassertNull ( tilde ling Dao . tilde ling For Opp g ave ( op pg ave Id )) ĊĠĠĠĠĠĠĠ ĠassertNull ( tilde ling Dao . tilde ling For Person ( FN R )) ĊĠĠĠĠĠĠĠ Ġopp g ave Dao . fin n Opp ga ver ( SA KS BE HANDLER T IL G ANG ER _ MED _ ING EN ). also Ġ{ Ġopp ga ver Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( op pg aver . isNotEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( op pg aver . none Ġ{ Ġit . tilde ling ?. ep ost Ġ== Ġs aks be handler E post Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` leg ger Ġopp pg ave ĠpÃ¥ Ġvent `() Ġ{ ĊĠĠĠĠĠĠĠ Ġny Person () ĊĠĠĠĠĠĠĠ Ġtil del Til S aks be handler () ĊĠĠĠĠĠĠĠ Ġtil de ling Dao . leg g Opp g ave P Ã¥ Vent ( op pg ave Id ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( assert Opp g ave P Ã¥ Vent ( op pg ave Id )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` fj ern ĠpÃ¥ Ġvent `() Ġ{ ĊĠĠĠĠĠĠĠ Ġny Person () ĊĠĠĠĠĠĠĠ Ġtil del Til S aks be handler () ĊĠĠĠĠĠĠĠ Ġtil de ling Dao . leg g Opp g ave P Ã¥ Vent ( op pg ave Id ) ĊĠĠĠĠĠĠĠ Ġtil de ling Dao . fj ern P Ã¥ Vent ( op pg ave Id ) ĊĠĠĠĠĠĠĠ ĠassertFalse ( assert Opp g ave P Ã¥ Vent ( op pg ave Id )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` fin n Ġtil de ling Ġfor Ġopp g ave `() Ġ{ ĊĠĠĠĠĠĠĠ Ġny Person () ĊĠĠĠĠĠĠĠ Ġtil del Til S aks be handler () ĊĠĠĠĠĠĠĠ Ġval Ġtil de ling Ġ= Ġtil de ling Dao . tilde ling For Opp g ave ( this . op pg ave Id ) !! ĊĠĠĠĠĠĠĠ ĠassertEquals ( SA KS BE HANDLER _ OID , Ġtil de ling . oid ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( SA KS BE HANDLER E POST , Ġtil de ling . ep ost ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( SA KS BE HANDLER _ NA VN , Ġtil de ling . nav n ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġtil de ling . p Ã¥ Vent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtil del Til S aks be handler ( ĊĠĠĠĠĠĠĠ Ġopp g ave Id : ĠLong Ġ= Ġthis . op pg ave Id , ĊĠĠĠĠĠĠĠ Ġoid : ĠUUID Ġ= ĠS AK S BE HANDLER _ OID , ĊĠĠĠĠĠĠĠ Ġnav n : ĠString Ġ= ĠS AK S BE HANDLER _ NA VN , ĊĠĠĠĠĠĠĠ Ġe post : ĠString Ġ= ĠS AK S BE HANDLER E POST , ĊĠĠĠĠĠĠĠ Ġident : ĠString Ġ= ĠS AK S BE HANDLER _ IDENT ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġs aks be handler Dao . op prett S aks be handler ( oid , Ġnav n , Ġe post , Ġident ) ĊĠĠĠĠĠĠĠ Ġtil de ling Dao . op prett T ilde ling ( op pg ave Id , Ġoid ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġassert T ilde ling ( op pg ave Id : ĠLong , Ġs aks be handler oid : ĠUUID ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġsession Of ( dataSource ). use Ġ{ Ġsession Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsession . run ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery Of (" SELECT Ġs aks be handler _ ref ĠFROM Ġtil de ling ĠWHERE Ġopp g ave _ id _ ref Ġ= Ġ?", Ġopp g ave Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠUUID . fromString ( it . string (" s aks be handler _ ref ")) Ġ}. as Single ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( s aks be handler oid , Ġresult ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġassert Opp g ave P Ã¥ Vent ( op pg ave Id : ĠLong ) Ġ: ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrequire NotNull ( session Of ( dataSource ). use Ġ{ Ġsession Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsession . run ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery Of (" SELECT ĠpÃ¥ _ vent ĠFROM Ġtil de ling ĠWHERE Ġopp g ave _ id _ ref Ġ= Ġ?", Ġopp g ave Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . boolean (" p Ã¥ _ vent ") Ġ}. as Single ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ