/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 6 Ġ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 . lint . checks . infrastructure Ċ Ċ import Ġcom . android . tools . lint . Lint Cli Flags Ċ import Ġcom . android . tools . lint . model . Lint Model Android Library Ċ import Ġcom . android . tools . lint . model . Lint Model Java Library Ċ import Ġcom . android . tools . lint . model . Lint Model Module Type Ċ import Ġcom . android . tools . lint . model . Lint Model Variant Ċ import Ġcom . android . utils . I Logger Ċ import Ġcom . google . common . truth . Truth Ċ import Ġorg . intellij . lang . annotations . Language Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Ignore Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . rules . Temporary Folder Ċ import Ġjava . io . File Ċ import Ġjava . io . IOException Ċ import Ġjava . util . concurrent . atomic . Atomic Boolean Ċ Ċ class ĠGradle Model M ocker Test Ġ{ ĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġvar Ġtemp Folder Ġ= ĠTemporary Folder () ĊĠĠĠ Ġprivate Ġfun Ġcreate M ocker (@ Language (" Gro ovy ") Ġgradle : ĠString ): ĠGradle Model M ocker Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcreate M ocker ( gradle , Ġtemp Folder ) !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Libraries () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmocker Ġ= Ġcreate M ocker ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" Ċ apply Ġplugin : Ġ' com . android . application ' Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġcompile Ġ' my . group . id : my lib : 2 5 . 0 . 0 - SNAPSHOT ' Ċ } """ ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmodule Ġ= Ġmocker . get Lint Module () ĊĠĠĠĠĠĠĠ Ġval Ġvariant Ġ= Ġmocker . get Lint Variant () !! ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . type ). isEqualTo ( Lint Model Module Type . APP ) ĊĠĠĠĠĠĠĠ Ġval Ġlibraries Ġ= Ġvariant . main Artifact . dependencies . compile Dependencies . roots ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( libraries ). has Size ( 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġlibrary Ġ= Ġlibraries . first () ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( library . artifact Address ). isEqualTo (" my . group . id : my lib : 2 5 . 0 . 0 - SNAPSHOT ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Libraries In Extra Artifacts () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmocker Ġ= Ġcreate M ocker ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" Ċ apply Ġplugin : Ġ' com . android . application ' Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġtest Compile Ġ' my . group . id : my lib 1 : 1 . 2 . 3 - rc 4 ' ĊĠĠĠ Ġandroid Test Implementation Ġ' my . group . id : my lib 2 : 4 . 5 . 6 - SNAPSHOT ' Ċ } """ ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmodule Ġ= Ġmocker . get Lint Module () ĊĠĠĠĠĠĠĠ Ġval Ġvariant Ġ= Ġmocker . get Lint Variant () !! ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . type ). isEqualTo ( Lint Model Module Type . APP ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest Libraries Ġ= Ġvariant . test Artifact !!. dependencies . compile Dependencies . roots ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( test Libraries ). has Size ( 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġtest Library Ġ= Ġtest Libraries . first () ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( test Library . artifact Address ). isEqualTo (" my . group . id : my lib 1 : 1 . 2 . 3 - rc 4 ") ĊĊĠĠĠĠĠĠĠ Ġval Ġandroid Test Libraries Ġ= Ġvariant . android Test Artifact !!. dependencies . compile Dependencies . roots ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( android Test Libraries ). has Size ( 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġlibrary Ġ= Ġandroid Test Libraries . first () ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( library . artifact Address ). isEqualTo (" my . group . id : my lib 2 : 4 . 5 . 6 - SNAPSHOT ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Kotlin () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmocker Ġ= Ġcreate M ocker ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" Ċ apply Ġplugin : Ġ' kotlin - android ' Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġimplementation Ġ" org . jetbrains . kotlin : kotlin - stdlib - jdk 7 :${ "$ "} kotlin _ version " Ċ } """ ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmodule Ġ= Ġmocker . get Lint Module () ĊĠĠĠĠĠĠĠ Ġval Ġvariant Ġ= Ġmocker . get Lint Variant () !! ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . type ). isEqualTo ( Lint Model Module Type . APP ) ĊĊĠĠĠĠĠĠĠ Ġval Ġjava Libraries Ġ= Ġvariant . main Artifact . dependencies . compile Dependencies ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getAll Libraries () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Is Instance < Lint Model Java Library >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . artifact Address Ġ} ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( java Libraries ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains At Least ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . jetbrains . kotlin : kotlin - stdlib - jdk 7 :\ $ kotlin _ version ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . jetbrains . kotlin : kotlin - stdlib :\ $ kotlin _ version ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . jetbrains . kotlin : kotlin - stdlib - common :\ $ kotlin _ version " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Kotlin With Interpolation () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmocker Ġ= Ġcreate M ocker ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" Ċ apply Ġplugin : Ġ' kotlin - android ' Ċ Ċ ext Ġ{ ĊĠĠĠ Ġkotlin _ version Ġ= Ġ" 1 . 3 . 2 1 " Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġimplementation Ġ" org . jetbrains . kotlin : kotlin - stdlib - jdk 7 :${ "$ "} kotlin _ version " Ċ } """ ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmodule Ġ= Ġmocker . get Lint Module () ĊĠĠĠĠĠĠĠ Ġval Ġvariant Ġ= Ġmocker . get Lint Variant () !! ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . type ). isEqualTo ( Lint Model Module Type . APP ) ĊĊĠĠĠĠĠĠĠ Ġval Ġlibraries Ġ= Ġvariant . main Artifact . dependencies . compile Dependencies ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getAll Libraries () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Is Instance < Lint Model Java Library >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . artifact Address Ġ} ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( libraries ). has Size ( 4 ) ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( libraries ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . jetbrains . kotlin : kotlin - stdlib - common : 1 . 3 . 2 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . jetbrains . kotlin : kotlin - stdlib - jdk 7 : 1 . 3 . 2 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . jetbrains . kotlin : kotlin - stdlib : 1 . 3 . 2 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . jetbrains : annotations : 1 3 . 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Min Sdk Version () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmocker Ġ= Ġcreate M ocker ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" android Ġ{ ĊĠĠĠ Ġcompile Sdk Version Ġ 2 5 ĊĠĠĠ Ġbuild Tools Version Ġ" 2 5 . 0 . 0 " ĊĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠ Ġapplication Id Ġ" com . android . tools . test " ĊĠĠĠĠĠĠĠ Ġmin Sdk Version Ġ 5 ĊĠĠĠĠĠĠĠ Ġtarget Sdk Version Ġ 1 6 ĊĠĠĠĠĠĠĠ Ġversion Code Ġ 2 ĊĠĠĠĠĠĠĠ Ġversion Name Ġ" My Name " ĊĠĠĠ Ġ} Ċ } """ ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmodule Ġ= Ġmocker . get Lint Module () ĊĠĠĠĠĠĠĠ Ġval Ġvariant Ġ= Ġmocker . get Lint Variant () !! ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . type ). isEqualTo ( Lint Model Module Type . APP ) ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . compile Target ). isEqualTo (" android - 2 5 ") Ċ // ĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . build Tools Version ). isEqualTo (" 2 5 . 0 . 0 ") ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( variant . min Sdk Version ). isNotNull () ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( variant . min Sdk Version !!. api Level ). isEqualTo ( 5 ) ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( variant . target Sdk Version !!. api Level ). isEqualTo ( 1 6 ) Ċ // ĠĠĠĠĠĠĠ ĠTr uth . assertThat ( variant . version Code ). isEqualTo ( 2 ) Ċ // ĠĠĠĠĠĠĠ ĠTr uth . assertThat ( variant . version Name ). isEqualTo (" My Name ") ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( variant . main Artifact . application Id ). isEqualTo (" com . android . tools . test ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Fl avors () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmocker Ġ= Ġcreate M ocker ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" Ċ apply Ġplugin : Ġ' com . android . application ' Ċ Ċ android Ġ{ ĊĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠ Ġres Configs Ġ" md pi " ĊĠĠĠ Ġ} ĊĠĠĠ Ġflavor Dimensions Ġ Ġ" pricing ", Ġ" release Type " ĊĠĠĠ Ġproduct Fl avors Ġ{ ĊĠĠĠĠĠĠĠ Ġbeta Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdimension Ġ" release Type " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres Config Ġ" en " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres Configs Ġ" nod pi ", Ġ" hdpi " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion Name Suffix Ġ"- beta " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Id Suffix Ġ'. beta ' ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnormal Ġ{ Ġdimension Ġ" release Type " Ġ} ĊĠĠĠĠĠĠĠ Ġfree Ġ{ Ġdimension Ġ" pricing " Ġ} ĊĠĠĠĠĠĠĠ Ġpaid Ġ{ Ġdimension Ġ" pricing " Ġ} ĊĠĠĠ Ġ} Ċ } """ ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmodule Ġ= Ġmocker . get Lint Module () ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . type ). isEqualTo ( Lint Model Module Type . APP ) ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . variants . map Ġ{ Ġit . name Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" free Beta Debug ", Ġ" paid Beta Debug ", Ġ" free Normal Debug ", Ġ" paid Normal Debug ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" free Beta Release ", Ġ" paid Beta Release ", Ġ" free Normal Release ", Ġ" paid Normal Release " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . find Variant (" free Beta Debug ") !!. debug gable ). isTrue () ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . find Variant (" free Beta Release ") !!. debug gable ). isFalse () ĊĊĠĠĠĠĠĠĠ Ġ// ĠRes Configs ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . find Variant (" free Normal Debug ") !!. resource Configurations ). contains Exactly (" md pi ") ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . find Variant (" paid Normal Release ") !!. resource Configurations ). contains Exactly (" md pi ") ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . find Variant (" free Beta Debug ") !!. resource Configurations ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly (" md pi ", Ġ" en ", Ġ" nod pi ", Ġ" hdpi ") ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . find Variant (" paid Beta Release ") !!. resource Configurations ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly (" md pi ", Ġ" en ", Ġ" nod pi ", Ġ" hdpi ") ĊĊĠĠĠĠĠĠĠ Ġ// ĠS uffix Ġhandling ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . find Variant (" free Beta Debug ") !!. main Artifact . application Id ). isEqualTo (" test . pkg ") ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . find Variant (" paid Beta Release ") !! .` package `). isNull () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Source Sets () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmocker Ġ= Ġcreate M ocker ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" android Ġ{ ĊĠĠĠ Ġcompile Sdk Version Ġ 2 5 ĊĠĠĠ Ġbuild Tools Version Ġ" 2 5 . 0 . 0 " ĊĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠ Ġapplication Id Ġ" com . android . tools . test " ĊĠĠĠĠĠĠĠ Ġmin Sdk Version Ġ 5 ĊĠĠĠĠĠĠĠ Ġtarget Sdk Version Ġ 1 6 ĊĠĠĠĠĠĠĠ Ġversion Code Ġ 2 ĊĠĠĠĠĠĠĠ Ġversion Name Ġ" My Name " ĊĠĠĠ Ġ} Ċ } """ ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmodule Ġ= Ġmocker . get Lint Module () ĊĠĠĠĠĠĠĠ Ġval Ġvariant Ġ= Ġmocker . get Lint Variant () !! ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . type ). isEqualTo ( Lint Model Module Type . APP ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmain Source Provider Ġ= Ġvariant . source Providers . first () ĊĠĠĠĠĠĠĠ Ġval Ġmanifest File Ġ= Ġmain Source Provider . manifest File ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( manifest File . path ). endsWith (" Android Manifest . xml ") ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( manifest File . path . replace ( File . separator Char , Ġ'/ ')) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. endsWith (" src / main / Android Manifest . xml ") ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( main Source Provider . java Directories ). isNotEmpty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Provided Scopes () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmocker Ġ= Ġcreate M ocker ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" Ċ apply Ġplugin : Ġ' android - library ' Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġprovided Ġ" com . google . android . we arable : we arable : 2 . 0 . 0 - alpha 4 " Ċ } Ċ """ ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmodule Ġ= Ġmocker . get Lint Module () ĊĠĠĠĠĠĠĠ Ġval Ġvariant Ġ= Ġmocker . get Lint Variant () !! ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . type ). isEqualTo ( Lint Model Module Type . LIBRARY ) ĊĊĠĠĠĠĠĠĠ Ġval Ġlibraries Ġ= Ġvariant . main Artifact . dependencies . compile Dependencies . roots . map Ġ{ Ġit . artifact Address Ġ}. toSet () Ġ- ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvariant . main Artifact . dependencies . package Dependencies . roots . map Ġ{ Ġit . artifact Address Ġ}. toSet () ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( libraries ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly (" com . google . android . we arable : we arable : 2 . 0 . 0 - alpha 4 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Dependency Property Form () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmocker Ġ= Ġcreate M ocker ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" Ċ apply Ġplugin : Ġ' android ' Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġimplementation Ġgroup : Ġ' com . android . support ', ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname : Ġ" support - v 4 ", Ġversion : Ġ' 1 9 . 0 ' Ċ } Ċ """ ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmodule Ġ= Ġmocker . get Lint Module () ĊĠĠĠĠĠĠĠ Ġval Ġvariant Ġ= Ġmocker . get Lint Variant () !! ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . type ). isEqualTo ( Lint Model Module Type . APP ) ĊĊĠĠĠĠĠĠĠ Ġval Ġlibraries Ġ= Ġvariant . main Artifact . dependencies . compile Dependencies ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getAll Libraries () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Is Instance < Lint Model Java Library >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . artifact Address Ġ} ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( libraries ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . android . support : support - v 4 : 1 9 . 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . android . support : support - annotations : 1 9 . 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Model Version () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmocker Ġ= Ġcreate M ocker ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" build script Ġ{ ĊĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠ Ġj center () ĊĠĠĠ Ġ} ĊĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠ Ġclasspath Ġ' com . android . tools . build : gradle : 1 . 5 . 1 ' ĊĊĠĠĠĠĠĠĠ Ġ// ĠNOTE : ĠDo Ġnot Ġplace Ġyour Ġapplication Ġdependencies Ġhere ; Ġthey Ġbelong ĊĠĠĠĠĠĠĠ Ġ// Ġin Ġthe Ġindividual Ġmodule Ġbuild . gradle Ġfiles ĊĠĠĠ Ġ} Ċ } """ ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmodule Ġ= Ġmocker . get Lint Module () ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . gradle Version . toString ()). isEqualTo (" 1 . 5 . 1 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Vectors () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmocker Ġ= Ġcreate M ocker ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" android . default Config . vector Draw ables Ġ{ ĊĠĠĠ Ġuse Support Library Ġ= Ġtrue Ċ } """ ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġvariant Ġ= Ġmocker . get Lint Variant () !! ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( variant . use Support Library Vector Draw ables ). isTrue () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Res Values () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmocker Ġ= Ġcreate M ocker ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" android Ġ{ ĊĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠ Ġres Value Ġ" string ", Ġ" default Config Name ", Ġ" Some ĠDefault Config ĠData " ĊĠĠĠ Ġ} ĊĠĠĠ Ġbuild Types Ġ{ ĊĠĠĠĠĠĠĠ Ġdebug Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres Value Ġ" string ", Ġ" debug Name ", Ġ" Some ĠDebug ĠData " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrelease Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres Value Ġ" string ", Ġ" release Name 1 ", Ġ" Some ĠRelease ĠData Ġ 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres Value Ġ" string ", Ġ" release Name 2 ", Ġ" Some ĠRelease ĠData Ġ 2 " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġproduct Fl avors Ġ{ ĊĠĠĠĠĠĠĠĠ Ġflavor 1 Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Value Ġ" string ", Ġ" VALUE _ DEBUG ", ĠĠ Ġ" 1 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Value Ġ" string ", Ġ" VALUE _ FL AV OR ", Ġ Ġ" 1 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Value Ġ" string ", Ġ" VALUE _ VARIANT ", Ġ" 1 0 " ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġflavor 2 Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Value Ġ" string ", Ġ" VALUE _ DEBUG ", ĠĠ Ġ" 2 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Value Ġ" string ", Ġ" VALUE _ FL AV OR ", Ġ Ġ" 2 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Value Ġ" string ", Ġ" VALUE _ VARIANT ", Ġ" 2 0 " ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ} Ċ } """ ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmodule Ġ= Ġmocker . get Lint Module () ĊĊĠĠĠĠĠĠĠ Ġfun ĠL int Model Variant . test Value () Ġ= Ġthis . res Values . values . join ToString ("\ n ") Ġ{ Ġ"${ it . name }/${ it . type }/${ it . value }" Ġ} ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . find Variant (" flavor 1 Debug ") !!. test Value ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġdefault Config Name / string / Some ĠDefault Config ĠData ĊĠĠĠ ĠVALUE _ DEBUG / string / 1 0 ĊĠĠĠ ĠVALUE _ FL AV OR / string / 1 0 ĊĠĠĠ ĠVALUE _ VARIANT / string / 1 0 ĊĠĠĠ Ġdebug Name / string / Some ĠDebug ĠData ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . find Variant (" flavor 2 Release ") !!. test Value ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġdefault Config Name / string / Some ĠDefault Config ĠData ĊĠĠĠ ĠVALUE _ DEBUG / string / 2 0 ĊĠĠĠ ĠVALUE _ FL AV OR / string / 2 0 ĊĠĠĠ ĠVALUE _ VARIANT / string / 2 0 ĊĠĠĠ Ġrelease Name 1 / string / Some ĠRelease ĠData Ġ 1 ĊĠĠĠ Ġrelease Name 2 / string / Some ĠRelease ĠData Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Set Variant Name () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmocker Ġ= Ġcreate M ocker ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" android Ġ{ ĊĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠ Ġres Value Ġ" string ", Ġ" default Config Name ", Ġ" Some ĠDefault Config ĠData " ĊĠĠĠ Ġ} ĊĠĠĠ Ġbuild Types Ġ{ ĊĠĠĠĠĠĠĠ Ġdebug Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres Value Ġ" string ", Ġ" debug Name ", Ġ" Some ĠDebug ĠData " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrelease Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres Value Ġ" string ", Ġ" release Name 1 ", Ġ" Some ĠRelease ĠData Ġ 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres Value Ġ" string ", Ġ" release Name 2 ", Ġ" Some ĠRelease ĠData Ġ 2 " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġproduct Fl avors Ġ{ ĊĠĠĠĠĠĠĠĠ Ġflavor 1 Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Value Ġ" string ", Ġ" VALUE _ DEBUG ", ĠĠ Ġ" 1 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Value Ġ" string ", Ġ" VALUE _ FL AV OR ", Ġ Ġ" 1 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Value Ġ" string ", Ġ" VALUE _ VARIANT ", Ġ" 1 0 " ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġflavor 2 Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Value Ġ" string ", Ġ" VALUE _ DEBUG ", ĠĠ Ġ" 2 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Value Ġ" string ", Ġ" VALUE _ FL AV OR ", Ġ Ġ" 2 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Value Ġ" string ", Ġ" VALUE _ VARIANT ", Ġ" 2 0 " ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ} Ċ } """ ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( mock er . get Lint Variant () !!. name ). isEqualTo (" flavor 1 Debug ") ĊĠĠĠĠĠĠĠ Ġmocker . set Variant Name (" flavor 2 Release ") ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( mock er . get Lint Variant () !!. name ). isEqualTo (" flavor 2 Release ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Place Hold ers () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmocker Ġ= Ġcreate M ocker ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" android Ġ{ ĊĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠ Ġmanifest Place holders Ġ= Ġ[ Ġlocal Application Id :" com . example . manifest _ mer ger _ example "] ĊĠĠĠ Ġ} ĊĠĠĠ Ġproduct Fl avors Ġ{ ĊĠĠĠĠĠĠĠ Ġflavor Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmanifest Place holders Ġ= Ġ[ Ġlocal Application Id :" com . example . manifest _ mer ger _ example . flavor "] ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġproduct Fl avors Ġ{ ĊĠĠĠĠĠĠĠ Ġfree Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmanifest Place holders Ġ= Ġ[" holder ":" free "] ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbeta Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmanifest Place holders Ġ= Ġ[" holder ":" beta "] ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } """ ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmodule Ġ= Ġmocker . get Lint Module () ĊĊĠĠĠĠĠĠĠ Ġfun ĠL int Model Variant . test Value () Ġ= Ġthis . manifest Place holders . entries . join ToString ("\ n ") Ġ{ Ġ"${ it . key }/${ it . value }" Ġ} ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . find Variant (" flavor Debug ") !!. test Value ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġlocal Application Id / com . example . manifest _ mer ger _ example . flavor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . find Variant (" free Release ") !!. test Value ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġlocal Application Id / com . example . manifest _ mer ger _ example ĊĠĠĠ Ġholder / free ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . find Variant (" beta Debug ") !!. test Value ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġlocal Application Id / com . example . manifest _ mer ger _ example ĊĠĠĠ Ġholder / beta ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Min ify Enabled () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmocker Ġ= Ġcreate M ocker ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" android Ġ{ ĊĠĠĠ Ġbuild Types Ġ{ ĊĠĠĠĠĠĠĠ Ġrelease Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmin ify Enabled Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } """ ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmodule Ġ= Ġmocker . get Lint Module () ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . find Variant (" release ") !!. shrink able ). isTrue () ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . find Variant (" debug ") !!. shrink able ). isFalse () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠAssertionError :: class ) ĊĠĠĠ Ġfun Ġtest Fail On Unexpected () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmocker Ġ= Ġcreate M ocker (" android Ġ{\ n ĠĠĠ Ġmin Sdk Version Ġ 1 5 \ n }") ĊĠĠĠĠĠĠĠ Ġmocker . get Lint Module () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Warn On Unrecognized () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhas Warning Ġ= ĠAtomic Boolean () ĊĠĠĠĠĠĠĠ Ġval ĠhasError Ġ= ĠAtomic Boolean () ĊĠĠĠĠĠĠĠ Ġval Ġmocker Ġ= Ġcreate M ocker (" apply Ġplugin : Ġ' java '\ n foo . bar \ n ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Logger ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠILogger Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġerror ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt : ĠThrowable ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmsg Format : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar arg Ġargs : ĠAny ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠhasError . set ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġwarning ( msg Format : ĠString , Ġvar arg Ġargs : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Warning . set ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġinfo ( msg Format : ĠString , Ġvar arg Ġargs : ĠAny ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġverbose ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmsg Format : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar arg Ġargs : ĠAny ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Model Version (" 1 . 5 . 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. allow Unrecognized Construct s () ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( mock er . get Lint Module (). gradle Version . toString ()). isEqualTo (" 1 . 5 . 0 ") ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( has Warning . get ()). isTrue () ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( has Error . get ()). isFalse () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Version Properties () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmocker Ġ= Ġcreate M ocker ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" android Ġ{ ĊĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠ Ġapplication Id Ġ" com . example . manifest _ mer ger _ example " ĊĠĠĠĠĠĠĠ Ġmin Sdk Version Ġ 1 5 ĊĠĠĠĠĠĠĠ Ġtarget Sdk Version Ġ 2 1 ĊĠĠĠĠĠĠĠ Ġversion Code Ġ 1 ĊĠĠĠĠĠĠĠ Ġversion Name Ġ" 1 . 0 " ĊĠĠĠ Ġ} ĊĠĠĠ Ġproduct Fl avors Ġ{ ĊĠĠĠĠĠĠĠ Ġflavor Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Id Ġ" com . example . manifest _ mer ger _ example . flavor " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmin Sdk Version Ġ 1 6 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Sdk Version Ġ 2 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion Code Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion Name Ġ" 2 . 0 " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } """ ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġmocker . set Variant Name (" flavor Debug ") ĊĠĠĠĠĠĠĠ Ġval Ġvariant Ġ= Ġmocker . get Lint Variant () !! ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( variant . main Artifact . application Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo (" com . example . manifest _ mer ger _ example . flavor ") ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( variant . min Sdk Version !!. api Level ). isEqualTo ( 1 6 ) ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( variant . target Sdk Version !!. api Level ). isEqualTo ( 2 2 ) Ċ // ĠĠĠĠĠĠĠ ĠTr uth . assertThat ( flavor . version Code ). isEqualTo ( 2 ) Ċ // ĠĠĠĠĠĠĠ ĠTr uth . assertThat ( flavor . version Name ). isEqualTo (" 2 . 0 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest A pk Spl its () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmocker Ġ= Ġcreate M ocker ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" android Ġ{ ĊĠĠĠ Ġsplits Ġ{ ĊĠĠĠĠĠĠĠ Ġdensity Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenable Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreset () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinclude Ġ" md pi ", Ġ" hdpi " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlanguage Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenable Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinclude Ġ" fr ", Ġ" fr - r CA ", Ġ" en " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġabi Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenable Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinclude Ġ" x 8 6 _ 6 4 ", Ġ" m ips 6 4 ", Ġ" arm 6 4 - v 8 a ", Ġ" ar me abi " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ """ ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmodule Ġ= Ġmocker . get Lint Module () ĊĠĠĠĠĠĠĠ Ġval Ġvariant Ġ= Ġmocker . get Lint Variant () !! Ċ // ĠTODO : Ċ // ĠĠĠĠĠĠĠ Ġval Ġmain Artifact Ġ= Ġvariant . main Artifact Ċ // ĠĠĠĠĠĠĠ Ġval Ġoutputs : ĠList < Ide Android Artifact Output ?> Ġ= Ġmain Artifact . outputs Ċ // ĠĠĠĠĠĠĠ ĠTr uth . assertThat ( outputs ). has Size ( 1 0 ) Ċ // ĠĠĠĠĠĠĠ Ġval Ġgenerated Spl its : ĠList < Pair < String , ĠString > ?> Ġ= Ġoutputs . stream () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġartifact : ĠIde Android Artifact Output ? Ġ-> Ġ! artifact !!. filters . isEmpty () Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġartifact : ĠIde Android Artifact Output ? Ġ-> Ġartifact !!. filters . iterator (). next () !! Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. map ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġfilter Data : ĠFilter Data Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair . of ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter Data . filter Type , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter Data . identifier Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. collect ( Collectors . toList ()) Ċ // ĠĠĠĠĠĠĠ ĠTr uth . assertThat ( generated Spl its ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair . of (" D ENS ITY ", Ġ" md pi "), Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair . of (" D ENS ITY ", Ġ" hdpi "), Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair . of (" LANGUAGE ", Ġ" fr "), Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair . of (" LANGUAGE ", Ġ" fr - r CA "), Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair . of (" LANGUAGE ", Ġ" en "), Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair . of (" ABI ", Ġ" x 8 6 _ 6 4 "), Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair . of (" ABI ", Ġ" m ips 6 4 "), Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair . of (" ABI ", Ġ" arm 6 4 - v 8 a "), Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair . of (" ABI ", Ġ" ar me abi ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ@ Test ĊĠĠĠ Ġ// ĠTODO ( b / 1 5 8 6 5 4 1 3 1 ): ĠRe - implement Ġwhen Ġpossible . ĊĠĠĠ Ġ@ Ignore ĊĠĠĠ Ġfun Ġtest Nested Dependencies () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠNested Ġdependencies Ġare Ġnot Ġsupported Ġin Ġthe ĠIDE Ġright Ġnow . ĊĠĠĠĠĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠ ĠGradle Model M ocker Ġmocker Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate M ocker ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ" apply Ġplugin : Ġ' com . android . application '\ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"\ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ" dependencies Ġ{\ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ" ĠĠĠ Ġcompile Ġ\" com . android . support : appcompat - v 7 : 2 5 . 0 . 1 \"\ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ" ĠĠĠ Ġcompile Ġ\" com . android . support . constraint : constraint - layout : 1 . 0 . 0 - beta 3 \"\ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ" }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Dependency Graph ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"+ --- Ġcom . android . support : appcompat - v 7 : 2 5 . 0 . 1 \ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"| ĠĠĠ Ġ+ --- Ġcom . android . support : support - v 4 : 2 5 . 0 . 1 \ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"| ĠĠĠ Ġ| ĠĠĠ Ġ+ --- Ġcom . android . support : support - compat : 2 5 . 0 . 1 \ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"| ĠĠĠ Ġ| ĠĠĠ Ġ| ĠĠĠ Ġ\\ --- Ġcom . android . support : support - annotations : 2 5 . 0 . 1 \ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"| ĠĠĠ Ġ| ĠĠĠ Ġ+ --- Ġcom . android . support : support - media - compat : 2 5 . 0 . 1 \ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"| ĠĠĠ Ġ| ĠĠĠ Ġ| ĠĠĠ Ġ\\ --- Ġcom . android . support : support - compat : 2 5 . 0 . 1 Ġ(* )\ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"| ĠĠĠ Ġ| ĠĠĠ Ġ+ --- Ġcom . android . support : support - core - utils : 2 5 . 0 . 1 \ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"| ĠĠĠ Ġ| ĠĠĠ Ġ| ĠĠĠ Ġ\\ --- Ġcom . android . support : support - compat : 2 5 . 0 . 1 Ġ(* )\ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"| ĠĠĠ Ġ| ĠĠĠ Ġ+ --- Ġcom . android . support : support - core - ui : 2 5 . 0 . 1 \ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"| ĠĠĠ Ġ| ĠĠĠ Ġ| ĠĠĠ Ġ\\ --- Ġcom . android . support : support - compat : 2 5 . 0 . 1 Ġ(* )\ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"| ĠĠĠ Ġ| ĠĠĠ Ġ\\ --- Ġcom . android . support : support - fragment : 2 5 . 0 . 1 \ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"| ĠĠĠ Ġ| ĠĠĠĠĠĠĠĠ Ġ+ --- Ġcom . android . support : support - compat : 2 5 . 0 . 1 Ġ(* )\ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"| ĠĠĠ Ġ| ĠĠĠĠĠĠĠĠ Ġ+ --- Ġcom . android . support : support - media - compat : 2 5 . 0 . 1 Ġ(* )\ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"| ĠĠĠ Ġ| ĠĠĠĠĠĠĠĠ Ġ+ --- Ġcom . android . support : support - core - ui : 2 5 . 0 . 1 Ġ(* )\ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"| ĠĠĠ Ġ| ĠĠĠĠĠĠĠĠ Ġ\\ --- Ġcom . android . support : support - core - utils : 2 5 . 0 . 1 Ġ(* )\ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"| ĠĠĠ Ġ+ --- Ġcom . android . support : support - vector - drawable : 2 5 . 0 . 1 \ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"| ĠĠĠ Ġ| ĠĠĠ Ġ\\ --- Ġcom . android . support : support - compat : 2 5 . 0 . 1 Ġ(* )\ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"| ĠĠĠ Ġ\\ --- Ġcom . android . support : animated - vector - drawable : 2 5 . 0 . 1 \ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"| ĠĠĠĠĠĠĠĠ Ġ\\ --- Ġcom . android . support : support - vector - drawable : 2 5 . 0 . 1 Ġ(* )\ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"+ --- Ġcom . android . support . constraint : constraint - layout : 1 . 0 . 0 - beta 3 \ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"| ĠĠĠ Ġ\\ --- Ġcom . android . support . constraint : constraint - layout - solver : 1 . 0 . 0 - beta 3 \ n "); ĊĠĠĠĠĠĠĠ ĠDependencies Ġdependencies Ġ= Ġmocker . get Variant (). get Main Artifact (). get Dependencies (); ĊĊĠĠĠĠĠĠĠ ĠList < Java Library > Ġjava Libraries ; ĊĠĠĠĠĠĠĠ ĠList < Android Library > Ġandroid Libraries ; ĊĠĠĠĠĠĠĠ Ġjava Libraries Ġ= ĠLists . newArrayList ( dependencies . get Java Libraries ()); ĊĠĠĠĠĠĠĠ Ġandroid Libraries Ġ= ĠLists . newArrayList ( dependencies . get Libraries ()); ĊĊĠĠĠĠĠĠĠ ĠassertThat ( java Libraries ). has Size ( 0 ); ĊĠĠĠĠĠĠĠ ĠassertThat ( android Libraries ). has Size ( 2 ); ĊĊĠĠĠĠĠĠĠ ĠAndroid Library Ġlibrary ; ĊĠĠĠĠĠĠĠ ĠMaven Coordinates Ġcoordinates ; ĊĊĠĠĠĠĠĠĠ Ġlibrary Ġ= Ġandroid Libraries . get ( 0 ); ĊĠĠĠĠĠĠĠ Ġcoordinates Ġ= Ġlibrary . get Resolved Coordinates (); ĊĠĠĠĠĠĠĠ ĠassertThat ( coordinates . get GroupId ()). isEqualTo (" com . android . support "); ĊĠĠĠĠĠĠĠ ĠassertThat ( coordinates . get Artifact Id ()). isEqualTo (" appcompat - v 7 "); ĊĠĠĠĠĠĠĠ ĠassertThat ( coordinates . getVersion ()). isEqualTo (" 2 5 . 0 . 1 "); ĊĠĠĠĠĠĠĠ ĠassertThat ( coordinates . get Pack aging ()). isEqualTo (" aar "); ĊĊĠĠĠĠĠĠĠ Ġlibrary Ġ= Ġandroid Libraries . get ( 1 ); ĊĠĠĠĠĠĠĠ Ġcoordinates Ġ= Ġlibrary . get Resolved Coordinates (); ĊĠĠĠĠĠĠĠ ĠassertThat ( coordinates . get GroupId ()). isEqualTo (" com . android . support . constraint "); ĊĠĠĠĠĠĠĠ ĠassertThat ( coordinates . get Artifact Id ()). isEqualTo (" constraint - layout "); ĊĠĠĠĠĠĠĠ ĠassertThat ( coordinates . getVersion ()). isEqualTo (" 1 . 0 . 0 - beta 3 "); ĊĠĠĠĠĠĠĠ ĠassertThat ( coordinates . get Pack aging ()). isEqualTo (" aar "); ĊĊĠĠĠĠĠĠĠ Ġ// ĠCheck Ġrecursive Ġdependencies ĊĠĠĠĠĠĠĠ Ġlibrary Ġ= Ġandroid Libraries . get ( 0 ); ĊĠĠĠĠĠĠĠ Ġandroid Libraries Ġ= ĠLists . newArrayList ( library . get Library Dependencies ()); ĊĠĠĠĠĠĠĠ Ġandroid Libraries . sort ( LIBRARY _ COMP AR ATOR ); ĊĠĠĠĠĠĠĠ Ġlibrary Ġ= Ġandroid Libraries . get ( 1 ); ĊĠĠĠĠĠĠĠ Ġcoordinates Ġ= Ġlibrary . get Resolved Coordinates (); ĊĠĠĠĠĠĠĠ ĠassertThat ( coordinates . get GroupId ()). isEqualTo (" com . android . support "); ĊĠĠĠĠĠĠĠ ĠassertThat ( coordinates . get Artifact Id ()). isEqualTo (" support - v 4 "); ĊĠĠĠĠĠĠĠ ĠassertThat ( coordinates . getVersion ()). isEqualTo (" 2 5 . 0 . 1 "); ĊĠĠĠĠĠĠĠ ĠassertThat ( coordinates . get Pack aging ()). isEqualTo (" aar "); ĊĊĠĠĠĠĠĠĠ Ġandroid Libraries Ġ= ĠLists . newArrayList ( library . get Library Dependencies ()); ĊĠĠĠĠĠĠĠ Ġandroid Libraries . sort ( LIBRARY _ COMP AR ATOR ); ĊĠĠĠĠĠĠĠ Ġlibrary Ġ= Ġandroid Libraries . get ( 0 ); ĊĠĠĠĠĠĠĠ Ġcoordinates Ġ= Ġlibrary . get Resolved Coordinates (); ĊĠĠĠĠĠĠĠ ĠassertThat ( coordinates . get GroupId ()). isEqualTo (" com . android . support "); ĊĠĠĠĠĠĠĠ ĠassertThat ( coordinates . get Artifact Id ()). isEqualTo (" support - compat "); ĊĠĠĠĠĠĠĠ ĠassertThat ( coordinates . getVersion ()). isEqualTo (" 2 5 . 0 . 1 "); ĊĠĠĠĠĠĠĠ ĠassertThat ( coordinates . get Pack aging ()). isEqualTo (" aar "); ĊĊĠĠĠĠĠĠĠ Ġ// Java Library Ġjava Library Ġ= Ġlibrary . get Java Dependencies (). iterator (). next (); ĊĠĠĠĠĠĠĠ Ġ// coordinates Ġ= Ġjava Library . get Resolved Coordinates (); ĊĠĠĠĠĠĠĠ Ġ// assertThat ( coordinates . get GroupId ()). isEqualTo (" com . android . support "); ĊĠĠĠĠĠĠĠ Ġ// assertThat ( coordinates . get Artifact Id ()). isEqualTo (" support - annotations "); ĊĠĠĠĠĠĠĠ Ġ// assertThat ( coordinates . getVersion ()). isEqualTo (" 2 5 . 0 . 1 "); ĊĠĠĠĠĠĠĠ Ġ// assertThat ( coordinates . get Pack aging ()). isEqualTo (" jar "); ĊĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Dependency Graph () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmocker Ġ= Ġcreate M ocker ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" Ċ apply Ġplugin : Ġ' com . android . application ' Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġcompile Ġ" com . android . support : appcompat - v 7 : 2 5 . 0 . 1 " ĊĠĠĠ Ġcompile Ġ" com . android . support . constraint : constraint - layout : 1 . 0 . 0 - beta 3 " Ċ } """ ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmodule Ġ= Ġmocker . get Lint Module () ĊĠĠĠĠĠĠĠ Ġvar Ġvariant Ġ= Ġmocker . get Lint Variant () !! ĊĊĠĠĠĠĠĠĠ Ġval Ġjava Libraries Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvariant . main Artifact . dependencies . compile Dependencies ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getAll Libraries (). filter Is Instance < Lint Model Java Library >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . artifact Address Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġandroid Libraries Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvariant . main Artifact . dependencies . compile Dependencies ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getAll Libraries (). filter Is Instance < Lint Model Android Library >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . artifact Address Ġ} ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( java Libraries ). contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . android . support : support - annotations : 2 5 . 0 . 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . android . support . constraint : constraint - layout - solver : 1 . 0 . 0 - beta 3 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( android Libraries ). contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . android . support : appcompat - v 7 : 2 5 . 0 . 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . android . support : support - v 4 : 2 5 . 0 . 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . android . support : support - compat : 2 5 . 0 . 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . android . support : support - media - compat : 2 5 . 0 . 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . android . support : support - core - utils : 2 5 . 0 . 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . android . support : support - core - ui : 2 5 . 0 . 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . android . support : support - fragment : 2 5 . 0 . 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . android . support : support - vector - drawable : 2 5 . 0 . 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . android . support : animated - vector - drawable : 2 5 . 0 . 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . android . support . constraint : constraint - layout : 1 . 0 . 0 - beta 3 ", ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ@ Test ĊĠĠĠ Ġ// ĠTODO ( b / 1 5 8 6 4 9 2 6 9 ): ĠReview Ġwhether Ġthis Ġtest Ġis Ġneeded . Ċ // ĠĠĠ Ġ@ Ignore Ċ // ĠĠĠ Ġfun Ġtest Prom oted Dependencies () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġval Ġmocker Ġ= Ġcreate M ocker ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ""" dependencies Ġ{ Ċ // ĠĠĠ Ġcompile Ġ' junit : junit : 4 . 1 2 ' Ċ // ĠĠĠ Ġcompile Ġ' org . hamcrest : hamcrest - core : 1 . 3 ' Ċ // ĠĠĠ Ġcompile Ġ' org . mockito : mockito - core : 1 . 1 0 . 8 ' Ċ // ĠĠĠ Ġcompile Ġ' org . power mock : power mock - api - mockito : 1 . 6 . 4 ' Ċ // ĠĠĠ Ġcompile Ġ' org . power mock : power mock - module - junit 4 - rule - agent : 1 . 6 . 4 ' Ċ // ĠĠĠ Ġcompile Ġ' org . power mock : power mock - module - junit 4 - rule : 1 . 6 . 4 ' Ċ // ĠĠĠ Ġcompile Ġ' org . power mock : power mock - module - junit 4 : 1 . 6 . 4 ' Ċ // ĠĠĠ Ġcompile Ġ' org . json : json : 2 0 0 9 0 2 1 1 '} Ċ // Ġ""" Ċ // ĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Dependency Graph ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ --- Ġjunit : junit : 4 . 1 2 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ\ --- Ġorg . hamcrest : hamcrest - core : 1 . 3 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ --- Ġorg . hamcrest : hamcrest - core : 1 . 3 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ --- Ġorg . mockito : mockito - core : 1 . 1 0 . 8 Ġ-> Ġ 1 . 1 0 . 1 9 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ+ --- Ġorg . hamcrest : hamcrest - core : 1 . 1 Ġ-> Ġ 1 . 3 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ\ --- Ġorg . obj en esis : obj en esis : 2 . 1 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ --- Ġorg . power mock : power mock - api - mockito : 1 . 6 . 4 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ+ --- Ġorg . mockito : mockito - core : 1 . 1 0 . 1 9 Ġ(* ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ+ --- Ġorg . hamcrest : hamcrest - core : 1 . 3 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ\ --- Ġorg . power mock : power mock - api - support : 1 . 6 . 4 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠ Ġ+ --- Ġorg . power mock : power mock - core : 1 . 6 . 4 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ+ --- Ġorg . power mock : power mock - reflect : 1 . 6 . 4 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ| ĠĠĠ Ġ\ --- Ġorg . obj en esis : obj en esis : 2 . 1 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ\ --- Ġorg . jav assist : jav assist : 3 . 2 0 . 0 - GA Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠ Ġ\ --- Ġorg . power mock : power mock - reflect : 1 . 6 . 4 Ġ(* ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ --- Ġorg . power mock : power mock - module - junit 4 - rule - agent : 1 . 6 . 4 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ+ --- Ġorg . power mock : power mock - module - java agent : 1 . 6 . 4 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ| ĠĠĠ Ġ\ --- Ġorg . power mock : power mock - core : 1 . 6 . 4 Ġ(* ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ\ --- Ġorg . power mock : power mock - core : 1 . 6 . 4 Ġ(* ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ --- Ġorg . power mock : power mock - module - junit 4 - rule : 1 . 6 . 4 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ+ --- Ġorg . power mock : power mock - class loading - base : 1 . 6 . 4 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ| ĠĠĠ Ġ+ --- Ġorg . power mock : power mock - api - support : 1 . 6 . 4 Ġ(* ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ| ĠĠĠ Ġ\ --- Ġorg . power mock : power mock - reflect : 1 . 6 . 4 Ġ(* ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ\ --- Ġorg . power mock : power mock - core : 1 . 6 . 4 Ġ(* ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ --- Ġorg . power mock : power mock - module - junit 4 : 1 . 6 . 4 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ+ --- Ġjunit : junit : 4 . 1 2 Ġ(* ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ\ --- Ġorg . power mock : power mock - module - junit 4 - common : 1 . 6 . 4 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠ Ġ+ --- Ġjunit : junit : 4 . 4 Ġ-> Ġ 4 . 1 2 Ġ(* ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠ Ġ+ --- Ġorg . power mock : power mock - core : 1 . 6 . 4 Ġ(* ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠ Ġ\ --- Ġorg . power mock : power mock - reflect : 1 . 6 . 4 Ġ(* ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ\ --- Ġorg . json : json : 2 0 0 9 0 2 1 1 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠ Ġval Ġjava Libraries : ĠList < Ide Library ?> Ċ // ĠĠĠĠĠĠĠ Ġval Ġandroid Libraries : ĠList < Ide Library ?> Ċ // ĠĠĠĠĠĠĠ Ġval Ġdependencies Ġ= Ġmocker . variant . main Artifact . level 2 Dependencies Ċ // ĠĠĠĠĠĠĠ Ġjava Libraries Ġ= ĠLists . newArrayList < Ide Library ? >( dependencies . java Libraries ) Ċ // ĠĠĠĠĠĠĠ Ġandroid Libraries Ġ= ĠLists . newArrayList < Ide Library ? >( dependencies . android Libraries ) Ċ // ĠĠĠĠĠĠĠ ĠTr uth . assertThat ( java Libraries ). has Size ( 1 ) Ċ // ĠĠĠĠĠĠĠ ĠTr uth . assertThat ( android Libraries ). has Size ( 7 ) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġ// Ġorg . mockito : mockito - core : 1 . 1 0 . 8 Ġ-> Ġ 1 . 1 0 . 1 9 Ċ // ĠĠĠĠĠĠĠ Ġval Ġlibrary Ġ= Ġandroid Libraries [ 1 ] Ċ // ĠĠĠĠĠĠĠ ĠTr uth . assertThat ( library !!. artifact Address ). isEqualTo (" org . mockito : mockito - core : 1 . 1 0 . 1 9 ") Ċ // ĠĠĠĠĠĠĠ ĠAssert . fail (" Ide Dependencies Ġdo Ġnot Ġsupport Ġthe Ġconcept Ġof Ġprom oted Ġversions ") Ċ // ĠĠĠ Ġ} Ċ Ċ // ĠĠĠ Ġ@ Test Ċ // ĠĠĠ Ġfun Ġtest Dependency Graphs () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġval Ġmocker Ġ= Ġcreate M ocker ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ""" build script Ġ{ Ċ // ĠĠĠ Ġdependencies Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġclasspath Ġ' com . android . tools . build : gradle : 2 . 5 . 0 - alpha 1 ' Ċ // ĠĠĠ Ġ} Ċ // Ġ} Ċ // Ġdependencies Ġ{ Ċ // ĠĠĠ Ġcompile Ġ' junit : junit : 4 . 1 2 ' Ċ // ĠĠĠ Ġcompile Ġ' org . hamcrest : hamcrest - core : 1 . 3 ' Ċ // ĠĠĠ Ġcompile Ġ' org . mockito : mockito - core : 1 . 1 0 . 8 ' Ċ // ĠĠĠ Ġcompile Ġ' org . power mock : power mock - api - mockito : 1 . 6 . 4 ' Ċ // ĠĠĠ Ġcompile Ġ' org . power mock : power mock - module - junit 4 - rule - agent : 1 . 6 . 4 ' Ċ // ĠĠĠ Ġcompile Ġ' org . power mock : power mock - module - junit 4 - rule : 1 . 6 . 4 ' Ċ // ĠĠĠ Ġcompile Ġ' org . power mock : power mock - module - junit 4 : 1 . 6 . 4 ' Ċ // ĠĠĠ Ġcompile Ġ' org . json : json : 2 0 0 9 0 2 1 1 '} Ċ // Ġ""" Ċ // ĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Dependency Graph ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ --- Ġjunit : junit : 4 . 1 2 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ\ --- Ġorg . hamcrest : hamcrest - core : 1 . 3 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ --- Ġorg . hamcrest : hamcrest - core : 1 . 3 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ --- Ġorg . mockito : mockito - core : 1 . 1 0 . 8 Ġ-> Ġ 1 . 1 0 . 1 9 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ+ --- Ġorg . hamcrest : hamcrest - core : 1 . 1 Ġ-> Ġ 1 . 3 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ\ --- Ġorg . obj en esis : obj en esis : 2 . 1 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ --- Ġorg . power mock : power mock - api - mockito : 1 . 6 . 4 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ+ --- Ġorg . mockito : mockito - core : 1 . 1 0 . 1 9 Ġ(* ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ+ --- Ġorg . hamcrest : hamcrest - core : 1 . 3 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ\ --- Ġorg . power mock : power mock - api - support : 1 . 6 . 4 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠ Ġ+ --- Ġorg . power mock : power mock - core : 1 . 6 . 4 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ+ --- Ġorg . power mock : power mock - reflect : 1 . 6 . 4 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ| ĠĠĠ Ġ\ --- Ġorg . obj en esis : obj en esis : 2 . 1 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ\ --- Ġorg . jav assist : jav assist : 3 . 2 0 . 0 - GA Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠ Ġ\ --- Ġorg . power mock : power mock - reflect : 1 . 6 . 4 Ġ(* ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ --- Ġorg . power mock : power mock - module - junit 4 - rule - agent : 1 . 6 . 4 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ+ --- Ġorg . power mock : power mock - module - java agent : 1 . 6 . 4 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ| ĠĠĠ Ġ\ --- Ġorg . power mock : power mock - core : 1 . 6 . 4 Ġ(* ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ\ --- Ġorg . power mock : power mock - core : 1 . 6 . 4 Ġ(* ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ --- Ġorg . power mock : power mock - module - junit 4 - rule : 1 . 6 . 4 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ+ --- Ġorg . power mock : power mock - class loading - base : 1 . 6 . 4 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ| ĠĠĠ Ġ+ --- Ġorg . power mock : power mock - api - support : 1 . 6 . 4 Ġ(* ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ| ĠĠĠ Ġ\ --- Ġorg . power mock : power mock - reflect : 1 . 6 . 4 Ġ(* ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ\ --- Ġorg . power mock : power mock - core : 1 . 6 . 4 Ġ(* ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ --- Ġorg . power mock : power mock - module - junit 4 : 1 . 6 . 4 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ+ --- Ġjunit : junit : 4 . 1 2 Ġ(* ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ\ --- Ġorg . power mock : power mock - module - junit 4 - common : 1 . 6 . 4 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠ Ġ+ --- Ġjunit : junit : 4 . 4 Ġ-> Ġ 4 . 1 2 Ġ(* ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠ Ġ+ --- Ġorg . power mock : power mock - core : 1 . 6 . 4 Ġ(* ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠ Ġ\ --- Ġorg . power mock : power mock - reflect : 1 . 6 . 4 Ġ(* ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ\ --- Ġorg . json : json : 2 0 0 9 0 2 1 1 Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Full Dependencies ( false ) Ċ // ĠĠĠĠĠĠĠ Ġval Ġgraph Ġ= Ġmocker . variant . main Artifact . level 2 Dependencies Ċ // ĠĠĠĠĠĠĠ Ġval Ġnames Ġ= ĠStreams . concat ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġgraph . android Libraries . stream (), Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġgraph . java Libraries . stream () Ċ // ĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit : ĠIde Library Ġ-> Ġit . artifact Address Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. distinct () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. collect ( Collectors . toList ()) Ċ // ĠĠĠĠĠĠĠ ĠCollections . sort ( names ) Ċ // ĠĠĠĠĠĠĠ ĠTr uth . assertThat ( names ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" junit : junit : 4 . 1 2 @ jar ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . hamcrest : hamcrest - core : 1 . 3 @ aar ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . jav assist : jav assist : 3 . 2 0 . 0 - GA @ aar ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . json : json : 2 0 0 9 0 2 1 1 @ aar ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . mockito : mockito - core : 1 . 1 0 . 1 9 @ aar ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . obj en esis : obj en esis : 2 . 1 @ aar ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . power mock : power mock - api - mockito : 1 . 6 . 4 @ aar ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . power mock : power mock - api - support : 1 . 6 . 4 @ aar ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . power mock : power mock - class loading - base : 1 . 6 . 4 @ aar ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . power mock : power mock - core : 1 . 6 . 4 @ aar ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . power mock : power mock - module - java agent : 1 . 6 . 4 @ aar ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . power mock : power mock - module - junit 4 - common : 1 . 6 . 4 @ aar ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . power mock : power mock - module - junit 4 - rule - agent : 1 . 6 . 4 @ aar ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . power mock : power mock - module - junit 4 - rule : 1 . 6 . 4 @ aar ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . power mock : power mock - module - junit 4 : 1 . 6 . 4 @ aar ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . power mock : power mock - reflect : 1 . 6 . 4 @ aar " Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Lint Options () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmocker Ġ= Ġcreate M ocker ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" android Ġ{ ĊĠĠĠ Ġlint Options Ġ{ ĊĠĠĠĠĠĠĠ Ġquiet Ġtrue ĊĠĠĠĠĠĠĠ Ġabort OnError Ġfalse ĊĠĠĠĠĠĠĠ Ġignore Warnings Ġtrue ĊĠĠĠĠĠĠĠ Ġabsolute Paths Ġfalse ĊĠĠĠĠĠĠĠ Ġcheck All Warnings Ġtrue ĊĠĠĠĠĠĠĠ Ġwarnings As Errors Ġtrue ĊĠĠĠĠĠĠĠ Ġdisable Ġ' Typography Fr actions ',' Typography Quotes ' ĊĠĠĠĠĠĠĠ Ġenable Ġ' R tl Hard coded ',' R tl Compat ', Ġ' R tl Enabled ' ĊĠĠĠĠĠĠĠ Ġcheck Ġ' New Api ', Ġ' In lined Api ' ĊĠĠĠĠĠĠĠ Ġno Lines Ġtrue ĊĠĠĠĠĠĠĠ Ġshow All Ġtrue ĊĠĠĠĠĠĠĠ Ġlint Config Ġfile (" default - lint . xml ") ĊĠĠĠĠĠĠĠ Ġinformation al Ġ' Log Conditional ' ĊĠĠĠĠĠĠĠ Ġcheck Test Sources Ġtrue ĊĠĠĠ Ġ} Ċ } Ċ """ ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( mock er ). isNotNull () ĊĠĠĠĠĠĠĠ Ġval Ġflags Ġ= ĠL int Cli Flags () ĊĠĠĠĠĠĠĠ Ġmocker . sync Flags To ( flags ) ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( flags . is Quiet ). isTrue () ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( flags . isSet ExitCode ). isFalse () ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( flags . is Ignore Warnings ). isTrue () ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( flags . is Check All Warnings ). isTrue () ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( flags . is Warnings As Errors ). isTrue () ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( flags . is FullPath ). isFalse () ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( flags . sup pressed Ids ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly (" Typography Fr actions ", Ġ" Typography Quotes ") ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( flags . enabled Ids ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly (" R tl Hard coded ", Ġ" R tl Compat ", Ġ" R tl Enabled ") ĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( flags . exact Checked Ids ). contains Exactly (" New Api ", Ġ" In lined Api ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Language Options 1 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmocker Ġ= Ġcreate M ocker ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" android Ġ{ ĊĠĠĠ Ġcompile Options Ġ{ ĊĠĠĠĠĠĠĠ Ġsource Compatibility ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠĠĠĠĠ Ġtarget Compatibility ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠ Ġ} Ċ } """ ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmodule Ġ= Ġmocker . get Lint Module () ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . java Source Level ). isEqualTo (" 1 . 8 ") ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠTr uth . assertThat ( module . compile Target ). isEqualTo (" 1 . 8 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Language Options 2 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmocker Ġ= Ġcreate M ocker ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" android Ġ{ ĊĠĠĠ Ġcompile Options Ġ{ ĊĠĠĠĠĠĠĠ Ġsource Compatibility ĠJava Version . VERSION _ 1 _ 7 ĊĠĠĠĠĠĠĠ Ġtarget Compatibility ĠJava Version . VERSION _ 1 _ 7 ĊĠĠĠ Ġ} Ċ } """ ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmodule Ġ= Ġmocker . get Lint Module () ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( module . java Source Level ). isEqualTo (" 1 . 7 ") ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠTr uth . assertThat ( module . compile Target ). isEqualTo (" 1 . 8 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate M ocker ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Language (" Gro ovy ") Ġgradle : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Folder : ĠTemporary Folder ĊĠĠĠĠĠĠĠ Ġ): ĠGradle Model M ocker Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGradle Model M ocker ( gradle !! , Ġtemp Folder . new Folder (" build ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Logger ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠILogger Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġerror ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt : ĠThrowable ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmsg Format : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar arg Ġargs : ĠAny ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . fail ( msg Format ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġwarning ( msg Format : ĠString , Ġvar arg Ġargs : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( msg Format ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġinfo ( msg Format : ĠString , Ġvar arg Ġargs : ĠAny ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġverbose ( msg Format : ĠString , Ġvar arg Ġargs : ĠAny ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . fail ( e . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ