package Ġunittest Ċ Ċ import Ġcom . github . sh yn ix n . m cc or outine . Sus pending Command Executor Ċ import Ġcom . github . sh yn ix n . m cc or outine . service . Command ServiceImpl Ċ import Ġhelper . Mock ed Coroutine Session Ċ import Ġhelper . any Ċ import Ġorg . bukkit . command . Command Ċ import Ġorg . bukkit . command . Command Executor Ċ import Ġorg . bukkit . command . Command Sender Ċ import Ġorg . bukkit . command . Plugin Command Ċ import Ġorg . bukkit . plugin . Plugin Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . mockito . Mockito Ċ import Ġkotlin . test . assertTrue Ċ Ċ class ĠCommand Service Test Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGiven Ġa Ġsus pending Ġcommand Ġexecutor ĊĠĠĠĠ Ġ* ĠWhen Ġregister Suspend Command Executor Ġis Ġcalled ĊĠĠĠĠ Ġ* Ġthen Ġthe Ġsus pending Ġcommand Ġexecutor Ġshould Ġbe Ġcallable . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġregister Suspend Command Executor _ Valid Parameters _ Should Register Executor () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠArrange ĊĠĠĠĠĠĠĠ Ġval Ġplugin Ġ= ĠMockito . mock ( Plugin :: class . java ) ĊĠĠĠĠĠĠĠ ĠMockito .` when `( plugin . isEnabled ). thenReturn ( true ) ĊĠĠĠĠĠĠĠ Ġvar Ġcommand Executor Called Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġsus pending Command Executor Ġ= Ġobject Ġ: ĠS us pending Command Executor Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġsuspend Ġfun Ġon Command ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender : ĠCommand Sender , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcommand : ĠCommand , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġargs : ĠArray < out ĠString > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcommand Executor Called Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġplugin Command Ġ= ĠMockito . mock ( Plugin Command :: class . java ) ĊĠĠĠĠĠĠĠ Ġvar Ġwrapped Command Executor : ĠCommand Executor ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ ĠMockito .` when `( plugin Command . set Executor ( any ( Command Executor :: class . java ))). then Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwrapped Command Executor Ġ= Ġit . arguments [ 0 ] Ġas ĠCommand Executor ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUnit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġclass UnderTest Ġ= Ġcreate With Dependencies ( plugin ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAct ĊĠĠĠĠĠĠĠ Ġclass UnderTest . register Suspend Command Executor ( plugin Command , Ġsus pending Command Executor ) ĊĠĠĠĠĠĠĠ Ġwrapped Command Executor !!. on Command ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMockito . mock ( Command Sender :: class . java ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMockito . mock ( Command :: class . java ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty Array () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAssert ĊĠĠĠĠĠĠĠ ĠassertTrue ( command Executor Called ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate With Dependencies ( plugin : ĠPlugin ): ĠCommand ServiceImpl Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCommand ServiceImpl ( plugin , ĠMock ed Coroutine Session ()) ĊĠĠĠ Ġ} Ċ } Ċ