/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 Ġ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 . tools . idea . templates Ċ Ċ import Ġcom . android . ide . common . repository . Gradle Coordinate Ċ import Ġcom . android . tools . idea . gradle . repositories . Repository Url Manager Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġorg . junit . Test Ċ import Ġorg . mockito . Mockito Ċ import Ġorg . mockito . Mockito .` when ` Ċ import Ġjava . security . Invalid Parameter Exception Ċ import Ġkotlin . reflect . K Class Ċ import Ġkotlin . test . assert Fails With Ċ Ċ class ĠResolve Dependency Test Ġ{ ĊĠ Ġ@ Test ĊĠ Ġfun Ġresolve Invalid Dependency () Ġ{ ĊĠĠĠ Ġassert Fails With ( Invalid Parameter Exception :: class ) Ġ{ ĊĠĠĠĠĠ Ġdo Test (" bl a ", Ġ" 1 . 0 . 0 ", Ġ" com . android : lib : 1 . 0 . 1 ", Ġ" bl a ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġassert Fails With ( Invalid Parameter Exception :: class ) Ġ{ ĊĠĠĠĠĠ Ġdo Test (" bl a ", Ġ" 1 . 0 . 0 ", Ġ" not _ found ", Ġ" bl a ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġassert Fails With ( Invalid Parameter Exception :: class ) Ġ{ ĊĠĠĠĠĠ Ġdo Test (" bl a ", Ġ" bl a 2 ", Ġ" not _ found ", Ġ" bl a ") ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġuse Max Revision () Ġ{ ĊĠĠĠ Ġdo Test (" com . android : lib :+ ", Ġ" 1 . 0 . 0 ", Ġ" com . android : lib : 1 . 0 . 1 ", Ġ" com . android : lib : 1 . 0 . 1 ") ĊĠĠĠ Ġdo Test (" com . android : lib :+ ", Ġ" 1 . 0 . 2 ", Ġ" com . android : lib : 2 . 0 . 0 ", Ġ" com . android : lib : 2 . 0 . 0 ") ĊĠĠĠ Ġdo Test (" com . android : lib :+ ", Ġ" 1 . 0 . 2 ", Ġ" com . android : lib : 1 . 0 . 1 ", Ġ" com . android : lib : 1 . 0 . 2 ") ĊĠĠĠ Ġdo Test (" com . android : lib :+ ", Ġ" 1 . 1 . +", Ġ" com . android : lib : 1 . 0 . 1 ", Ġ" com . android : lib : 1 . 1 .+ ") ĊĠĠĠ Ġdo Test (" com . android : lib :+ ", Ġ" 1 . 1 . +", Ġ" com . android : lib : 1 . 1 . 1 ", Ġ" com . android : lib : 1 . 1 . 1 ") ĊĠĠĠ Ġdo Test (" com . android : lib : 1 . 0 . +", Ġ" 1 . 0 . 2 ", Ġ" com . android : lib : 1 . 0 . 1 ", Ġ" com . android : lib : 1 . 0 . 2 ") ĊĠĠĠ Ġdo Test (" com . android : lib : 1 . 0 . +", Ġnull , Ġ" com . android : lib : 1 . 0 . 1 ", Ġ" com . android : lib : 1 . 0 . 1 ") ĊĠĠĠ Ġdo Test (" com . android : lib : 1 . 0 . 2 ", Ġ" 1 . 0 . 0 ", Ġ" not found ", Ġ" com . android : lib : 1 . 0 . 0 ") Ġ// ĠNot Ġfound , Ġreturn Ġdefault ĊĠ Ġ} ĊĊĠ Ġ// ĠFrom Ġmock ito - kotlin ĊĠ Ġinline Ġfun Ġ< re ified ĠT Ġ: ĠAny > Ġcreate Instance (): ĠT Ġ= Ġcreate Instance ( T :: class ) ĊĠ Ġfun Ġ< T Ġ: ĠAny > Ġcreate Instance ( k Class : ĠK Class < T >): ĠT Ġ= Ġcast Null () ĊĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠ Ġprivate Ġfun Ġ< T > Ġcast Null (): ĠT Ġ= Ġnull Ġas ĠT ĊĠ Ġprivate Ġinline Ġfun Ġ< re ified ĠT Ġ: ĠAny > Ġany OrNull (): ĠT Ġ= ĠMockito . any < T >() Ġ?: Ġcreate Instance () ĊĊĠ Ġprivate Ġfun Ġdo Test ( dependency : ĠString , Ġmin Revision : ĠString ?, Ġresolved : ĠString , Ġexpect Result : ĠString ) Ġ{ ĊĠĠĠ Ġval Ġmock Repo Ġ= ĠMockito . mock ( Repository Url Manager :: class . java ) ĊĠĠĠ Ġ` when `( mock Repo . resolve Dynamic Coordinate ( any OrNull (), Ġany OrNull (), Ġany OrNull ())) ĊĠĠĠĠĠ Ġ. thenReturn ( Gradle Coordinate . parse Coordinate String ( resolved )) ĊĊĠĠĠ ĠassertThat ( resolve Dependency ( mock Repo , Ġdependency , Ġmin Revision )). isEqualTo ( expect Result ) ĊĠ Ġ} Ċ }