package Ġorg . jetbrains . intellij . tasks Ċ Ċ import Ġorg . gradle . api . plugins . Java Plugin Ċ import Ġorg . gradle . test kit . runner . Task Outcome Ċ import Ġorg . jetbrains . intellij . Int elli J Plugin Spec Base Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertFalse Ċ import Ġkotlin . test . assertTrue Ċ Ċ class ĠIntelliJ Instrument Code Task Spec Ġ: ĠIntelliJ Plugin Spec Base () Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` instrument Ġcode Ġwith Ġnull ability Ġannotations `() Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild File . groovy (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġint ellij Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstrument Code Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĊĠĠĠĠĠĠĠ Ġwrite Java File () ĊĊĠĠĠĠĠĠĠ Ġdisable Debug (" Gradle Ġruns Ġant Ġwith Ġanother ĠJava , Ġthat Ġleads Ġto ĠNoSuch Method Error Ġduring Ġthe Ġinstrument ation ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġbuild (" build Source Set ", Ġ"-- info ") ĊĠĠĠĠĠĠĠ ĠassertTrue ( result . output . contains (" Added Ġ@ NotNull Ġassertions Ġto Ġ 1 Ġfiles ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` instrument Ġtests Ġwith Ġnull ability Ġannotations `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwrite Test File () ĊĊĠĠĠĠĠĠĠ Ġbuild File . groovy (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġint ellij Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstrument Code Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĠĠĠĠĠĠĠ Ġdisable Debug (" Gradle Ġruns Ġant Ġwith Ġanother ĠJava , Ġthat Ġleads Ġto ĠNoSuch Method Error Ġduring Ġthe Ġinstrument ation ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġbuild (" build Test Source Set ", Ġ"-- info ") ĊĠĠĠĠĠĠĠ ĠassertTrue ( result . output . contains (" Added Ġ@ NotNull Ġassertions Ġto Ġ 1 Ġfiles ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` do Ġnot Ġinstrument Ġcode Ġif Ġoption Ġis Ġset Ġto Ġfalse `() Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild File . groovy (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġint ellij Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstrument Code Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĊĠĠĠĠĠĠĠ Ġwrite Java File () ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġbuild (" build Source Set ", Ġ"-- info ") ĊĠĠĠĠĠĠĠ ĠassertFalse ( result . output . contains (" Added Ġ@ NotNull ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` do Ġnot Ġinstrument Ġcode Ġon Ġempty Ġsource Ġsets `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġbuild (" build Source Set ", Ġ"-- info ") ĊĠĠĠĠĠĠĠ ĠassertFalse ( result . output . contains (" Comp iling Ġforms Ġand Ġinstrument ing Ġcode ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` instrument Ġkotlin Ġforms `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwrite Kotlin UI File () ĊĊĠĠĠĠĠĠĠ Ġbuild File . groovy (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġint ellij Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstrument Code Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĊĠĠĠĠĠĠĠ Ġfile (" src / main / kotlin / pack / App Kt . form "). xml (""" <? xml Ġversion =" 1 . 0 " Ġencoding =" UTF - 8 "?> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< form Ġxmlns =" http :// www . intellij . com / u ide signer / form /" Ġversion =" 1 " Ġbind - to - class =" pack . App Kt "> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< grid Ġid =" 2 7 dc 6 " Ġbinding =" panel " Ġlayout - manager =" Grid LayoutManager " Ġrow - count =" 1 " Ġcolumn - count =" 1 " Ġsame - size - h orizontally =" false " Ġsame - size - vert ically =" false " Ġh gap ="- 1 " Ġv gap ="- 1 "> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< margin Ġtop =" 0 " Ġleft =" 0 " Ġbottom =" 0 " Ġright =" 0 "/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< constraints > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< xy Ġx =" 2 0 " Ġy =" 2 0 " Ġwidth =" 5 0 0 " Ġheight =" 4 0 0 "/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ constraints > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< properties /> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< border Ġtype =" none "/> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< children /> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ</ grid > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ</ form > ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĊĠĠĠĠĠĠĠ Ġdisable Debug (" Gradle Ġruns Ġant Ġwith Ġanother ĠJava , Ġthat Ġleads Ġto ĠNoSuch Method Error Ġduring Ġthe Ġinstrument ation ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġbuild (" build Source Set ", Ġ"-- info ") ĊĠĠĠĠĠĠĠ Ġresult . output . contains (" Comp iling Ġforms Ġand Ġinstrument ing Ġcode ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` instrumentation Ġdoes Ġnot Ġinvalidate Ġcompile Ġtasks `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwrite Java File () ĊĠĠĠĠĠĠĠ Ġdisable Debug (" Gradle Ġruns Ġant Ġwith Ġanother ĠJava , Ġthat Ġleads Ġto ĠNoSuch Method Error Ġduring Ġthe Ġinstrument ation ") ĊĊĠĠĠĠĠĠĠ Ġbuild (" build Source Set ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġbuild (" build Source Set ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( Task Outcome . UP _ TO _ DATE , Ġresult . task (": ${ Java Plugin . CLASSES _ TASK _ NAME }") ?. outcome ) ĊĠĠĠ Ġ} Ċ } Ċ