package Ġio . mock k . impl . stub Ċ Ċ import Ġio . mock k .* Ċ import Ġio . mock k . impl . Internal Platform Ċ import Ġkotlin . reflect . K Class Ċ Ċ class ĠConstructor Stub ( ĊĠĠĠ Ġval Ġmock : ĠAny , ĊĠĠĠ Ġval Ġrepresentative Mock : ĠAny , ĊĠĠĠ Ġval Ġstub : ĠStub , ĊĠĠĠ Ġval Ġrecord Private Calls : ĠBoolean Ċ ) Ġ: ĠStub Ġ{ ĊĠĠĠ Ġprivate Ġval Ġrepresent Ġ= Ġidentity Map Of ( mock Ġto Ġrepresentative Mock ) ĊĠĠĠ Ġprivate Ġval Ġrevert Representation Ġ= Ġidentity Map Of ( represent ative Mock Ġto Ġmock ) ĊĊĠĠĠ Ġprivate Ġfun Ġ< K , ĠV > Ġidentity Map Of ( var arg Ġpairs : ĠPair < K , ĠV >): ĠMap < K , ĠV > Ġ= ĊĠĠĠĠĠĠĠ ĠInternal Platform . identity Map < K , ĠV >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ Ġmap Ġ-> Ġmap . put All ( pairs ) Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġname : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġstub . name ĊĊĠĠĠ Ġoverride Ġval Ġtype : ĠK Class < *> ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġstub . type ĊĊĠĠĠ Ġoverride Ġfun Ġadd Answer ( matcher : ĠInvocation Matcher , Ġanswer : ĠAnswer <* >) Ġ= ĊĠĠĠĠĠĠĠ Ġstub . add Answer ( matcher . substitute ( represent ), Ġanswer ) ĊĊĠĠĠ Ġoverride Ġfun Ġanswer ( invocation : ĠInvocation ) Ġ= Ġstub . answer ( ĊĠĠĠĠĠĠĠ Ġinvocation . substitute ( represent ) ĊĠĠĠ Ġ). internal Subst itute ( revert Representation ) ĊĊĠĠĠ Ġoverride Ġfun Ġchild Mock K ( matcher : ĠInvocation Matcher , Ġchild Type : ĠK Class <* >) Ġ= ĊĠĠĠĠĠĠĠ Ġstub . child Mock K ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatcher . substitute ( represent ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild Type ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġrecord Call ( invocation : ĠInvocation ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrecord Ġ= Ġif Ġ( record Private Calls ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! invocation . method . private Call ĊĊĠĠĠĠĠĠĠ Ġif Ġ( record ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstub . record Call ( invocation . substitute ( represent )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġall Re corded Calls () Ġ= Ġstub . all Re corded Calls () ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . substitute ( revert Representation ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġall Re corded Calls ( method : ĠMethod Description ) Ġ= ĊĠĠĠĠĠĠĠ Ġstub . all Re corded Calls ( method ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . substitute ( revert Representation ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclear ( options : ĠMock K Gateway . Clear Options ) Ġ= ĊĠĠĠĠĠĠĠ Ġstub . clear ( options ) ĊĊĠĠĠ Ġoverride Ġfun Ġhandle Invocation ( ĊĠĠĠĠĠĠĠ Ġself : ĠAny , ĊĠĠĠĠĠĠĠ Ġmethod : ĠMethod Description , ĊĠĠĠĠĠĠĠ Ġoriginal Call : Ġ() Ġ-> ĠAny ?, ĊĠĠĠĠĠĠĠ Ġargs : ĠArray < out ĠAny ? >, ĊĠĠĠĠĠĠĠ Ġfield Value Provider : ĠBack ing FieldValue Provider ĊĠĠĠ Ġ) Ġ= Ġstub . handle Invocation ( ĊĠĠĠĠĠĠĠ Ġself , ĊĠĠĠĠĠĠĠ Ġmethod , ĊĠĠĠĠĠĠĠ Ġoriginal Call , ĊĠĠĠĠĠĠĠ Ġargs , ĊĠĠĠĠĠĠĠ Ġfield Value Provider ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġto Str () Ġ= Ġstub . to Str () ĊĠĠĠ Ġoverride Ġfun Ġstd Object Answer ( invocation : ĠInvocation ) Ġ= Ġstub . std Object Answer ( invocation . substitute ( represent )) ĊĠĠĠ Ġoverride Ġfun Ġdispose () Ġ= Ġstub . dispose () Ċ }