/* Ċ Ġ* ĠCopyright Ġ 2 0 2 2 ĠB apt iste ĠCan del lier Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠSte ph ane ĠN icol as Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠDaniel ĠM olin ero ĠRe gu era Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġtoo th pick . compiler . member injector Ċ Ċ import Ġorg . junit . Ignore Ċ import Ġorg . junit . Test Ċ import Ġtoo th pick . compiler . compilation Assert Ċ import Ġtoo th pick . compiler . comp iles Without Error Ċ import Ġtoo th pick . compiler . expected Kt Source Ċ import Ġtoo th pick . compiler . fails To Compile Ċ import Ġtoo th pick . compiler . gener ates Sources Ċ import Ġtoo th pick . compiler . java Source Ċ import Ġtoo th pick . compiler . kt Source Ċ import Ġtoo th pick . compiler . processed With Ċ import Ġtoo th pick . compiler . that Ċ import Ġtoo th pick . compiler . with Log Containing Ċ Ċ @ Suppress (" Private PropertyName ") Ċ class ĠField Member Injector Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Simple Field Injection _ java () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġjava Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject ĠFoo Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠTest Field Injection () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( test Simple Field Injection _ expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Simple Field Injection _ kt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġkt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġfoo : ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( test Simple Field Injection _ expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtest Simple Field Injection _ expected Ġ= Ġexpected Kt Source ( ĊĠĠĠĠĠĠĠ Ġ" test / Test Field Injection __ Member Injector ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Suppress ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Unit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Member Injector ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Scope ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ClassName ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Red undant Visibility Modifier ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" UN CHECK ED _ CAST " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection __ Member Injector Ġ: ĠMember Injector < Test Field Injection > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġoverride Ġfun Ġinject ( target : ĠTest Field Injection , Ġscope : ĠScope ): ĠUnit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . foo Ġ= Ġscope . getInstance ( Foo :: class . java ) Ġas ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Named Field Injection _ when Using Named _ java () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġjava Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Named ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġ@ Named (" bar ") ĠFoo Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠTest Field Injection () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( test Named Field Injection _ when Using Named _ expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Named Field Injection _ when Using Named _ kt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġkt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Named ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġ@ Named (" bar ") Ġlateinit Ġvar Ġfoo : ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( test Named Field Injection _ when Using Named _ expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtest Named Field Injection _ when Using Named _ expected Ġ= Ġexpected Kt Source ( ĊĠĠĠĠĠĠĠ Ġ" test / Test Field Injection __ Member Injector ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Suppress ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Unit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Member Injector ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Scope ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ClassName ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Red undant Visibility Modifier ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" UN CHECK ED _ CAST " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection __ Member Injector Ġ: ĠMember Injector < Test Field Injection > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġoverride Ġfun Ġinject ( target : ĠTest Field Injection , Ġscope : ĠScope ): ĠUnit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . foo Ġ= Ġscope . getInstance ( Foo :: class . java , Ġ" bar ") Ġas ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Named Field Injection _ when Using Qualifier Annotation _ java () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġjava Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Named ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Qualifier ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġ@ Bar ĠFoo Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠTest Field Injection () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Qualifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ interface ĠBar Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( test Named Field Injection _ when Using Qualifier Annotation _ expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Named Field Injection _ when Using Qualifier Annotation _ kt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġkt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Named ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Qualifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġ@ Bar Ġlateinit Ġvar Ġfoo : ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Qualifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġannotation Ġclass ĠBar ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( test Named Field Injection _ when Using Qualifier Annotation _ expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtest Named Field Injection _ when Using Qualifier Annotation _ expected Ġ= Ġexpected Kt Source ( ĊĠĠĠĠĠĠĠ Ġ" test / Test Field Injection __ Member Injector ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Suppress ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Unit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Member Injector ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Scope ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ClassName ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Red undant Visibility Modifier ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" UN CHECK ED _ CAST " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection __ Member Injector Ġ: ĠMember Injector < Test Field Injection > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġoverride Ġfun Ġinject ( target : ĠTest Field Injection , Ġscope : ĠScope ): ĠUnit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . foo Ġ= Ġscope . getInstance ( Foo :: class . java , Ġ" test . Bar ") Ġas ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Named Field Injection _ when Using Non Qualifier Annotation _ java () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġjava Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Named ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġ@ Bar ĠFoo Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠTest Field Injection () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ interface ĠBar Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( test Named Field Injection _ when Using Non Qualifier Annotation _ expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Named Field Injection _ when Using Non Qualifier Annotation _ kt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġkt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Named ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġ@ Bar Ġlateinit Ġvar Ġfoo : ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġannotation Ġclass ĠBar ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( test Named Field Injection _ when Using Non Qualifier Annotation _ expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtest Named Field Injection _ when Using Non Qualifier Annotation _ expected Ġ= Ġexpected Kt Source ( ĊĠĠĠĠĠĠĠ Ġ" test / Test Field Injection __ Member Injector ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Suppress ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Unit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Member Injector ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Scope ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ClassName ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Red undant Visibility Modifier ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" UN CHECK ED _ CAST " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection __ Member Injector Ġ: ĠMember Injector < Test Field Injection > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġoverride Ġfun Ġinject ( target : ĠTest Field Injection , Ġscope : ĠScope ): ĠUnit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . foo Ġ= Ġscope . getInstance ( Foo :: class . java ) Ġas ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Named Provider Field Injection _ when Using Qualifier Annotation _ java () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġjava Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Named ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Provider ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Qualifier ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġ@ Bar ĠProvider < Foo > Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠTest Field Injection () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Qualifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ interface ĠBar Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( test Named Provider Field Injection _ when Using Qualifier Annotation _ expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Named Provider Field Injection _ when Using Qualifier Annotation _ kt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġkt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Named ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Provider ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Qualifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġ@ Bar Ġlateinit Ġvar Ġfoo : ĠProvider < Foo > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Qualifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġannotation Ġclass ĠBar ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( test Named Provider Field Injection _ when Using Qualifier Annotation _ expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtest Named Provider Field Injection _ when Using Qualifier Annotation _ expected Ġ= Ġexpected Kt Source ( ĊĠĠĠĠĠĠĠ Ġ" test / Test Field Injection __ Member Injector ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Provider ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Suppress ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Unit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Member Injector ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Scope ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ClassName ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Red undant Visibility Modifier ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" UN CHECK ED _ CAST " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection __ Member Injector Ġ: ĠMember Injector < Test Field Injection > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġoverride Ġfun Ġinject ( target : ĠTest Field Injection , Ġscope : ĠScope ): ĠUnit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . foo Ġ= Ġscope . get Provider ( Foo :: class . java , Ġ" test . Bar ") Ġas ĠProvider < Foo > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Named Provider Field Injection _ when Using Non Qualifier Annotation _ java () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġjava Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Named ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Provider ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġ@ Bar ĠProvider < Foo > Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠTest Field Injection () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ interface ĠBar Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( test Named Provider Field Injection _ when Using Non Qualifier Annotation _ expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Named Provider Field Injection _ when Using Non Qualifier Annotation _ kt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġkt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Named ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Provider ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġ@ Bar Ġlateinit Ġvar Ġfoo : ĠProvider < Foo > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġannotation Ġclass ĠBar ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( test Named Provider Field Injection _ when Using Non Qualifier Annotation _ expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtest Named Provider Field Injection _ when Using Non Qualifier Annotation _ expected Ġ= Ġexpected Kt Source ( ĊĠĠĠĠĠĠĠ Ġ" test / Test Field Injection __ Member Injector ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Provider ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Suppress ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Unit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Member Injector ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Scope ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ClassName ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Red undant Visibility Modifier ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" UN CHECK ED _ CAST " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection __ Member Injector Ġ: ĠMember Injector < Test Field Injection > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġoverride Ġfun Ġinject ( target : ĠTest Field Injection , Ġscope : ĠScope ): ĠUnit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . foo Ġ= Ġscope . get Provider ( Foo :: class . java ) Ġas ĠProvider < Foo > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Named Field Injection _ should Work _ when Using More Than 2 Annotation _ but Only 1 Qualifier _ java () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġjava Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Named ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Qualifier ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġ@ Bar Ġ@ Q ur tz ĠFoo Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠTest Field Injection () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Qualifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ interface ĠBar Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ interface ĠQ ur tz Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( test Named Field Injection _ should Work _ when Using More Than 2 Annotation _ but Only 1 Qualifier _ expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Named Field Injection _ should Work _ when Using More Than 2 Annotation _ but Only 1 Qualifier _ kt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġkt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Named ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Qualifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġ@ Bar Ġ@ Q ur tz Ġlateinit Ġvar Ġfoo : ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Qualifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġannotation Ġclass ĠBar ĊĠĠĠĠĠĠĠĠĠĠĠ Ġannotation Ġclass ĠQ ur tz ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( test Named Field Injection _ should Work _ when Using More Than 2 Annotation _ but Only 1 Qualifier _ expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtest Named Field Injection _ should Work _ when Using More Than 2 Annotation _ but Only 1 Qualifier _ expected Ġ= ĊĠĠĠĠĠĠĠ Ġexpected Kt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" test / Test Field Injection __ Member Injector ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Suppress ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Unit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Member Injector ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Scope ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ClassName ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Red undant Visibility Modifier ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" UN CHECK ED _ CAST " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection __ Member Injector Ġ: ĠMember Injector < Test Field Injection > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġoverride Ġfun Ġinject ( target : ĠTest Field Injection , Ġscope : ĠScope ): ĠUnit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . foo Ġ= Ġscope . getInstance ( Foo :: class . java , Ġ" test . Bar ") Ġas ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Named Field Injection _ should Fail _ when Using More Than 1 Qualifier Annotations _ java () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġjava Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Named ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Qualifier ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġ@ Bar Ġ@ Q ur tz ĠFoo Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠTest Field Injection () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Qualifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ interface ĠBar Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Qualifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ interface ĠQ ur tz Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fails To Compile () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Log Containing ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Only Ġone Ġjavax . inject . Qualifier Ġannotation Ġis Ġallowed Ġto Ġname Ġinjection s ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Named Field Injection _ should Fail _ when Using More Than 1 Qualifier Annotations _ kt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġkt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Named ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Qualifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġ@ Bar Ġ@ Q ur tz Ġlateinit Ġvar Ġfoo : ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Qualifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġannotation Ġclass ĠBar ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Qualifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġannotation Ġclass ĠQ ur tz ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fails To Compile () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Log Containing ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Only Ġone Ġjavax . inject . Qualifier Ġannotation Ġis Ġallowed Ġto Ġname Ġinjection s ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Provider Field Injection _ java () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġjava Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Provider ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject ĠProvider < Foo > Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠTest Field Injection () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( test Provider Field Injection _ expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Provider Field Injection _ kt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġkt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Provider ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġfoo : ĠProvider < Foo > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( test Provider Field Injection _ expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtest Provider Field Injection _ expected Ġ= Ġexpected Kt Source ( ĊĠĠĠĠĠĠĠ Ġ" test / Test Field Injection __ Member Injector ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Provider ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Suppress ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Unit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Member Injector ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Scope ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ClassName ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Red undant Visibility Modifier ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" UN CHECK ED _ CAST " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection __ Member Injector Ġ: ĠMember Injector < Test Field Injection > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġoverride Ġfun Ġinject ( target : ĠTest Field Injection , Ġscope : ĠScope ): ĠUnit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . foo Ġ= Ġscope . get Provider ( Foo :: class . java ) Ġas ĠProvider < Foo > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Lazy Field Injection _ java () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġjava Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Lazy ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject ĠLazy < Foo > Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠTest Field Injection () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( test Lazy Field Injection _ expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Lazy Field Injection _ kt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġkt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Lazy ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġfoo : ĠLazy < Foo > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( test Lazy Field Injection _ expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtest Lazy Field Injection _ expected Ġ= Ġexpected Kt Source ( ĊĠĠĠĠĠĠĠ Ġ" test / Test Field Injection __ Member Injector ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Suppress ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Unit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Lazy ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Member Injector ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Scope ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ClassName ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Red undant Visibility Modifier ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" UN CHECK ED _ CAST " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection __ Member Injector Ġ: ĠMember Injector < Test Field Injection > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġoverride Ġfun Ġinject ( target : ĠTest Field Injection , Ġscope : ĠScope ): ĠUnit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . foo Ġ= Ġscope . get Lazy ( Foo :: class . java ) Ġas ĠLazy < Foo > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Lazy Field Injection Of GenericType But Not Decl aring Lazy Of GenericType _ java () Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" raw types ") ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġjava Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Lazy ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject ĠLazy < Foo > Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠTest Field Injection () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo < T > Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġexpected Kt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" test / Test Field Injection __ Member Injector ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Any ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Suppress ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Unit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Lazy ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Member Injector ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Scope ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ClassName ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Red undant Visibility Modifier ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" UN CHECK ED _ CAST " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection __ Member Injector Ġ: ĠMember Injector < Test Field Injection > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġoverride Ġfun Ġinject ( target : ĠTest Field Injection , Ġscope : ĠScope ): ĠUnit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . foo Ġ= Ġscope . get Lazy ( Foo :: class . java ) Ġas ĠLazy < Foo < Any >> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Lazy Field Injection Of GenericType But Not Decl aring Lazy Of GenericType _ kt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġkt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Lazy ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġfoo : ĠLazy < Foo <* >> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo < T > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġexpected Kt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" test / Test Field Injection __ Member Injector ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Suppress ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Unit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Lazy ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Member Injector ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Scope ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ClassName ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Red undant Visibility Modifier ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" UN CHECK ED _ CAST " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection __ Member Injector Ġ: ĠMember Injector < Test Field Injection > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġoverride Ġfun Ġinject ( target : ĠTest Field Injection , Ġscope : ĠScope ): ĠUnit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . foo Ġ= Ġscope . get Lazy ( Foo :: class . java ) Ġas ĠLazy < Foo <* >> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Field Injection _ should Produce Member Injector _ when Class Has 2 Fields _ java () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġjava Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject ĠFoo Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject ĠFoo Ġfoo 2 ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠTest Field Injection () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( test Field Injection _ should Produce Member Injector _ when Class Has 2 Fields _ expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Field Injection _ should Produce Member Injector _ when Class Has 2 Fields _ kt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġkt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġfoo : ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġfoo 2 : ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( test Field Injection _ should Produce Member Injector _ when Class Has 2 Fields _ expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtest Field Injection _ should Produce Member Injector _ when Class Has 2 Fields _ expected Ġ= Ġexpected Kt Source ( ĊĠĠĠĠĠĠĠ Ġ" test / Test Field Injection __ Member Injector ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Suppress ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Unit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Member Injector ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Scope ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ClassName ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Red undant Visibility Modifier ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" UN CHECK ED _ CAST " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection __ Member Injector Ġ: ĠMember Injector < Test Field Injection > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġoverride Ġfun Ġinject ( target : ĠTest Field Injection , Ġscope : ĠScope ): ĠUnit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . foo Ġ= Ġscope . getInstance ( Foo :: class . java ) Ġas ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . foo 2 Ġ= Ġscope . getInstance ( Foo :: class . java ) Ġas ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Field Injection _ should Fail _ when Field Is Private _ java () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġjava Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġprivate ĠFoo Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠTest Field Injection () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fails To Compile () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Log Containing ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"@ Inject - annotated Ġproperty Ġtest . Test Field Injection . foo Ġmust Ġnot Ġbe Ġprivate ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Field Injection _ should Fail _ when Field Is Private _ kt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġkt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġprivate Ġval Ġfoo : ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fails To Compile () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Log Containing ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"@ Inject - annotated Ġproperty Ġtest . Test Field Injection . foo Ġmust Ġnot Ġbe Ġprivate ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Field Injection _ should Fail _ when Field Is Immutable _ java () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġjava Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġfinal ĠFoo Ġfoo Ġ= Ġnull ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠTest Field Injection () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fails To Compile () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Log Containing ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"@ Inject - annotated Ġproperty Ġtest . Test Field Injection . foo Ġmust Ġbe Ġmutable ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Field Injection _ should Fail _ when Field Is Immutable _ kt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġkt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġval Ġfoo : ĠFoo ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fails To Compile () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Log Containing ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"@ Inject - annotated Ġproperty Ġtest . Test Field Injection . foo Ġmust Ġbe Ġmutable ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Field Injection _ should Fail _ When Containing Class Is Private _ java () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġjava Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġstatic Ġclass ĠInner Class Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject ĠFoo Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠInner Class () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fails To Compile () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Log Containing ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Parent Ġclass Ġof Ġ@ Inject - annotated Ġclass Ġtest . Test Field Injection . Inner Class . foo Ġmust Ġnot Ġbe Ġprivate ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Field Injection _ should Fail _ When Containing Class Is Private _ kt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġkt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġclass ĠInner Class Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġfoo : ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fails To Compile () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Log Containing ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Parent Ġclass Ġof Ġ@ Inject - annotated Ġclass Ġtest . Test Field Injection . Inner Class . foo Ġmust Ġnot Ġbe Ġprivate ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Field Injection _ should Fail _ When Field Is Invalid Lazy _ java () Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" raw types ") ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġjava Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Lazy ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject ĠLazy Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠTest Field Injection () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fails To Compile () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Log Containing (" Type Ġof Ġtest . Test Field Injection . foo Ġis Ġnot Ġa Ġvalid Ġtoo th pick . Lazy .") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Field Injection _ should Fail _ When Field Is Invalid Lazy _ kt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġkt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Lazy ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġfoo : ĠLazy < *> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fails To Compile () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Log Containing (" Type Ġof Ġtest . Test Field Injection . foo Ġis Ġnot Ġa Ġvalid Ġtoo th pick . Lazy .") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Field Injection _ should Fail _ When Field Is Invalid Provider _ java () Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" raw types ") ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġjava Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Provider ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject ĠProvider Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠTest Field Injection () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fails To Compile () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Log Containing ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Type Ġof Ġtest . Test Field Injection . foo Ġis Ġnot Ġa Ġvalid Ġjavax . inject . Provider ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Field Injection _ should Fail _ When Field Is Invalid Provider _ kt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġkt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Provider ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġfoo : ĠProvider < *> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fails To Compile () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Log Containing ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Type Ġof Ġtest . Test Field Injection . foo Ġis Ġnot Ġa Ġvalid Ġjavax . inject . Provider ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Field Injection _ should Fail _ When Field Is Invalid Lazy Gener ics _ java () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġjava Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Lazy ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject ĠLazy < Foo < String >> Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠTest Field Injection () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo < T > Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fails To Compile () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Log Containing ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Type Ġof Ġtest . Test Field Injection . foo Ġis Ġnot Ġa Ġvalid ĠLazy / Provider . ĠLazy / Provider Ġcannot Ġbe Ġused Ġon Ġgeneric Ġtypes ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Field Injection _ should Fail _ When Field Is Invalid Lazy Gener ics _ kt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġkt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Lazy ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġfoo : ĠLazy < Foo < String >> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo < T > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fails To Compile () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Log Containing ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Type Ġof Ġtest . Test Field Injection . foo Ġis Ġnot Ġa Ġvalid ĠLazy / Provider . ĠLazy / Provider Ġcannot Ġbe Ġused Ġon Ġgeneric Ġtypes ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Field Injection _ should Fail _ When Field Is Invalid Provider Gener ics _ java () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġjava Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Provider ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject ĠProvider < Foo < String >> Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠTest Field Injection () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo < T > Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fails To Compile () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Log Containing ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Type Ġof Ġtest . Test Field Injection . foo Ġis Ġnot Ġa Ġvalid ĠLazy / Provider . ĠLazy / Provider Ġcannot Ġbe Ġused Ġon Ġgeneric Ġtypes ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Field Injection _ should Fail _ When Field Is Invalid Provider Gener ics _ kt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġkt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Provider ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġfoo : ĠProvider < Foo < String >> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo < T > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fails To Compile () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Log Containing ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Type Ġof Ġtest . Test Field Injection . foo Ġis Ġnot Ġa Ġvalid ĠLazy / Provider . ĠLazy / Provider Ġcannot Ġbe Ġused Ġon Ġgeneric Ġtypes ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Ignore (" https :// github . com / tsch uch ort dev / kotlin - compile - testing / issues / 1 0 5 ") ĊĠĠĠ Ġfun Ġtest Field Injection _ should Inject As An InstanceOf Super Class _ when Super Class Is Static Has Inject ed Members _ java () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġjava Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Member Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Member Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġstatic Ġclass ĠInner Super Class Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject ĠFoo Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠInner Super Class () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġstatic Ġclass ĠInner Class Ġextends ĠInner Super Class Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject ĠFoo Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠInner Class () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Field Injection _ should Inject As An InstanceOf Super Class _ when Super Class Is Static Has Inject ed Members _ expected ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Field Injection _ should Inject As An InstanceOf Super Class _ when Super Class Is Static Has Inject ed Members _ kt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġkt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Member Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Member Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠInner Super Class Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġfoo : ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠInner Class Ġ: ĠInner Super Class () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġfoo : ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Field Injection _ should Inject As An InstanceOf Super Class _ when Super Class Is Static Has Inject ed Members _ expected ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" Remove Red undant Back ticks ") ĊĠĠĠ Ġprivate Ġval Ġtest Field Injection _ should Inject As An InstanceOf Super Class _ when Super Class Is Static Has Inject ed Members _ expected Ġ= ĊĠĠĠĠĠĠĠ Ġexpected Kt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" test / Test Member Injection \$ Inner Class __ Member Injector ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Suppress ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Unit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Member Injector ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Scope ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ClassName ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Red undant Visibility Modifier ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" UN CHECK ED _ CAST " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass Ġ` Test Member Injection ${ '$ '} Inner Class __ Member Injector ` Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMember Injector < Test Member Injection . Inner Class > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġsuper Member Injector : ĠMember Injector < Test Member Injection . Inner Super Class > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ` Test Member Injection ${ '$ '} Inner Super Class __ Member Injector `() ĊĠĠĠĠĠĠĠĠĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġoverride Ġfun Ġinject ( target : ĠTest Member Injection . Inner Class , Ġscope : ĠScope ): ĠUnit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper Member Injector . inject ( target , Ġscope ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . foo Ġ= Ġscope . getInstance ( Foo :: class . java ) Ġas ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Member Injection _ should Inject As An InstanceOf Super Class _ when Super Class Has Inject ed Members _ java () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġjava Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Member Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Member Injection Ġextends ĠTest Member Injection Parent Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject ĠFoo Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Member Injection Parent Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject ĠFoo Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Member Injection _ should Inject As An InstanceOf Super Class _ when Super Class Has Inject ed Members _ expected ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Member Injection _ should Inject As An InstanceOf Super Class _ when Super Class Has Inject ed Members _ kt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġkt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Member Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Member Injection Ġ: ĠTest Member Injection Parent () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġfoo : ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Member Injection Parent Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġfoo : ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Member Injection _ should Inject As An InstanceOf Super Class _ when Super Class Has Inject ed Members _ expected ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtest Member Injection _ should Inject As An InstanceOf Super Class _ when Super Class Has Inject ed Members _ expected Ġ= ĊĠĠĠĠĠĠĠ Ġexpected Kt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" test / Test Member Injection __ Member Injector ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Suppress ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Unit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Member Injector ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Scope ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ClassName ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Red undant Visibility Modifier ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" UN CHECK ED _ CAST " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Member Injection __ Member Injector Ġ: ĠMember Injector < Test Member Injection > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġsuper Member Injector : ĠMember Injector < Test Member Injection Parent > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTest Member Injection Parent __ Member Injector () ĊĠĠĠĠĠĠĠĠĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġoverride Ġfun Ġinject ( target : ĠTest Member Injection , Ġscope : ĠScope ): ĠUnit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper Member Injector . inject ( target , Ġscope ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . foo Ġ= Ġscope . getInstance ( Foo :: class . java ) Ġas ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Member Injection _ should Inject As An InstanceOf Super Class _ when Super Class Has Inject ed Members And Type Argument _ java () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġjava Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Member Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Member Injection Ġextends ĠTest Member Injection Parent < Integer > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject ĠFoo Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Member Injection Parent < T > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject ĠFoo Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Member Injection _ should Inject As An InstanceOf Super Class _ when Super Class Has Inject ed Members And Type Argument _ expected ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Member Injection _ should Inject As An InstanceOf Super Class _ when Super Class Has Inject ed Members And Type Argument _ kt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġkt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Member Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Member Injection Ġ: ĠTest Member Injection Parent < Integer >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġfoo : ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠTest Member Injection Parent < T > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġfoo : ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. comp iles Without Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gener ates Sources ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Member Injection _ should Inject As An InstanceOf Super Class _ when Super Class Has Inject ed Members And Type Argument _ expected ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtest Member Injection _ should Inject As An InstanceOf Super Class _ when Super Class Has Inject ed Members And Type Argument _ expected Ġ= ĊĠĠĠĠĠĠĠ Ġexpected Kt Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" test / Test Member Injection __ Member Injector ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Suppress ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . Unit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Member Injector ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġtoo th pick . Scope ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ClassName ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Red undant Visibility Modifier ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" UN CHECK ED _ CAST " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Member Injection __ Member Injector Ġ: ĠMember Injector < Test Member Injection > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġsuper Member Injector : ĠMember Injector < Test Member Injection Parent <* >> Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTest Member Injection Parent __ Member Injector () ĊĠĠĠĠĠĠĠĠĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġoverride Ġfun Ġinject ( target : ĠTest Member Injection , Ġscope : ĠScope ): ĠUnit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper Member Injector . inject ( target , Ġscope ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . foo Ġ= Ġscope . getInstance ( Foo :: class . java ) Ġas ĠFoo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Ignore (" K SP Ġdoes Ġnot Ġsupport Ġchecking Ġif Ġtype Ġis Ġa ĠJava Ġprimitive ") ĊĠĠĠ Ġfun Ġtest Field Injection _ should Fail _ When Field Is Primitive _ java () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġjava Source ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Field Injection ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġjavax . inject . Inject ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠTest Field Injection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inject Ġint Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic ĠTest Field Injection () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcompilation Assert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. processed With ( Member Injector Processor Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fails To Compile () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Log Containing ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Field Ġtest . Test Field Injection . foo Ġis Ġof Ġtype Ġint Ġwhich Ġis Ġnot Ġsupported Ġby ĠT ooth pick ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ