package Ġk tx . assets Ċ Ċ import Ġcom . badlogic . gdx . utils . Pool Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Assert . assertNotNull Ċ import Ġorg . junit . Assert . assertSame Ċ import Ġorg . junit . Test Ċ Ċ /** Ċ Ġ* ĠTests Ġ[ Pool ] Ġextensions . Ċ Ġ*/ Ċ class ĠP ools Test Ġ{ ĊĠ Ġ@ Test ĊĠ Ġfun Ġ` should Ġinvoke Ġpool Ġas Ġno Ġparameter Ġfunction Ġto Ġprovide Ġinstances `() Ġ{ ĊĠĠĠ Ġ// ĠGiven : ĊĠĠĠ Ġval Ġpool Ġ= ĠMock Pool () ĊĊĠĠĠ Ġ// ĠWhen : ĠPool Ġis Ġcalled Ġas Ġa Ġfunction . ĊĠĠĠ Ġval Ġinstance Ġ= Ġpool () ĊĊĠĠĠ Ġ// ĠThen : ĠShould Ġwork Ġas Ġ" obtain ": ĊĠĠĠ ĠassertNotNull ( instance ) ĊĠĠĠ Ġpool . free ( instance ) ĊĠĠĠ ĠassertSame ( instance , Ġpool ()) Ġ// ĠSince Ġthe Ġobject Ġwas Ġfreed , Ġpool Ġshould Ġreturn Ġthe Ġsame Ġinstance . ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` should Ġinvoke Ġpool Ġas Ġone Ġparameter Ġfunction Ġto Ġreturn Ġinstances `() Ġ{ ĊĠĠĠ Ġ// ĠGiven : ĊĠĠĠ Ġval Ġpool Ġ= ĠMock Pool () ĊĠĠĠ Ġval Ġinstance Ġ= Ġpool . obtain () ĊĊĠĠĠ Ġ// ĠWhen : ĠPool Ġis Ġcalled Ġas Ġa Ġfunction Ġwith Ġobject Ġparameter . ĊĠĠĠ Ġpool ( instance ) ĊĊĠĠĠ Ġ// ĠThen : ĠShould Ġwork Ġas Ġ" free ". ĊĠĠĠ ĠassertEquals ( 1 , Ġpool . free ) ĊĠĠĠ ĠassertSame ( instance , Ġpool . obtain ()) Ġ// ĠSince Ġthe Ġobject Ġwas Ġfreed , Ġpool Ġshould Ġreturn Ġthe Ġsame Ġinstance . ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` should Ġcreate Ġnew Ġpools Ġwith Ġcustom Ġproviders `() Ġ{ ĊĠĠĠ Ġ// ĠGiven : ĠA Ġpool Ġthat Ġalways Ġreturns Ġthe Ġsame Ġinstance : ĊĠĠĠ Ġval Ġprovided Ġ= Ġ" 1 0 " ĊĠĠĠ Ġval Ġpool Ġ= Ġpool Ġ{ Ġprovided Ġ} ĊĊĠĠĠ Ġ// ĠWhen : ĊĠĠĠ Ġval Ġobtained Ġ= Ġpool () ĊĊĠĠĠ Ġ// ĠThen : ĊĠĠĠ ĠassertSame ( provided , Ġobtained ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` should Ġhon or Ġmax Ġsetting `() Ġ{ ĊĠĠĠ Ġ// ĠGiven : ĊĠĠĠ Ġval Ġpool Ġ= Ġpool ( max Ġ= Ġ 5 ) Ġ{ Ġ" Mock ." Ġ} ĊĊĠĠĠ Ġ// ĠWhen : ĊĠĠĠ Ġfor Ġ( index Ġin Ġ 1 .. 1 0 ) Ġpool . free (" Value .") ĊĊĠĠĠ Ġ// ĠThen : ĊĠĠĠ ĠassertEquals ( 5 , Ġpool . free ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` should Ġcreate Ġnew Ġpools Ġwith Ġa Ġcustom Ġdiscard Ġfunction `() Ġ{ ĊĠĠĠ Ġ// ĠGiven : ĠA Ġpool Ġthat Ġadds Ġdiscarded Ġobjects Ġto Ġa Ġlist : ĊĠĠĠ Ġval Ġdiscarded Ġ= Ġmutable ListOf < String >() ĊĠĠĠ Ġval Ġpool Ġ= Ġpool ( max Ġ= Ġ 5 , Ġdiscard Ġ= Ġ{ Ġdiscarded . add ( it ) Ġ}) Ġ{ Ġ" Mock ." Ġ} ĊĊĠĠĠ Ġ// ĠWhen : ĊĠĠĠ Ġfor Ġ( index Ġin Ġ 1 .. 1 0 ) Ġpool . free (" Value $ index ") ĊĊĠĠĠ Ġ// ĠThen : ĊĠĠĠ ĠassertEquals ( listOf (" Value 6 ", Ġ" Value 7 ", Ġ" Value 8 ", Ġ" Value 9 ", Ġ" Value 1 0 "), Ġdiscarded ) ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠProvides Ġnew Ġ[ Any ] Ġinstances . ĊĠĠ Ġ*/ ĊĠ Ġprivate Ġclass ĠMock Pool Ġ: ĠPool < Any >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġnew Object (): ĠAny Ġ= ĠAny () ĊĠ Ġ} Ċ } Ċ