package Ġcom . boot s . completed game str acker . service Ċ Ċ import Ġcom . boot s . completed game str acker . model . Game Ċ import Ġcom . boot s . completed game str acker . repository . Games Repository Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . bson . types . ObjectId Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . mockito . Mockito Ċ import Ġorg . mockito . kotlin . any Ċ import Ġorg . mockito . kotlin . mock Ċ import Ġorg . mockito . kotlin . wh enever Ċ import Ġorg . springframework . mock . web . Mock Multipart File Ċ import Ġjava . io . File Ċ import Ġjava . io . FileInputStream Ċ import Ġjava . util .* Ċ Ċ class ĠGames Service Tests Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġgames Repository : ĠGames Repository Ġ= Ġmock () ĊĊĠĠĠ Ġprivate Ġval Ġgames Service Ġ= ĠGames Service ( games Repository ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcreate Game Returns Created Game () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhenever ( games Repository . insert ( Mockito . any ( Game :: class . java ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( Game (" random _ id ", Ġ" God Ġof ĠWar ")) ĊĊĠĠĠĠĠĠĠ Ġval Ġcreated Game Ġ= Ġgames Service . create Game ( Game ( name Ġ= Ġ" God Ġof ĠWar ")) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( created Game . id ). isEqualTo (" random _ id ") ĊĠĠĠĠĠĠĠ ĠassertThat ( created Game . name ). isEqualTo (" God Ġof ĠWar ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġempty Text File Is Processed And Returns Count () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile (" src / test / resources / empty _ text _ file . txt ") ĊĠĠĠĠĠĠĠ Ġval ĠinputStream Ġ= ĠFileInputStream ( file ) ĊĠĠĠĠĠĠĠ Ġval Ġmultipart File Ġ= ĠMock Multipart File ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" file ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile . name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" text / plain ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠinputStream . read All Bytes () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcreated Games Count Ġ= Ġgames Service . process Text File ( multipart File ) ĊĠĠĠĠĠĠĠ ĠassertThat ( created Games Count . size ). is Zero ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtext File With Content Is Processed And Returns Count () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile (" src / test / resources / file _ with _ 1 0 _ game _ names . txt ") ĊĠĠĠĠĠĠĠ Ġval ĠinputStream Ġ= ĠFileInputStream ( file ) ĊĠĠĠĠĠĠĠ Ġval Ġmultipart File Ġ= ĠMock Multipart File ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" file ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile . name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" text / plain ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠinputStream . read All Bytes () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġwhenever ( games Repository . insert ( Mockito . any ( Game :: class . java ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( Game ( name Ġ= Ġ" Ass ass in 's ĠCre ed Ġtitle ")) ĊĊĠĠĠĠĠĠĠ Ġval Ġcreated Games Count Ġ= Ġgames Service . process Text File ( multipart File ) ĊĠĠĠĠĠĠĠ ĠassertThat ( created Games Count . size ). isEqualTo ( 1 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠgetAll Games Returns Empty List () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhenever ( games Repository . findAll ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( emptyList ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġgames Ġ= Ġgames Service . getAll Games () ĊĊĠĠĠĠĠĠĠ ĠassertThat ( games . size ). is Zero ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠgetAll Games Returns List With Games () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhenever ( games Repository . findAll ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( listOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGame ( name Ġ= Ġ" Y aku za Ġ 0 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGame ( name Ġ= Ġ" Y aku za ĠK iw ami "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGame ( name Ġ= Ġ" Y aku za ĠK iw ami Ġ 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGame ( name Ġ= Ġ" Y aku za Ġ 3 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠ Ġval Ġgames Ġ= Ġgames Service . getAll Games () ĊĊĠĠĠĠĠĠĠ ĠassertThat ( games . size ). isEqualTo ( 4 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Game Returns Game () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhenever ( games Repository . findById ( any ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( Optional . of ( Game ( name Ġ= Ġ" The ĠDark side ĠDetect ive "))) ĊĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= Ġgames Service . get Game ( ObjectId . get ()) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( game . name ). isEqualTo (" The ĠDark side ĠDetect ive ") ĊĠĠĠ Ġ} Ċ Ċ }