/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 8 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . android . build . gradle . internal . ide Ċ Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġorg . gradle . api . Invalid UserData Exception Ċ import Ġorg . junit . Test Ċ import Ġkotlin . test . assert Fails With Ċ Ċ class ĠStudio Versions Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġold Version Ġ= ĠMajor Minor Version ( 1 , Ġ 1 ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Not Inject ed () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠCheck Ġis Ġlen ient Ġwhen Ġno Ġstudio Ġversion Ġis Ġinjected . ĊĠĠĠĠĠĠĠ Ġverify Studio IsNot Old ( null , Ġold Version ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Invalid Versions Inject ed () Ġ{ ĊĠĠĠĠĠĠĠ Ġassert Fails With < Invalid UserData Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Studio IsNot Old ("", Ġold Version ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest New er Studio () Ġ{ ĊĠĠĠĠĠĠĠ Ġverify Studio IsNot Old (" 3 . 3 . 1 . 6 ", ĠMajor Minor Version ( 3 , Ġ 2 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Matching Version () Ġ{ ĊĠĠĠĠĠĠĠ Ġverify Studio IsNot Old (" 3 . 2 . 1 . 6 ", ĠMajor Minor Version ( 3 , Ġ 2 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Too Old Studio Version () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġassert Fails With < RuntimeException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify Studio IsNot Old (" 3 . 1 . 3 . 6 ", ĠMajor Minor Version ( 3 , Ġ 2 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( exception ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. has Message That () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains (" please Ġretry Ġwith ĠAndroid ĠStudio Ġ 3 . 2 Ġor Ġnewer .") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcheck Major Minor Version Ordering () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġversions In Order Ġ= ĠlistOf < Major Minor Version >( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMajor Minor Version ( 1 , Ġ 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMajor Minor Version ( 1 , Ġ 3 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMajor Minor Version ( 2 , Ġ 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMajor Minor Version ( 2 , Ġ 3 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( version Ġin Ġversions In Order ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( version ). is Equivalent Acc ording To CompareTo ( version ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( versions In Order . as Re versed (). sorted ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( versions In Order ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcheck Valid Version Parsing () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( parse Version (" 3 . 3 . 0 . 6 ")). isEqualTo ( Major Minor Version ( 3 , Ġ 3 )) ĊĠĠĠĠĠĠĠ ĠassertThat ( parse Version (" 3 . 3 . 0 - beta 1 ")). isEqualTo ( Major Minor Version ( 3 , Ġ 3 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcheck Invalid Version Parsing () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( parse Version (" ")). isNull () ĊĠĠĠĠĠĠĠ ĠassertThat ( parse Version (" 1 ")). isNull () ĊĠĠĠĠĠĠĠ ĠassertThat ( parse Version (" A ")). isNull () ĊĠĠĠĠĠĠĠ ĠassertThat ( parse Version ("- 1 ")). isNull () ĊĠĠĠĠĠĠĠ ĠassertThat ( parse Version (" A . 2 ")). isNull () ĊĠĠĠĠĠĠĠ ĠassertThat ( parse Version ("- 1 . 2 ")). isNull () ĊĠĠĠĠĠĠĠ ĠassertThat ( parse Version (" 1 . B ")). isNull () ĊĠĠĠĠĠĠĠ ĠassertThat ( parse Version (" 1 .- 2 ")). isNull () ĊĠĠĠ Ġ} Ċ }