package Ġcom . av ito . android . build _ checks Ċ Ċ import Ġcom . av ito . android . build _ checks . Build Checks Test Project Runner . Android Home Location Ċ import Ġcom . av ito . android . build _ checks . Build Checks Test Project Runner . Android Home Location . Custom Ċ import Ġcom . av ito . test . gradle . TestResult Ċ import Ġcom . av ito . test . gradle . dir Ċ import Ġcom . av ito . test . gradle . file Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . io . TempDir Ċ import Ġjava . io . File Ċ import Ġjava . nio . file . Path Ċ Ċ internal Ġclass ĠCheck Android Sdk Version Test Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġandroid Home : ĠFile ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġproject Dir : ĠFile ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun Ġsetup (@ TempDir Ġtemp Dir : ĠPath ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtmp Dir Ġ= Ġtemp Dir . to File () ĊĠĠĠĠĠĠĠ Ġandroid Home Ġ= ĠFile ( tmp Dir , Ġ" android - sdk "). apply Ġ{ Ġmkdir s () Ġ} ĊĠĠĠĠĠĠĠ Ġproject Dir Ġ= ĠFile ( tmp Dir , Ġ" project "). apply Ġ{ Ġmkdir s () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` fail Ġ- Ġno Ġandroid Ġsdk Ġspecified `() Ġ{ ĊĠĠĠĠĠĠĠ Ġandroid Home ?. delete () ĊĠĠĠĠĠĠĠ Ġandroid Home Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrun Check ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid Home Location Ġ= ĠAndroid Home Location . Absent , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextension Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Sdk Version Ġ= Ġ 2 9 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrevision Ġ= Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Failure Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġresult . assertThat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build Failed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. output Contains (" Can 't Ġfind ĠAND ROID _ HOME ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` fail Ġ- Ġno Ġandroid Ġsdk Ġin Ġspecified Ġpath `() Ġ{ ĊĠĠĠĠĠĠĠ Ġandroid Home ?. delete () ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrun Check ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextension Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Sdk Version Ġ= Ġ 2 9 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrevision Ġ= Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Failure Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġresult . assertThat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build Failed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. output Contains (" ANDROID _ HOME Ġis Ġnot Ġfound ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` fail Ġ- Ġnot Ġspecified Ġversions `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrun Check ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextension Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġno Ġversions ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Failure Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġresult . assertThat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build Failed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. output Contains (" build Checks . android Sdk . compile Sdk Version Ġmust Ġbe Ġset ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` fail Ġ- Ġno ĠSDK Ġplatform Ġwith Ġspecified Ġversion `() Ġ{ ĊĠĠĠĠĠĠĠ Ġgiven Android Sdk Platform ( version Ġ= Ġ 2 8 , Ġrevision Ġ= Ġ 1 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrun Check ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextension Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Sdk Version Ġ= Ġ 2 9 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrevision Ġ= Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Failure Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġresult . assertThat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build Failed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. output Contains (" Android ĠSDK Ġplatform Ġ 2 9 Ġis Ġnot Ġfound ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` fail Ġ- Ġan Ġold Ġplatform Ġrevision `() Ġ{ ĊĠĠĠĠĠĠĠ Ġgiven Android Sdk Platform ( version Ġ= Ġ 2 9 , Ġrevision Ġ= Ġ 4 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrun Check ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextension Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Sdk Version Ġ= Ġ 2 9 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrevision Ġ= Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Failure Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġresult . assertThat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build Failed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. output Contains ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" You Ġhave Ġan Ġold ĠAndroid ĠSDK ĠPlatform Ġversion .\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" API Ġlevel : Ġ 2 9 , Ġ\ n ( actual Ġrevision Ġ 4 , Ġexpected Ġrevision : Ġ 5 )" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` success Ġ- Ġthe Ġsame Ġplatform Ġrevision `() Ġ{ ĊĠĠĠĠĠĠĠ Ġgiven Android Sdk Platform ( version Ġ= Ġ 2 9 , Ġrevision Ġ= Ġ 5 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrun Check ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextension Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Sdk Version Ġ= Ġ 2 9 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrevision Ġ= Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġresult . assertThat (). build Successful () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` warning Ġ- Ġa Ġnewer Ġplatform Ġrevision `() Ġ{ ĊĠĠĠĠĠĠĠ Ġgiven Android Sdk Platform ( version Ġ= Ġ 2 9 , Ġrevision Ġ= Ġ 6 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrun Check ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextension Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Sdk Version Ġ= Ġ 2 9 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrevision Ġ= Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġresult . assertThat (). build Successful () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. output Contains ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" You Ġhave Ġa Ġnewer ĠAndroid ĠSDK ĠPlatform Ġversion .\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" API Ġlevel : Ġ 2 9 , Ġ\ n ( actual Ġrevision Ġ 6 , Ġexpected Ġrevision : Ġ 5 )" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrun Check ( ĊĠĠĠĠĠĠĠ Ġandroid Home Location : ĠAndroid Home Location Ġ= ĠCustom ( require NotNull ( android Home )), ĊĠĠĠĠĠĠĠ Ġextension : ĠString , ĊĠĠĠĠĠĠĠ Ġexpect Failure : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġ): ĠTest Result Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠBuild Checks Test Project Runner ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject Dir Ġ= Ġproject Dir , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid Home Ġ= Ġandroid Home Location , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Checks Extension Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenable ByDefault Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid Sdk Ġ{ ĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ$ extension ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ). run Checks ( expect Failure ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġgiven Android Sdk Platform ( version : ĠInt , Ġrevision : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire NotNull ( android Home ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. dir (" platforms ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. dir (" android -$ version ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. file (" source . properties ", Ġ""" Pkg . Revision =$ revision """. trim Indent ()) ĊĠĠĠ Ġ} Ċ } Ċ