package Ġcom . github . ale xb url ton . swing test Ċ Ċ import Ġio . kot lint est . matchers . collections . should Contain Exactly Ċ import Ġio . kot lint est . matchers . types . shouldBe Null Ċ import Ġio . kot lint est . shouldBe Ċ import Ġio . kot lint est . should Throw Ċ import Ġio . mock k . mock k Ċ import Ġio . mock k . verify Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjava . awt . event . ActionListener Ċ import Ġjavax . swing .* Ċ Ċ class ĠComponent Find ers Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġfind Ġall Ġcomponents Ġof Ġa Ġgiven Ġtype `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpanel Ġ= ĠJPanel () ĊĠĠĠĠĠĠĠ Ġval Ġbutton A Ġ= ĠJButton (" A ") ĊĠĠĠĠĠĠĠ Ġval Ġbutton B Ġ= ĠJButton (" B ") ĊĠĠĠĠĠĠĠ Ġval Ġradio Button Ġ= ĠJ RadioButton (" C ") ĊĊĠĠĠĠĠĠĠ Ġpanel . add ( button A ) ĊĠĠĠĠĠĠĠ Ġpanel . add ( button B ) ĊĠĠĠĠĠĠĠ Ġpanel . add ( radioButton ) ĊĊĠĠĠĠĠĠĠ Ġpanel . findAll < JButton >(). should Contain Exactly ( button A , Ġbutton B ) ĊĠĠĠĠĠĠĠ Ġpanel . findAll < J RadioButton >(). should Contain Exactly ( radioButton ) ĊĠĠĠĠĠĠĠ Ġpanel . findAll < Abstract Button >(). should Contain Exactly ( button A , Ġbutton B , Ġradio Button ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġrecurse Ġthrough Ġcontainers Ġto Ġfind Ġcomponents `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġframe Ġ= ĠJ Frame () ĊĠĠĠĠĠĠĠ Ġval Ġpanel Ġ= ĠJPanel () ĊĠĠĠĠĠĠĠ Ġframe . content Pane . add ( panel ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbutton A Ġ= ĠJButton (" A ") ĊĠĠĠĠĠĠĠ Ġpanel . add ( button A ) ĊĊĠĠĠĠĠĠĠ Ġval Ġinner Panel Ġ= ĠJPanel () ĊĠĠĠĠĠĠĠ Ġpanel . add ( inner Panel ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbutton B Ġ= ĠJButton (" B ") ĊĠĠĠĠĠĠĠ Ġinner Panel . add ( button B ) ĊĊĠĠĠĠĠĠĠ Ġframe . findAll < JButton >(). should Contain Exactly ( button A , Ġbutton B ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġthrow ĠMultiple Components Exception Ġif Ġmore Ġthan Ġone Ġcomponent Ġme ets Ġthe Ġcriteria `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpanel Ġ= ĠJPanel () ĊĠĠĠĠĠĠĠ Ġval Ġbutton A Ġ= ĠJButton (" A ") ĊĠĠĠĠĠĠĠ Ġval Ġbutton B Ġ= ĠJButton (" B ") ĊĊĠĠĠĠĠĠĠ Ġpanel . add ( button A ) ĊĠĠĠĠĠĠĠ Ġpanel . add ( button B ) ĊĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġshould Throw < Multiple Components Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpanel . find Child < JButton >() ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġe . message ĠshouldBe Ġ" Found Ġ 2 ĠJ Buttons , Ġexpected Ġ 1 Ġor Ġ 0 . ĠText Ġ[ null ], ĠTool Tip Text Ġ[ null ]" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Multiple Components Exception Ġshould Ġinclude Ġtext Ġand Ġtool Tip Text `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpanel Ġ= ĠJPanel () ĊĠĠĠĠĠĠĠ Ġval Ġbutton A Ġ= ĠJButton (" Button ") ĊĠĠĠĠĠĠĠ Ġbutton A . tool Tip Text Ġ= Ġ" Click Ġme " ĊĊĠĠĠĠĠĠĠ Ġval Ġbutton B Ġ= ĠJButton (" Button ") ĊĠĠĠĠĠĠĠ Ġbutton B . tool Tip Text Ġ= Ġ" Click Ġme " ĊĊĠĠĠĠĠĠĠ Ġpanel . add ( button A ) ĊĠĠĠĠĠĠĠ Ġpanel . add ( button B ) ĊĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġshould Throw < Multiple Components Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpanel . find Child < JButton >( text Ġ= Ġ" Button ", Ġtool Tip Text Ġ= Ġ" Click Ġme ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġe . message ĠshouldBe Ġ" Found Ġ 2 ĠJ Buttons , Ġexpected Ġ 1 Ġor Ġ 0 . ĠText Ġ[ Button ], ĠTool Tip Text Ġ[ Click Ġme ]" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġthrow Ġa ĠNoSuch Method Exception Ġif Ġspecifying Ġtext Ġfor Ġa Ġcomponent Ġtype Ġthat Ġdoes Ġnot Ġhave Ġit `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpanel Ġ= ĠJPanel () ĊĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġshould Throw < NoSuch Method Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpanel . find Child < JPanel >( text Ġ= Ġ" Foo ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġe . message ĠshouldBe Ġ" javax . swing . JPanel . getText ()" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġfilter Ġby Ġtext Ġcorrectly `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpanel Ġ= ĠJPanel () ĊĠĠĠĠĠĠĠ Ġval Ġbutton A Ġ= ĠJButton (" Foo ") ĊĠĠĠĠĠĠĠ Ġval Ġbutton B Ġ= ĠJButton (" Bar ") ĊĠĠĠĠĠĠĠ Ġpanel . add ( button A ) ĊĠĠĠĠĠĠĠ Ġpanel . add ( button B ) ĊĊĠĠĠĠĠĠĠ Ġpanel . find Child < JButton >( text Ġ= Ġ" Foo ") ĠshouldBe Ġbutton A ĊĠĠĠĠĠĠĠ Ġpanel . find Child < JButton >( text Ġ= Ġ" Bar ") ĠshouldBe Ġbutton B ĊĠĠĠĠĠĠĠ Ġpanel . find Child < JButton >( text Ġ= Ġ" B az ") ĠshouldBe Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġfilter Ġby Ġtool Tip Text Ġcorrectly `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpanel Ġ= ĠJPanel () ĊĠĠĠĠĠĠĠ Ġval Ġlabel A Ġ= ĠJLabel ("") ĊĠĠĠĠĠĠĠ Ġval Ġlabel B Ġ= ĠJLabel ("") ĊĠĠĠĠĠĠĠ Ġpanel . add ( label A ) ĊĠĠĠĠĠĠĠ Ġpanel . add ( label B ) ĊĊĠĠĠĠĠĠĠ Ġlabel A . tool Tip Text Ġ= Ġ" Label Ġ 1 " ĊĠĠĠĠĠĠĠ Ġlabel B . tool Tip Text Ġ= Ġ" Label Ġ 2 " ĊĊĠĠĠĠĠĠĠ Ġpanel . find Child < JLabel >( tool Tip Text Ġ= Ġ" Label Ġ 1 ") ĠshouldBe Ġlabel A ĊĠĠĠĠĠĠĠ Ġpanel . find Child < JLabel >( tool Tip Text Ġ= Ġ" Label Ġ 2 ") ĠshouldBe Ġlabel B ĊĠĠĠĠĠĠĠ Ġpanel . find Child < JLabel >( tool Tip Text Ġ= Ġ" zz ") ĠshouldBe Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġsupport Ġcustom Ġfilters `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpanel Ġ= ĠJPanel () ĊĠĠĠĠĠĠĠ Ġval Ġbutton A Ġ= ĠJButton () ĊĠĠĠĠĠĠĠ Ġval Ġbutton B Ġ= ĠJButton () ĊĠĠĠĠĠĠĠ Ġpanel . add ( button A ) ĊĠĠĠĠĠĠĠ Ġpanel . add ( button B ) ĊĊĠĠĠĠĠĠĠ Ġbutton A . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġbutton B . isEnabled Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġpanel . find Child < JButton > Ġ{ Ġit . isEnabled Ġ} ĠshouldBe Ġbutton A ĊĠĠĠĠĠĠĠ Ġpanel . find Child < JButton > Ġ{ Ġ! it . isEnabled Ġ} ĠshouldBe Ġbutton B ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġapply Ġall Ġfilters Ġtogether Ġto Ġfind Ġthe Ġright Ġcomponent `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpanel Ġ= ĠJPanel () ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠJButton (" Button ĠText ") ĊĠĠĠĠĠĠĠ Ġexpected . tool Tip Text Ġ= Ġ" Yes " ĊĊĠĠĠĠĠĠĠ Ġval Ġwrong Type Ġ= ĠJ RadioButton (" Button ĠText ") ĊĠĠĠĠĠĠĠ Ġwrong Type . tool Tip Text Ġ= Ġ" Yes " ĊĊĠĠĠĠĠĠĠ Ġval Ġwrong Text Ġ= ĠJButton (" Other ĠText ") ĊĠĠĠĠĠĠĠ Ġwrong Text . tool Tip Text Ġ= Ġ" Yes " ĊĊĠĠĠĠĠĠĠ Ġval Ġwrong ToolTip Ġ= ĠJButton (" Button ĠText ") ĊĠĠĠĠĠĠĠ Ġwrong ToolTip . tool Tip Text Ġ= Ġ" No " ĊĊĠĠĠĠĠĠĠ Ġval Ġdisabled Ġ= ĠJButton (" Button ĠText ") ĊĠĠĠĠĠĠĠ Ġdisabled . tool Tip Text Ġ= Ġ" Yes " ĊĠĠĠĠĠĠĠ Ġdisabled . isEnabled Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġpanel . add ( expected ) ĊĠĠĠĠĠĠĠ Ġpanel . add ( wrong Type ) ĊĠĠĠĠĠĠĠ Ġpanel . add ( wrong Text ) ĊĠĠĠĠĠĠĠ Ġpanel . add ( wrong ToolTip ) ĊĠĠĠĠĠĠĠ Ġpanel . add ( disabled ) ĊĊĠĠĠĠĠĠĠ Ġ@ Suppress (" unused ") ĊĠĠĠĠĠĠĠ Ġpanel . find Child < JButton >( text Ġ= Ġ" Button ĠText ", Ġtool Tip Text Ġ= Ġ" Yes ") Ġ{ Ġit . isEnabled Ġ} ĠshouldBe Ġexpected ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġhandle Ġan Ġabsent Ġchild Ġcomponent Ġcorrectly `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpanel Ġ= ĠJPanel () ĊĠĠĠĠĠĠĠ Ġpanel . find Child < JButton >(). shouldBe Null () ĊĊĠĠĠĠĠĠĠ Ġshould Throw < NoSuch Component Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpanel . getChild < JButton >() ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġclick Ġa Ġchild Ġbutton Ġand Ġtrigger Ġits ĠAction Listeners `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpanel Ġ= ĠJPanel () ĊĠĠĠĠĠĠĠ Ġval Ġbutton A Ġ= ĠJButton (" A ") ĊĠĠĠĠĠĠĠ Ġval Ġbutton B Ġ= ĠJButton (" B ") ĊĠĠĠĠĠĠĠ Ġval Ġlistener A Ġ= Ġmock k < ActionListener >( relax ed Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġval Ġlistener B Ġ= Ġmock k < ActionListener >( relax ed Ġ= Ġtrue ) ĊĊĠĠĠĠĠĠĠ Ġbutton A . addActionListener ( listener A ) ĊĠĠĠĠĠĠĠ Ġbutton B . addActionListener ( listener B ) ĊĠĠĠĠĠĠĠ Ġpanel . add ( button A ) ĊĠĠĠĠĠĠĠ Ġpanel . add ( button B ) ĊĊĠĠĠĠĠĠĠ Ġpanel . click Child < JButton >(" A ") ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġlistener A . action Performed ( any ()) Ġ} ĊĠĠĠĠĠĠĠ Ġverify Not Called Ġ{ Ġlistener B . action Performed ( any ()) Ġ} ĊĠĠĠ Ġ} Ċ }