package Ġcom . mit te lo upe . test it . generator . mock ing Ċ Ċ import Ġcom . mit te lo upe . test it . generator . formatting . Formatting Ċ import Ġcom . mit te lo upe . test it . model . Class Metadata Ċ import Ġcom . mit te lo upe . test it . model . DataType Ċ import Ġcom . mit te lo upe . test it . model . Typed Parameter Ċ Ċ abstract Ġclass ĠM ocker Code Generator ( ĊĠĠĠ Ġprivate Ġval Ġmock able Type Qualifier : ĠMock able Type Qualifier , ĊĠĠĠ Ġprivate Ġval Ġformatting : ĠFormat ting Ċ ) Ġ{ ĊĠĠĠ Ġprotected Ġval Ġ_ required Imports Ġ= Ġmutable Set Of < String >() ĊĊĠĠĠ Ġval Ġrequired Imports : ĠSet < String > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ required Imports ĊĊĠĠĠ Ġabstract Ġval Ġtest Class Base Runner Annotation : ĠString ? ĊĊĠĠĠ Ġval Ġtest Class Parameterized Runner Annotation Ġ= Ġ"@ RunWith ( Parameterized :: class )" ĊĊĠĠĠ Ġopen Ġval Ġknown Imports : ĠMap < String , ĠString > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" RunWith " Ġto Ġ" org . junit . runner . RunWith ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Rule " Ġto Ġ" org . junit . Rule ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Method Rule " Ġto Ġ" org . junit . rules . Method Rule " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġabstract Ġval ĠsetUp Statements : ĠString ? ĊĊĠĠĠ Ġabstract Ġval Ġmock ing Rule : ĠString ? ĊĊĠĠĠ Ġopen Ġfun Ġreset () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Mock ed Value ( variable Name : ĠString , Ġvariable Type : ĠDataType ) Ġ= ĊĠĠĠĠĠĠĠ Ġmock able Type Qualifier . get Non Mock able Type ( variable Type )?. let Ġ{ Ġtype Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype . defaultValue ( variable Name , Ġvariable Type ) ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġget Mock ed Instance ( variable Type ) ĊĊĠĠĠ Ġfun Ġget Mock ed Variable Definition ( parameter : ĠTyped Parameter ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparameter Name Ġ= Ġparameter . name ĊĠĠĠĠĠĠĠ Ġval Ġparameter Type Ġ= Ġparameter . type ĊĠĠĠĠĠĠĠ Ġreturn Ġmock able Type Qualifier . get Non Mock able Type ( parameter Type )?. let Ġ{ Ġtype Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ indent ()} private Ġval Ġ$ parameter Name Ġ= Ġ${ type . defaultValue ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameter Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameter Type ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) }" ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġget Constructor Mock ( parameter Name , Ġparameter Type ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun ĠsetIs Parameterized Test () Ġ= ĠUnit ĊĊĠĠĠ Ġabstract Ġfun Ġget Constructor Mock ( parameter Name : ĠString , Ġparameter Type : ĠDataType ): ĠString ĊĊĠĠĠ Ġprotected Ġabstract Ġfun Ġget Mock ed Instance ( variable Type : ĠDataType ): ĠString ĊĊĠĠĠ Ġabstract Ġfun Ġget Abstract Class UnderTest ( class UnderTest : ĠClass Metadata ): ĠString ĊĊĠĠĠ Ġabstract Ġfun Ġset Has Mock ed Constructor Parameters ( class UnderTest : ĠClass Metadata ) ĊĊĠĠĠ Ġabstract Ġfun Ġset Has Mock ed Function Parameters () ĊĊĠĠĠ Ġabstract Ġfun Ġset Has Mock ed Function Return Values () ĊĊĠĠĠ Ġabstract Ġfun ĠsetIs Abstract Class UnderTest () ĊĊĠĠĠ Ġfun ĠTyped Parameter . is Mock able () Ġ= Ġmock able Type Qualifier . is Mock able ( this ) ĊĊĠĠĠ Ġfun ĠDataType . is Mock able () Ġ= Ġmock able Type Qualifier . is Mock able ( this ) ĊĊĠĠĠ Ġprotected Ġfun Ġindent ( indentation : ĠInt Ġ= Ġ 1 ) Ġ= Ġformatting . get Indent ation ( indentation ) Ċ } Ċ Ċ data Ġclass ĠConcrete Value ( ĊĠĠĠ Ġval ĠdataType : ĠString , ĊĠĠĠ Ġval ĠdefaultValue : Ġ( String , ĠDataType ) Ġ-> ĠString Ċ ) Ċ