package Ġorg . actor lang . interpreter Ċ Ċ import Ġorg . actor lang . ast . Root Node Ċ import Ġorg . actor lang . config . Configuration Ċ import Ġorg . actor lang . parser . Parser Ċ import Ġorg . actor lang . parser . Parser Factory Ċ import Ġorg . actor lang . parser . Position Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . mockito . kotlin . any Ċ import Ġorg . mockito . kotlin . do Return Ċ import Ġorg . mockito . kotlin . mock Ċ import Ġorg . mockito . kotlin . verify Ċ Ċ internal Ġclass ĠInterpreter Impl Test Ġ{ ĊĊĠĠĠ Ġprivate Ġdata Ġclass ĠStub bed Parser Factory And Parser ( ĊĠĠĠĠĠĠĠ Ġval Ġparser Factory : ĠParser Factory , ĊĠĠĠĠĠĠĠ Ġval Ġparser : ĠParser ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġa Ġstub bed ĠParser Factory Ġreturning Ġa Ġstub bed ĠParser Ġinstance . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġcreate Stub bed Parser Factory And Parser (): ĠStub bed Parser Factory And Parser Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot Node Ġ= ĠRoot Node ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPosition ( 1 , Ġ 1 , Ġ" test "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPosition ( 1 , Ġ 1 , Ġ" test "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġparser Stub Ġ= Ġmock < Parser > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparse ( any (), Ġany ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġdo Return ( root Node ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġparser Factory Stub Ġ= Ġmock < Parser Factory > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Parser () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġdo Return ( parser Stub ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠStub bed Parser Factory And Parser ( parser Factory Stub , Ġparser Stub ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Run Ġcalls ĠParser Factory # create Parser `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstub bed Parser Factory And Parser Ġ= Ġcreate Stub bed Parser Factory And Parser () ĊĠĠĠĠĠĠĠ Ġval Ġinterpreter Ġ= ĠInterpreter Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration Ġ= ĠConfiguration (). apply Ġ{ Ġdebug Ġ= Ġfalse Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Ġ= Ġmock (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommunications Sender Ġ= Ġmock (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommunications Binder Ġ= Ġmock (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscheduler Ġ= Ġmock (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscheduler Synchronization Ġ= Ġmock (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstub bed Parser Factory And Parser . parser Factory ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġinterpreter . run ("", Ġ" test ") ĊĠĠĠĠĠĠĠ Ġverify ( stub bed Parser Factory And Parser . parser Factory ). create Parser () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Run Ġcalls ĠParser # parse `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstub bed Parser Factory And Parser Ġ= Ġcreate Stub bed Parser Factory And Parser () ĊĠĠĠĠĠĠĠ Ġval Ġinterpreter Ġ= ĠInterpreter Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration Ġ= ĠConfiguration (). apply Ġ{ Ġdebug Ġ= Ġfalse Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Ġ= Ġmock (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommunications Sender Ġ= Ġmock (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommunications Binder Ġ= Ġmock (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscheduler Ġ= Ġmock (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscheduler Synchronization Ġ= Ġmock (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstub bed Parser Factory And Parser . parser Factory ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġinterpreter . run ("", Ġ" test ") ĊĠĠĠĠĠĠĠ Ġverify ( stub bed Parser Factory And Parser . parser ). parse ( any (), Ġany ()) ĊĠĠĠ Ġ} Ċ } Ċ