package Ġcz . enc irc led . join er . reactive Ċ Ċ import Ġcz . enc irc led . join er . exception . Join er Exception Ċ import Ġcz . enc irc led . join er . kotlin . Join er Kt QueryBuilder . all Ċ import Ġcz . enc irc led . join er . kotlin . Join er Kt QueryBuilder . count Of Ċ import Ġcz . enc irc led . join er . kotlin . Join er Kt QueryBuilder . from Ċ import Ġcz . enc irc led . join er . model . Q Status Ċ import Ġcz . enc irc led . join er . model . Q User . user 1 Ċ import Ġcz . enc irc led . join er . model . User Ċ import Ġcz . enc irc led . join er . reactive . composer . Join er Composer Ċ import Ġorg . junit . jupiter . api . Nested Ċ import Ġorg . junit . jupiter . api . assert Throws Ċ import Ġreactor . core . publisher . Mono Ċ import Ġreactor . test . Step Verifier Ċ import Ġjava . util .* Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertFalse ĊĊ Ċ class ĠJoin er Composer Test Ġ: ĠAbstract Reactor Test () Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` empty Ġcomposer `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThrows < IllegalStateException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJoin er Composer < Any , ĠAny , ĠMono < Any >>( ArrayList ()). execute Chain ( reactor Join er ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` multiple Ġchains Ġin Ġsingle Ġcomposer `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġmust Ġwork Ġwith ĊĠĠĠĠĠĠĠ Ġreactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind ( user 1 . all ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find ( user 1 . all ()) ĊĠĠĠĠĠĠĠ Ġ}. collect List (). block () ĊĊĠĠĠĠĠĠĠ ĠassertThrows < IllegalStateException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind ( user 1 . all ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind ( user 1 . all ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUnit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠPers ist Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` persist Ġchain `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" 1 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. persist ( User (" 2 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. persist ( User (" 3 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find ( user 1 . name Ġfrom Ġuser 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next (" 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next (" 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next (" 3 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` persist Ġsingle Ġentity `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" 1 ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next Matches Ġ{ Ġit . name . equals (" 1 ") Ġ&& Ġit . id Ġ!= Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` test Ġdelete Ġme `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" 1 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. findOne Ġ{ Ġu Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser 1 . all () Ġwhere Ġ{ Ġit . id Ġeq Ġu . id Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next Matches Ġ{ Ġit . name . equals (" 1 ") Ġ&& Ġit . id Ġ!= Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` persist Ġmultiple Ġentities `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( listOf ( User (" 1 "), ĠUser (" 2 "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next Matches Ġ{ Ġit . name . equals (" 1 ") Ġ&& Ġit . id Ġ!= Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next Matches Ġ{ Ġit . name . equals (" 2 ") Ġ&& Ġit . id Ġ!= Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` persist Ġmultiple Ġentities Ġintermediate `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" 1 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. persist Multiple Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( User (" 2 "), ĠUser (" 3 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next Matches Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . name . equals (" 2 ") Ġ&& Ġit . id Ġ!= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next Matches Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . name . equals (" 3 ") Ġ&& Ġit . id Ġ!= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġreactor Join er . findOne ( user 1 . count Of ()). block ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` persist Ġmultiple Ġentities Ġexception `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( listOf ( User (" 1 "), ĠUser (" 2 "). apply Ġ{ Ġid Ġ= Ġ 1 Ġ}, ĠUser (" 3 "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Error Matches Ġ{ Ġit . message !!. contains (" det ached Ġentity Ġpassed ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Users Are Empty () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠMono Result Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` initial Ġjust `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjust ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify Complete () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` initial Ġjust Ġchain `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjust (" 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. persist Ġ{ ĠUser ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next Matches Ġ{ Ġit . name Ġ== Ġ" 1 " Ġ&& Ġit . id Ġ!= Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify Complete () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` mono Ġsuccess Ġfind Ġone `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" Test Name ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. persist ( User (" Test Name Ġ 2 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. findOne Ġ{ Ġuser Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser 1 . all () Ġwhere Ġ{ Ġit . id Ġeq Ġuser . id Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next Matches Ġ{ Ġuser Ġ-> Ġuser . name . equals (" Test Name Ġ 2 ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` mono Ġsuccess Ġmap `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" Test Name ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . name Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next (" Test Name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify Complete () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` mono Ġerror Ġmultiple Ġresults `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" Test Name ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. persist ( User (" Test Name ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. findOne ( user 1 . all ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . name Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Error Matches Ġ{ Ġit . has Cause (" Find One Ġreturned Ġmultiple Ġresult ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Users Are Empty () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` mono Ġerror Ġnull Ġresult `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind One ( user 1 . all ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . name Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Error Matches Ġ{ Ġit . has Cause (" Find One Ġreturned Ġno Ġresult ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` mono Ġflat Map Ġresult `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġreactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" Test Name ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ ĠMono . just ( it . name ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( transaction ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next (" Test Name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify Complete () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` mono Ġflat Map Ġexception `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġreactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" Test Name ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ ĠMono . error ( Join er Exception (" flat Ġmap ")) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( transaction ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Error Matches Ġ{ Ġit . message !!. contains (" flat Ġmap ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` mono Ġflat Map Ġfrom Ġoptional `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġreactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind One Optional ( user 1 . all ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( it . isPresent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMono . just (" just ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( transaction ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next (" just ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify Complete () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` mono Ġflat Map Ġempty `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġreactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind One ( user 1 . all ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ ĠMono . empty () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( transaction ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Error Matches Ġ{ Ġit . has Cause (" Find One Ġreturned Ġno Ġresult ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` mono Ġflat Map Ġintermediate `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġreactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" Test Name ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ ĠMono . just ( it . name ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. findOne Ġ{ Ġname Ġ-> Ġuser 1 . all () Ġwhere Ġ{ Ġit . name Ġeq Ġname Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ ĠMono . just ( it . name ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( transaction ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next (" Test Name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify Complete () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠFlux Result Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` basic Ġflux `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreactor Join er . persist ( listOf ( User (" 1 "), ĠUser (" 2 ")) ). collect List (). block () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind ( user 1 . name Ġfrom Ġuser 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next (" 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next (" 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` flux Ġcollect Ġto Ġlist Ġresult `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreactor Join er . persist ( listOf ( User (" 1 "), ĠUser (" 2 ")) ). collect List (). block () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind ( user 1 . name Ġfrom Ġuser 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. collect ToList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next ( listOf (" 1 ", Ġ" 2 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` flux Ġempty Ġcollect Ġto Ġlist `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind ( user 1 . name Ġfrom Ġuser 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` flux Ġcollect Ġto Ġlist Ġintermediate `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreactor Join er . persist ( listOf ( User (" 1 "), ĠUser (" 2 ")) ). collect List (). block () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind ( user 1 . name Ġfrom Ġuser 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. collect ToList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Ġ{ Ġnames Ġ-> Ġuser 1 . all () Ġwhere Ġ{ Ġit . name ĠisIn Ġnames Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next Matches Ġ{ Ġit . name Ġ== Ġ" 1 " Ġ&& Ġit . id Ġ!= Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next Matches Ġ{ Ġit . name Ġ== Ġ" 2 " Ġ&& Ġit . id Ġ!= Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` basic Ġflux Ġchain `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" Test Name ĠFlux Ġ 1 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. persist Ġ{ Ġuser Ġ-> ĠUser ("${ user . name } 2 ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Ġ{ Ġuser 1 . name Ġfrom Ġuser 1 Ġwhere Ġ{ Ġit . name Ġcontains Ġ" Flux " Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next (" Test Name ĠFlux Ġ 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next (" Test Name ĠFlux Ġ 1 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` initial Ġjust Ġlist `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjust ( listOf ( 1 , Ġ 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify Complete () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` initial Ġjust Ġchain `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjust ( listOf (" 1 ", Ġ" 2 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. persist Multiple Ġ{ Ġit . map Ġ{ Ġname Ġ-> ĠUser ( name ) Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next Matches Ġ{ Ġit . name Ġ== Ġ" 1 " Ġ&& Ġit . id Ġ!= Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next Matches Ġ{ Ġit . name Ġ== Ġ" 2 " Ġ&& Ġit . id Ġ!= Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify Complete () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` basic Ġflux Ġchain Ġplural Ġto Ġplural `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" Test Name ĠFlux Ġ 1 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. persist Ġ{ Ġuser Ġ-> ĠUser ("${ user . name } 2 ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Ġ{ Ġuser 1 . id Ġfrom Ġuser 1 Ġwhere Ġ{ Ġit . name Ġcontains Ġ" Flux " Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Ġ{ Ġids Ġ-> Ġuser 1 . name Ġfrom Ġuser 1 Ġwhere Ġ{ Ġit . id ĠisIn Ġids Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next (" Test Name ĠFlux Ġ 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next (" Test Name ĠFlux Ġ 1 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` flux Ġmap Ġresult `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġreactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" Test Name ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. persist ( User (" Test Name 2 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Ġ{ Ġuser 1 . all () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . name Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( transaction ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next (" Test Name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next (" Test Name 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify Complete () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` flux Ġflat Map Ġresult `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġreactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" Test Name ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. persist ( User (" Test Name 2 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Ġ{ Ġuser 1 . all () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ ĠMono . just ( it . name ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( transaction ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next (" Test Name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next (" Test Name 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify Complete () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` flux Ġflat Map Ġintermediate `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġreactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( listOf ( User (" Test Name "), ĠUser (" Test Name 2 "))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Ġ{ Ġuser 1 . all () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ ĠMono . just ( it . name ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Ġ{ Ġnames Ġ-> Ġuser 1 . name Ġfrom Ġuser 1 Ġwhere Ġ{ Ġit . name ĠisIn Ġnames Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( transaction ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next (" Test Name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next (" Test Name 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify Complete () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` flux Ġflat Map Ġfrom Ġempty `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġreactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind ( user 1 . all ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ ĠMono . just ( it . name ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( transaction ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify Complete () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` flux Ġempty Ġflat Map `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġreactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( listOf ( User (" 1 "))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ ĠMono . empty () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( transaction ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify Complete () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` flux Ġflat Map Ġexception `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġreactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" 1 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ ĠMono . error ( Join er Exception (" flat Ġmap ")) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( transaction ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Error Matches Ġ{ Ġit . has Cause (" flat Ġmap ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` flux Ġmultiple Ġmap Ġand Ġfilter `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġreactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( listOf ( User (" Test Name "), ĠUser (" Test Name 2 "))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . name Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġtrue Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġtrue Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( transaction ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next (" Test Name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next (" Test Name 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify Complete () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` map Ġto Ġmono Ġintermediate `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġreactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" Test Name ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. persist ( User (" Test Name 2 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Ġ{ Ġuser 1 . all () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . name Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. findOne Ġ{ Ġnames Ġ-> Ġuser 1 . all () Ġwhere Ġ{ Ġit . name Ġeq Ġnames [ 0 ] Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( transaction ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next Matches Ġ{ Ġit . name Ġ== Ġ" Test Name " Ġ&& Ġit . id Ġ!= Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify Complete () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` map Ġto Ġflux Ġintermediate `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġreactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" Test Name ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. persist ( User (" Test Name 2 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Ġ{ Ġuser 1 . all () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . name Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Ġ{ Ġnames Ġ-> Ġuser 1 . all () Ġwhere Ġ{ Ġit . name ĠisIn Ġnames Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( transaction ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next Matches Ġ{ Ġit . name Ġ== Ġ" Test Name " Ġ&& Ġit . id Ġ!= Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next Matches Ġ{ Ġit . name Ġ== Ġ" Test Name 2 " Ġ&& Ġit . id Ġ!= Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify Complete () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġtest Flux Error Inside User Function () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" 1 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. persist ( User (" 3 "). apply Ġ{ Ġid Ġ= Ġ 1 Ġ}) Ġ// ĠThis Ġshould Ġfail Ġduring Ġhi bernate Ġpersist ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser 1 . all () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Error Matches Ġ{ Ġit . message !!. contains (" det ached Ġentity Ġpassed ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` find Ġall Ġflux Ġresult `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreactor Join er . persist ( listOf ( User (" 1 "), ĠUser (" 2 ")) ). block Last () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" 3 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser 1 . all () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next Matches Ġ{ Ġit . name Ġ== Ġ" 1 " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next Matches Ġ{ Ġit . name Ġ== Ġ" 2 " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next Matches Ġ{ Ġit . name Ġ== Ġ" 3 " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` test Ġfilter `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjust ( listOf ( 1 , Ġ 2 , Ġ 3 , Ġ 4 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit Ġ% Ġ 2 Ġ== Ġ 0 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next ( 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` test Ġfilter Ġintermediate `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( listOf ( User (" 1 "), ĠUser (" 2 "), ĠUser (" 3 "))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . name Ġ!= Ġ" 2 " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . id Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Ġ{ Ġids Ġ-> Ġuser 1 . name Ġfrom Ġuser 1 Ġwhere Ġ{ Ġit . id ĠisIn Ġids Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next (" 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next (" 3 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠOptional Mono Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` map Ġempty Ġoptional Ġto Ġvalue `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" Test ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. findOne Optional ( user 1 . all () Ġwhere Ġ{ Ġit . name Ġeq Ġ" Not Ġexists " Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġo Ġ-> Ġo . orElse ( User (" Test ")). name Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. findOne Ġ{ Ġname Ġ-> Ġuser 1 . all () Ġwhere Ġ{ Ġit . name Ġeq Ġname Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next Matches Ġ{ Ġit . name . equals (" Test ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify Complete () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` return Ġempty Ġoptional `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind One Optional ( user 1 . all ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next ( Optional . empty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify Complete () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` empty Ġoptional Ġin Ġchain `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind One Optional ( user 1 . all ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. findOne Optional Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( it . isPresent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser 1 . all () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. findOne Optional Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( it . isPresent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser 1 . all () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next ( Optional . empty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify Complete () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` optional Ġhas Ġvalue `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" 1 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. findOne Optional ( user 1 . name Ġfrom Ġuser 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next ( Optional . of (" 1 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify Complete () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` optional Ġhas Ġerror `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" 1 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. findOne Optional ( user 1 . name Ġfrom ĠQ Status . status ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Error Matches Ġ{ Ġit . message !!. contains (" Query Syntax Exception ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` optional Ġhas Ġvalue Ġintermediate `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" 1 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. findOne Optional ( user 1 . name Ġfrom Ġuser 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . get () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next (" 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify Complete () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` optional Ġhas Ġmultiple Ġvalues Ġin Ġresult `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" 1 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. persist ( User (" 2 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. findOne Optional ( user 1 . all ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Error Matches Ġ{ Ġit . has Cause (" Find One Ġreturned Ġmultiple Ġresult ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` optional Ġhas Ġmultiple Ġvalues Ġintermediate `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" 1 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. persist ( User (" 2 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. findOne Optional ( user 1 . all ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . get () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Error Matches Ġ{ Ġit . has Cause (" Find One Ġreturned Ġmultiple Ġresult ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` optional Ġhas Ġvalue Ġto Ġmap `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" 1 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. findOne Optional ( user 1 . name Ġfrom Ġuser 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġ"${ it . get ()} 1 " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next (" 1 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify Complete () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` findOne Ġafter Ġempty Ġoptional `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" 1 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. findOne Optional ( user 1 . name Ġfrom Ġuser 1 Ġwhere Ġ{ Ġit . name Ġeq Ġ" 2 " Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. findOne Ġ{ Ġoptional Ġ-> Ġuser 1 . all () Ġwhere Ġ{ Ġuser 1 . name Ġeq Ġoptional . orElse (" 1 ") Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next Matches Ġ{ Ġit . name Ġ== Ġ" 1 " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify Complete () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` find Ġafter Ġempty Ġoptional `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStep Verifier . create ( reactor Join er . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersist ( User (" 1 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. findOne Optional ( user 1 . name Ġfrom Ġuser 1 Ġwhere Ġ{ Ġit . name Ġeq Ġ" 2 " Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Ġ{ Ġoptional Ġ-> Ġuser 1 . all () Ġwhere Ġ{ Ġuser 1 . name Ġeq Ġoptional . orElse (" 1 ") Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect Next Matches Ġ{ Ġit . name Ġ== Ġ" 1 " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify Complete () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ