import Ġcom . squareup . kotlin po et . File Spec Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ internal Ġclass ĠMain Kt Test Ċ { ĊĠ Ġ@ Test ĊĠ Ġfun Ġ` generate Ġ' register ' Ġmethod Ġwith Ġno Ġconstructor Ġparam aters `() ĊĠ Ġ{ ĊĠĠĠ Ġval Ġexpected Ġ= ĊĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠ Ġinline Ġfun Ġ< re ified ĠK > ĠInjection . register ( no inline Ġconstr : Ġ() Ġ-> ĠK ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprovider Ġ{ Ġconstr () Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠ Ġval Ġresult Ġ= ĠStringBuilder () ĊĠĠĠ ĠFile Spec . builder ("", Ġ"") ĊĠĠĠĠĠ Ġ. addFunction ( generate Register Func ( 0 )) ĊĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠ Ġ. writeTo ( result ) ĊĊĠĠĠ ĠassertThat ( result . toString (). trim Indent ()). isEqualTo ( expected ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` generate Ġ' register ' Ġmethod Ġwith Ġtwo Ġconstructor Ġparam aters `() ĊĠ Ġ{ ĊĠĠĠ Ġval Ġexpected Ġ= ĊĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠ Ġinline Ġfun Ġ< re ified ĠK , Ġre ified ĠA , Ġre ified ĠB > ĠInjection . register ( no inline Ġconstr : Ġ( A , ĠB ) Ġ-> ĠK ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprovider Ġ{ Ġconstr ( g im me (), Ġg im me ()) Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠ Ġval Ġresult Ġ= ĠStringBuilder () ĊĠĠĠ ĠFile Spec . builder ("", Ġ"") ĊĠĠĠĠĠ Ġ. addFunction ( generate Register Func ( 2 )) ĊĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠ Ġ. writeTo ( result ) ĊĊĠĠĠ ĠassertThat ( result . toString (). trim Indent ()). isEqualTo ( expected ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` generate Ġ' g im me Now ' Ġmethod Ġwith Ġno Ġconstructor Ġparam aters `() ĊĠ Ġ{ ĊĠĠĠ Ġval Ġexpected Ġ= ĊĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠ Ġinline Ġfun Ġ< re ified ĠK > ĠInjection . g im me Now ( no inline Ġconstr : Ġ() Ġ-> ĠK ): ĠK Ġ= Ġconstr () ĊĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠ Ġval Ġresult Ġ= ĠStringBuilder () ĊĠĠĠ ĠFile Spec . builder ("", Ġ"") ĊĠĠĠĠĠ Ġ. addFunction ( generate G im me Now Func ( 0 )) ĊĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠ Ġ. writeTo ( result ) ĊĊĠĠĠ ĠassertThat ( result . toString (). trim Indent ()). isEqualTo ( expected ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` generate Ġ' g im me Now ' Ġmethod Ġwith Ġtwo Ġconstructor Ġparam aters `() ĊĠ Ġ{ ĊĠĠĠ Ġval Ġexpected Ġ= ĊĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠ Ġinline Ġfun Ġ< re ified ĠK , Ġre ified ĠA , Ġre ified ĠB > ĠInjection . g im me Now ( no inline Ġconstr : Ġ( A , ĠB ) Ġ-> ĠK ): ĠK Ġ= ĊĠĠĠĠĠĠĠĠĠ Ġconstr ( g im me (), Ġg im me ()) ĊĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠ Ġval Ġresult Ġ= ĠStringBuilder () ĊĠĠĠ ĠFile Spec . builder ("", Ġ"") ĊĠĠĠĠĠ Ġ. addFunction ( generate G im me Now Func ( 2 )) ĊĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠ Ġ. writeTo ( result ) ĊĊĠĠĠ ĠassertThat ( result . toString (). trim Indent ()). isEqualTo ( expected ) ĊĠ Ġ} Ċ }