package Ġorg . hex works . z ir con . api . animation Ċ Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . hex works . cob alt . datat ypes . Identifier Ċ import Ġorg . hex works . cob alt . datat ypes . Maybe Ċ import Ġorg . hex works . cob alt . datat ypes . factory . Identifier Factory Ċ import Ġorg . hex works . z ir con . api . App Configs Ċ import Ġorg . hex works . z ir con . api . builder . animation . Animation Builder Ċ import Ġorg . hex works . z ir con . api . builder . grid . Tile Grid Builder Ċ import Ġorg . hex works . z ir con . api . data . Position Ċ import Ġorg . hex works . z ir con . api . data . Size Ċ import Ġorg . hex works . z ir con . api . resource . BuiltIn CP 4 3 7 Tile set Resource Ċ import Ġorg . hex works . z ir con . internal . animation . Default Animation Ċ import Ġorg . hex works . z ir con . internal . animation . Default AnimationFrame Ċ import Ġorg . hex works . z ir con . internal . animation . Default Animation Handler Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . mockito . Mock Ċ import Ġorg . mockito . Mockito Ċ import Ġorg . mockito . Mockito Annotations Ċ import Ġjava . util . concurrent . TimeUnit Ċ import Ġjava . util . concurrent . locks . Re entrant Lock Ċ Ċ class ĠDefault Animation Handler Test Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġtarget : ĠDefault Animation Handler ĊĊĠĠĠ Ġ@ Mock ĊĠĠĠ Ġlateinit Ġvar Ġanimation Mock : ĠAnimation ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ ĠMockito Annotations . init Mocks ( this ) ĊĠĠĠĠĠĠĠ ĠApp Configs . new Config (). enable Beta Features (). build () ĊĠĠĠĠĠĠĠ Ġtarget Ġ= ĠDefault Animation Handler () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠIllegalArgumentException :: class ) ĊĠĠĠ Ġfun Ġshould Close Pro per ly When Closed () Ġ{ ĊĠĠĠĠĠĠĠ Ġtarget . close () ĊĊĠĠĠĠĠĠĠ Ġtarget . start Animation ( Default Animation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtick Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloop Count Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtotal Frame Count Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunique Frame Count Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġframes Ġ= ĠlistOf ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Return Infinite When Animation IsIn finite () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinfinite Animation Ġ= ĠAnimation Builder . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Frame ( Default AnimationFrame ( Size . one (), ĠlistOf (), Ġ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Position ( Position . offset 1 x 1 ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Loop Count ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with F ps ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtarget . start Animation ( infinite Animation ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( result . isIn finite ()). isTrue () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Return InProgress When Animation IsIn Progress () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġuuid Ġ= ĠIdentifier Factory . random Identifier () ĊĠĠĠĠĠĠĠ Ġval Ġlock Ġ= ĠRe entrant Lock () ĊĠĠĠĠĠĠĠ Ġval Ġcond Ġ= Ġlock . new Condition () ĊĊĠĠĠĠĠĠĠ ĠMockito .` when `( animation Mock . id ). thenReturn ( uuid ) ĊĠĠĠĠĠĠĠ ĠMockito .` when `( animation Mock . is Loop ed In def initely ()). thenReturn ( false ) ĊĠĠĠĠĠĠĠ ĠMockito .` when `( animation Mock . fetch Current Frame ()). then Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlock . lock () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcond . await ( 2 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDefault AnimationFrame ( Size . one (), ĠlistOf (), Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtarget . start Animation ( animation Mock ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( result . isRunning ()). isTrue () ĊĠĠĠĠĠĠĠ Ġlock . lock () ĊĠĠĠĠĠĠĠ Ġcond . signal All () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Return Finished When Animation Is Finished () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġuuid Ġ= ĠIdentifier Factory . random Identifier () ĊĠĠĠĠĠĠĠ Ġval Ġcurr Frame Ġ= ĠDefault AnimationFrame ( Size . one (), ĠlistOf (), Ġ 1 ) ĊĊĠĠĠĠĠĠĠ ĠMockito .` when `( animation Mock . id ). thenReturn ( uuid ) ĊĠĠĠĠĠĠĠ ĠMockito .` when `( animation Mock . is Loop ed In def initely ()). thenReturn ( false ) ĊĠĠĠĠĠĠĠ ĠMockito .` when `( animation Mock . fetch Next Frame ()). thenReturn ( Maybe . empty ()) ĊĠĠĠĠĠĠĠ ĠMockito .` when `( animation Mock . fetch Current Frame ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurr Frame ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠMockito .` when `( animation Mock . hasNext Frame ()). thenReturn ( false ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtile Grid Ġ= ĠTile Grid Builder . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Size ( Size . create ( 5 0 , Ġ 5 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Tile set ( BuiltIn CP 4 3 7 Tile set Resource . AD U _ DH ABI _ 1 6 X 1 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtarget . start Animation ( animation Mock ) ĊĊĠĠĠĠĠĠĠ Ġtarget . update Animations ( System . currentTimeMillis () Ġ+ Ġ 1 0 0 0 , Ġtile Grid ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( result . is Finished ()). isTrue () ĊĠĠĠ Ġ} Ċ } Ċ