/* Ċ Ġ* ĠFX GL Ġ- ĠJava FX ĠGame ĠLibrary . ĠThe ĠMIT ĠLicense Ġ( MIT ). Ċ Ġ* ĠCopyright Ġ( c ) ĠAl mas B Ġ( al mas lvl @ gmail . com ). Ċ Ġ* ĠSee ĠLICENSE Ġfor Ġdetails . Ċ Ġ*/ Ċ Ċ package Ġcom . al mas b . fx gl . entity . animation Ċ Ċ import Ġcom . al mas b . fx gl . app . FX GL Ċ import Ġcom . al mas b . fx gl . app . Mock State Ċ import Ġcom . al mas b . fx gl . entity . Entity Ċ import Ġcom . al mas b . fx gl . entity . components . Color Component Ċ import Ġjavafx . geometry . Point 2 D Ċ import Ġjavafx . scene . paint . Color Ċ import Ġjavafx . scene . shape . Circle Ċ import Ġjavafx . scene . shape . Cubic Curve Ċ import Ġjavafx . scene . shape . Quad Curve Ċ import Ġjavafx . util . Duration Ċ import Ġorg . hamcrest . Core Matchers .` is ` Ċ import Ġorg . hamcrest . Matcher Assert . assertThat Ċ import Ġorg . junit . jupiter . api . Assertions .* Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ /** Ċ Ġ* Ċ Ġ* Ċ Ġ* Ġ@ author ĠAl mas ĠB aim ag amb et ov Ġ( al mas lvl @ gmail . com ) Ċ Ġ*/ Ċ class ĠAnimation Builder Test Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġstate : ĠMock State ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun Ġ` init `() Ġ{ ĊĠĠĠĠĠĠĠ ĠFX GL . getProperties (). setValue (" dev . show bbox ", Ġfalse ) ĊĠĠĠĠĠĠĠ Ġstate Ġ= ĠMock State () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Translate `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= ĠEntity () ĊĊĠĠĠĠĠĠĠ Ġval Ġanim Ġ= ĠAnimation Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. duration ( Duration . millis ( 1 5 0 . 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. translate ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. from ( Point 2 D ( 0 . 0 , Ġ 0 . 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to ( Point 2 D ( 1 0 0 . 0 , Ġ 5 0 . 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġanim . start ( state ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate . mock Update ( 0 . 0 1 5 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( e . position , Ġ` is `( Point 2 D ( 1 0 0 . 0 , Ġ 5 0 . 0 ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Translate Ġalong Ġquad Ġcurve `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= ĠEntity () ĊĊĠĠĠĠĠĠĠ Ġval Ġcurve Ġ= ĠQuad Curve ( 0 . 0 , Ġ 0 . 0 , Ġ 1 0 0 . 0 , Ġ 2 0 0 . 0 , Ġ 3 0 0 . 0 , Ġ 3 0 0 . 0 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġanim Ġ= ĠAnimation Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. duration ( Duration . millis ( 1 5 0 . 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. translate ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. along Path ( curve ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġanim . start ( state ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate . mock Update ( 0 . 0 1 5 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( e . position , Ġ` is `( Point 2 D ( 3 0 0 . 0 , Ġ 3 0 0 . 0 ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Translate Ġalong Ġcubic Ġcurve `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= ĠEntity () ĊĊĠĠĠĠĠĠĠ Ġval Ġcurve Ġ= ĠC ubic Curve ( 0 . 0 , Ġ 0 . 0 , Ġ 2 0 . 0 , Ġ 3 0 . 0 , Ġ 1 0 0 . 0 , Ġ 2 0 0 . 0 , Ġ 3 0 0 . 0 , Ġ 3 0 0 . 0 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġanim Ġ= ĠAnimation Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. duration ( Duration . millis ( 1 5 0 . 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. translate ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. along Path ( curve ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġanim . start ( state ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate . mock Update ( 0 . 0 1 5 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( e . position , Ġ` is `( Point 2 D ( 3 0 0 . 0 , Ġ 3 0 0 . 0 ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Throw Ġif Ġtranslate Ġalong Ġunknown Ġshape `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThrows ( IllegalArgumentException :: class . java , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġe Ġ= ĠEntity () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurve Ġ= ĠCircle () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnimation Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. duration ( Duration . millis ( 1 5 0 . 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. translate ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. along Path ( curve ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Rotate `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= ĠEntity () ĊĊĠĠĠĠĠĠĠ Ġval Ġanim Ġ= ĠAnimation Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. duration ( Duration . millis ( 1 5 0 . 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. rotate ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. rotate From ( 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. rotate To ( 3 5 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġanim . start ( state ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate . mock Update ( 0 . 0 1 5 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( e . rotation , Ġ` is `( 3 5 . 0 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Scale `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= ĠEntity () ĊĊĠĠĠĠĠĠĠ Ġval Ġanim Ġ= ĠAnimation Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. duration ( Duration . millis ( 1 5 0 . 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. scale ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. from ( Point 2 D ( 1 . 0 , Ġ 1 . 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to ( Point 2 D ( 1 . 5 , Ġ 1 . 5 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġanim . start ( state ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate . mock Update ( 0 . 0 1 5 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( e . view . scale X , Ġ` is `( 1 . 5 )) ĊĠĠĠĠĠĠĠ ĠassertThat ( e . view . scale Y , Ġ` is `( 1 . 5 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Color Ġanimation `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= ĠEntity () ĊĠĠĠĠĠĠĠ Ġe . addComponent ( Color Component ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġend Color Ġ= ĠColor . color ( 0 . 5 , Ġ 0 . 2 , Ġ 0 . 3 3 , Ġ 0 . 5 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġanim Ġ= ĠAnimation Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. duration ( Duration . millis ( 1 0 0 . 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. color ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. from Color ( Color . A QUA ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Color ( end Color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġanim . start ( state ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 7 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate . mock Update ( 0 . 0 1 5 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= Ġe . getComponent ( Color Component :: class . java ). value ĊĊĠĠĠĠĠĠĠ ĠassertThat ( color , Ġ` is `( end Color )) ĊĠĠĠ Ġ} Ċ }