package Ġde . fl ap do od le . fx . layout . p anning Ċ Ċ import Ġde . fl ap do od le . fx . layout . Nodes Ċ import Ġjavafx . event . EventHandler Ċ import Ġjavafx . scene . Scene Ċ import Ġjavafx . scene . input . MouseButton Ċ import Ġjavafx . scene . layout . Pane Ċ import Ġjavafx . scene . paint . Color Ċ import Ġjavafx . stage . Stage Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . extension . Extend With Ċ import Ġorg . test fx . api . Fx Robot Ċ import Ġorg . test fx . framework . junit 5 . Application Extension Ċ import Ġorg . test fx . framework . junit 5 . Start Ċ import Ġt orn ad of x . add Ċ Ċ @ Extend With ( Application Extension :: class ) Ċ internal Ġclass ĠContainer IT Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġclicked Ġ= Ġfalse ĊĊĠĠĠ Ġ@ Start ĊĠĠĠ Ġprivate Ġfun ĠcreateElement ( stage : ĠStage ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwrapped Ġ= ĠNodes . region ( 1 0 0 . 0 , 2 0 0 . 0 , ĠColor . BLUE ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . id =" wrapped " ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . on Mouse Clicked Ġ= ĠEventHandler Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" clicked ...") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclicked Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġit . on Mouse Entered Ġ= ĠEventHandler Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" ... Ġenter Ġ... ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġit . add Event Filter ( MouseEvent . ANY , Ġ{ Ġevent Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" -> Ġ$ event ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ // ĠĠĠĠĠĠĠ Ġval Ġbutton Ġ= ĠButton (). apply Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġadd Event Filter ( MouseEvent . ANY , Ġ{ Ġevent Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" -> Ġ$ event ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġon Left Click Ġ{ Ġprintln (" left ") Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĊĠĠĠĠĠĠĠ Ġval Ġtest ee Ġ= ĠContainer (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid =" test ee " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Content ( wrapped ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġwrapper Ġ= ĠP ane (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( test ee ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ" wrapper " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġstage . set Scene ( Scene ( wrapper , Ġ 3 0 0 . 0 , Ġ 3 0 0 . 0 )) ĊĠĠĠĠĠĠĠ Ġstage . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Match Inner Dimensions ( robot : ĠF x Robot ) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( robot . lookup ("# test ee ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. query As ( Container :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. extract ing ( Container :: getWidth , Container :: getHeight ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly ( 1 0 0 . 0 , 2 0 0 . 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġmouse Event Re aches Content ( robot : ĠF x Robot ) Ġ{ Ċ // ĠĠĠĠĠĠĠ ĠFX . run Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( 1 0 0 0 0 ) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĊĠĠĠĠĠĠĠ Ġrobot . click On ( robot . point ("# test ee "), ĠMouse Button . PRIMARY ) ĊĠĠĠĠĠĠĠ ĠassertThat ( clicked ). isTrue () ĊĠĠĠ Ġ} Ċ }