/* Ċ Ġ* ĠĠĠ ĠCopyright Ġ 2 0 1 5 ĠE du ard Ġ" Arch in amon " ĠM ats uk ov . Ċ Ġ* ĠĠĠ ĠCopyright Ġ 2 0 1 8 Ġthe Ġoriginal Ġauthor Ġor Ġauthors . Ċ Ġ* ĠĠĠ ĠCopyright Ġ 2 0 1 8 ĠTh under head Ċ Ġ* Ċ Ġ* ĠĠĠ Ġ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 . arch in amon . utils Ċ Ċ import Ġcom . android . build . gradle . App Extension Ċ import Ġcom . android . build . gradle . App Plugin Ċ import Ġcom . android . build . gradle . Library Extension Ċ import Ġcom . android . build . gradle . Library Plugin Ċ import Ġcom . android . build . gradle . internal . Compile Options Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . any Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . do Return Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . mock Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . wh enever Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . gradle . api . Java Version Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . plugins . Extension Container Ċ import Ġorg . gradle . api . plugins . Plugin Container Ċ import Ġorg . junit . Test ĊĊ Ċ class ĠJava E ight Util Test Ġ{ ĊĠĠĠ Ġprivate Ġval Ġmock Compile Options Ġ= Ġmock < Compile Options >() ĊĠĠĠ Ġprivate Ġval Ġmock App Extension Ġ= Ġmock < App Extension > Ġ{ ĊĠĠĠĠĠĠĠ Ġon Ġ{ Ġcompile Options Ġ} Ġdo Return Ġmock Compile Options ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġmock Library Extension Ġ= Ġmock < Library Extension > Ġ{ ĊĠĠĠĠĠĠĠ Ġon Ġ{ Ġcompile Options Ġ} Ġdo Return Ġmock Compile Options ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġmock Extensions Ġ= Ġmock < Extension Container > Ġ{ ĊĠĠĠĠĠĠĠ Ġon Ġ{ Ġget ByType ( any < Class < App Extension >> ()) Ġ} Ġdo Return Ġmock App Extension ĊĠĠĠĠĠĠĠ Ġon Ġ{ Ġget ByType ( any < Class < Library Extension >> ()) Ġ} Ġdo Return Ġmock Library Extension ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġmock Plugins Ġ= Ġmock < Plugin Container > Ġ{ ĊĠĠĠĠĠĠĠ Ġon Ġ{ Ġhas Plugin ( App Plugin :: class . java ) Ġ} Ġdo Return Ġtrue ĊĠĠĠĠĠĠĠ Ġon Ġ{ Ġhas Plugin ( Library Plugin :: class . java ) Ġ} Ġdo Return Ġtrue ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġmock Project Ġ= Ġmock < Project > Ġ{ ĊĠĠĠĠĠĠĠ Ġon Ġ{ Ġplugins Ġ} Ġdo Return Ġmock Plugins ĊĠĠĠĠĠĠĠ Ġon Ġ{ Ġextensions Ġ} Ġdo Return Ġmock Extensions ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġcheck Ġfor Ġjava 8 Ġsource Ġcompatibility `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTest ĠApp Plugin ĊĠĠĠĠĠĠĠ Ġwhenever ( mock Compile Options . source Compatibility ). thenReturn ( Java Version . VERSION _ 1 _ 8 ) ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġsource Compatibility Is Java E ight ( mock Project ) ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isTrue () ĊĊĠĠĠĠĠĠĠ Ġwhenever ( mock Compile Options . source Compatibility ). thenReturn ( Java Version . VERSION _ 1 _ 7 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġsource Compatibility Is Java E ight ( mock Project ) ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isFalse () ĊĊĠĠĠĠĠĠĠ Ġ// ĠTest ĠLibrary Plugin ĊĠĠĠĠĠĠĠ Ġwhenever ( mock Plugins . has Plugin ( App Plugin :: class . java )). thenReturn ( false ) ĊĊĠĠĠĠĠĠĠ Ġwhenever ( mock Compile Options . source Compatibility ). thenReturn ( Java Version . VERSION _ 1 _ 8 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġsource Compatibility Is Java E ight ( mock Project ) ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isTrue () ĊĊĠĠĠĠĠĠĠ Ġwhenever ( mock Compile Options . source Compatibility ). thenReturn ( Java Version . VERSION _ 1 _ 7 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġsource Compatibility Is Java E ight ( mock Project ) ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isFalse () ĊĠĠĠ Ġ} Ċ }