package Ġcom . t art ner . vertx . cq rs . events ourcing Ċ Ċ import Ġcom . t art ner . vertx .* Ċ import Ġcom . t art ner . vertx . cq rs .* Ċ import Ġcom . t art ner . vertx . kode in .* Ċ import Ġio . kot lint est .* Ċ import Ġio . vertx . ext . unit . TestContext Ċ import Ġio . vertx . ext . unit . junit .* Ċ import Ġorg . junit .* Ċ import Ġorg . junit . runner .* Ċ import Ġorg . kode in . di .* Ċ import Ġorg . reflection s .* Ċ import Ġkotlin . reflect .* Ċ import Ġkotlin . reflect . full .* Ċ Ċ @ RunWith ( Vert x Unit Runner :: class ) Ċ class ĠEvent S ourced Aggregate Auto Registrar Scanner Test : ĠAbstract Vert x Test () Ġ{ ĊĠ Ġ@ Test ĊĠ Ġfun Ġsomething ( test Context : ĠTest Context ) Ġ{ ĊĠĠĠ Ġval Ġaggregate Class Ġ= ĠEvent S ourced Test Aggregate :: class . java ĊĠĠĠ Ġval Ġk ode in Ġ= Ġsetup Vert x K ode in ( vertx , Ġtest Context , ĠlistOf ()) ĊĊĠĠĠ Ġval Ġscanner Ġ= ĠEvent S ourced Aggregate Auto Registrar Scanner ( kode in . direct , Ġk ode in . i ()) ĊĊĠĠĠ Ġval Ġreflection s Ġ= ĠReflection s ( aggregate Class ) ĊĊĠĠĠ Ġval Ġaggregate Classes : ĠMutable Set < Class <* >> Ġ= ĊĠĠĠĠĠ Ġreflection s . get Types Annotated With ( Event S ourced Aggregate :: class . java ) ĊĊĠĠĠ Ġaggregate Classes . contains ( aggregate Class ) ĠshouldBe Ġtrue ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġaggregate Classes . forEach Ġ{ Ġjava Class : ĠClass < *> Ġ-> ĊĠĠĠĠĠ Ġval Ġcreation Handlers Ġ= Ġjava Class . kotlin . members . filter Ġ{ Ġit . find Annotation < Creation Handler >() Ġ!= Ġnull Ġ} ĊĠĠĠĠĠ Ġval Ġcreation Parameter Classes Ġ= Ġcreation Handlers . map Ġ{ Ġit : ĠK Callable < *> Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġparameter : ĠK Parameter Ġ= Ġit . parameters [ 1 ] ĊĠĠĠĠĠĠĠ Ġparameter . type . classifier Ġas ĠK Class < Aggregate Event > ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġval Ġsnapshot Handlers Ġ= Ġjava Class . kotlin . members . filter Ġ{ Ġit . find Annotation < Snapshot Handler >() Ġ!= Ġnull Ġ} ĊĠĠĠĠĠ Ġval Ġsnapshot Parameter Classes Ġ= Ġsnapshot Handlers . map Ġ{ Ġit : ĠK Callable < *> Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġparameter : ĠK Parameter Ġ= Ġit . parameters [ 1 ] ĊĠĠĠĠĠĠĠ Ġparameter . type . classifier Ġas ĠK Class < Aggregate Snapshot > ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġprintln ( creation Parameter Classes ) ĊĠĠĠĠĠ Ġprintln ( snapshot Parameter Classes ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ