package Ġcom . team click er . game service . game . spring Ċ Ċ import Ġcom . team click er . game service . game . core . Game Exception Ċ import Ġcom . team click er . game service . game . templates . Wave Template Ċ import Ġcom . team click er . game service . game . workers . Workers Supervisor Ċ import Ġcom . team click er . game service . models . dao . Player DAO Ċ import Ġcom . team click er . game service . models . dao . Player Stats DAO Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . Assertions . assert Throws Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Nested Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . extension . Extend With Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . boot . test . context . SpringBootTest Ċ import Ġorg . springframework . test . context . junit . jupiter . Spring Extension Ċ Ċ @ Extend With ( Spring Extension :: class ) Ċ @ SpringBootTest ( web Environment Ġ= ĠSpring Boot Test . Web Environment . RANDOM _ PORT ) Ċ internal Ġclass ĠGame Service Test Ġ{ ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġworkers Supervisor : ĠWork ers Supervisor ĊĠĠĠ Ġlateinit Ġvar Ġgame Service : ĠGame Service ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġgame Service Ġ= ĠGame Service ( workers Supervisor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠCreate Game Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġcreate Ġa Ġgame `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplayers Ġ= ĠlistOf ( Player DAO (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . accountId Ġ= Ġ 1 2 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . stats Ġ= ĠPlayer Stats DAO (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . atk Ġ= Ġ 1 5 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwaves Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWave Template ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate Id Ġ= Ġ 4 4 5 7 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcre atures Ġ= Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmanager Ġ= Ġgame Service . create Game ( players , Ġwaves ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( manager , Ġgame Service . get Game ( manager . game Id )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġmanager . waves . size ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġmanager . players . size ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠGet Game Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġthrow Ġexception Ġwhen Ġgame Ġdoesn 't Ġexist `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThrows ( Game Exception :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame Service . get Game (" 1 2 3 4 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠRemove Game Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġremove Ġgame `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmanager Ġ= Ġgame Service . create Game ( listOf (), ĠlistOf ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( manager , Ġgame Service . get Game ( manager . game Id )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame Service . remove Game ( manager . game Id ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThrows ( Game Exception :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame Service . get Game ( manager . game Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` should Ġthrow Ġexception Ġwhen Ġremoving Ġnot Ġexisting Ġgame `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThrows ( Game Exception :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame Service . remove Game (" 4 4 3 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }