package Ġcom . bad oo . automation . devices erver . ios . proc Ċ Ċ import Ġcom . bad oo . automation . devices erver . command . Child Process Ċ import Ġcom . bad oo . automation . devices erver . data . UD ID Ċ import Ġcom . bad oo . automation . devices erver . host . I Remote Ċ import Ġcom . n ha ar man . mockito _ kotlin . wh enever Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . mockito . Mock Ċ import Ġorg . mockito . Mockito Annotations Ċ import Ġjava . net . URI Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠF bs im ctl Proc Test Ġ{ ĊĠĠĠ Ġ@ Mock Ġprivate Ġlateinit Ġvar Ġremote : ĠI Remote ĊĠĠĠ Ġprivate Ġval Ġud id : ĠU DID Ġ= Ġ" UD ID " ĊĠĠĠ Ġ@ Mock Ġprivate Ġlateinit Ġvar Ġendpoint : ĠURI ĊĠĠĠ Ġ@ Mock Ġprivate Ġlateinit Ġvar Ġchild Process : ĠChild Process ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġactual Command : ĠList < String > ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ ĠMockito Annotations . init Mocks ( this ) ĊĠĠĠĠĠĠĠ Ġwhenever ( remote . host Name ). thenReturn (" host Name ") ĊĠĠĠĠĠĠĠ Ġwhenever ( remote . userName ). thenReturn (" userName ") ĊĠĠĠĠĠĠĠ Ġwhenever ( endpoint . port ). thenReturn ( 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġstart Head less () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhead less Ġ= Ġtrue ĊĠĠĠĠĠĠĠ ĠF bs im ctl Proc ( remote , Ġud id , Ġendpoint , Ġhead less , Ġthis :: child Factory ). start () ĊĠĠĠĠĠĠĠ Ġval Ġexpected Command Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ usr / local / bin / f bs im ctl ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" UD ID ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" boot ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"-- direct - launch ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"-- ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" listen ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"-- http ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Command , Ġactual Command , Ġ" Wrong Ġcommand ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġstart He aded () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhead less Ġ= Ġfalse ĊĠĠĠĠĠĠĠ ĠF bs im ctl Proc ( remote , Ġud id , Ġendpoint , Ġhead less , Ġthis :: child Factory ). start () ĊĠĠĠĠĠĠĠ Ġval Ġexpected Command Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ usr / local / bin / f bs im ctl ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" UD ID ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" boot ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"-- ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" listen ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"-- http ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Command , Ġactual Command , Ġ" Wrong Ġcommand ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UNUSED _ PARAMETER ") ĊĠĠĠ Ġprivate Ġfun Ġchild Factory ( ĊĠĠĠĠĠĠĠ Ġremote Host : ĠString , ĊĠĠĠĠĠĠĠ Ġusername : ĠString , ĊĠĠĠĠĠĠĠ Ġcmd : ĠList < String >, ĊĠĠĠĠĠĠĠ Ġcommand Environment : ĠMap < String , ĠString >, ĊĠĠĠĠĠĠĠ Ġout _ reader : Ġ(( line : ĠString ) Ġ-> ĠUnit )? , ĊĠĠĠĠĠĠĠ Ġerr _ reader : Ġ(( line : ĠString ) Ġ-> ĠUnit )? ĊĠĠĠ Ġ): ĠChild Process Ġ{ ĊĠĠĠĠĠĠĠ Ġactual Command Ġ= Ġcmd ĊĠĠĠĠĠĠĠ Ġreturn Ġchild Process ĊĠĠĠ Ġ} Ċ }