/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 2 1 ĠJetBrains Ġs . r . o . Ġand ĠKotlin ĠProgramming ĠLanguage Ġcontributors . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . gradle Ċ Ċ import Ġorg . gradle . api . logging . configuration . Warning Mode Ċ import Ġorg . gradle . util . Gradle Version Ċ import Ġorg . jetbrains . kotlin . gradle . test base .* Ċ import Ġorg . junit . jupiter . api . DisplayName Ċ import Ġorg . junit . jupiter . api . extension . Extension Context Ċ import Ġorg . junit . jupiter . params . Parameterized Test Ċ import Ġorg . junit . jupiter . params . provider .* Ċ import Ġjava . nio . file . Path Ċ import Ġjava . util . UUID Ċ import Ġjava . util . stream . Stream Ċ import Ġkotlin . io . path . append Text Ċ import Ġkotlin . streams . as Stream Ċ import Ġkotlin . streams . toList Ċ import Ġkotlin . test . assertFalse Ċ import Ġkotlin . test . assertTrue Ċ Ċ @ DisplayName (" Kotlin Ġdefault Ġdependencies ") Ċ class ĠKotlin Specific Dependencies IT Ġ: ĠK GP Base Test () Ġ{ ĊĊĠĠĠ Ġ@ Jvm Gradle Plugin Tests ĊĠĠĠ Ġ@ DisplayName (" JVM : Ġkotlin - stdlib Ġdependency Ġis Ġadded Ġby Ġdefault ") ĊĠĠĠ Ġ@ Gradle Test ĊĠĠĠ Ġfun Ġtest Std lib ByDefault Jvm ( gradle Version : ĠGradle Version ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject (" simple Project ", Ġgradle Version ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove Dependencies ( build Gradle ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Task Compile Classpath (" compile Kotlin ", ĠlistOf (" kotlin - stdlib " Ġ/* any Ġof Ġthem */ )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Gradle Plugin Tests ĊĠĠĠ Ġ@ DisplayName (" JVM : Ġkotlin - stdlib Ġdependency Ġis Ġnot Ġadded Ġwhen Ġdisabled Ġvia Ġproperties ") ĊĠĠĠ Ġ@ Gradle Test ĊĠĠĠ Ġfun Ġtest Std lib Not Added Jvm ( gradle Version : ĠGradle Version ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject (" simple Project ", Ġgradle Version ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove Dependencies ( build Gradle ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgradle Properties . append Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n kotlin . stdlib . default . dependency = false " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Task Compile Classpath ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Kotlin ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Modules NotIn Classpath Ġ= ĠlistOf (" kotlin - stdlib " Ġ/* any Ġof Ġthem */) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Js Gradle Plugin Tests ĊĠĠĠ Ġ@ DisplayName (" JS : Ġkotlin - stdlib Ġdependency Ġis Ġadded Ġby Ġdefault ") ĊĠĠĠ Ġ@ Gradle Test ĊĠĠĠ Ġfun Ġtest Std lib ByDefault Js ( gradle Version : ĠGradle Version ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" kotlin - js - plugin - project ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgradle Version , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Options Ġ= Ġdefault Build Options . copy ( warning Mode Ġ= ĠWarning Mode . Summary ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Gradle K ts . modify Ġ{ Ġit . lines (). filter Ġ{ Ġ" html " Ġ! in Ġit Ġ}. join ToString ("\ n ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin Sources Dir (). resolve (" Main . kt "). modify Ġ{ Ġ" fun Ġf () Ġ= ĠlistOf ( 1 , Ġ 2 , Ġ 3 ). join ToString ()" Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove Dependencies ( build Gradle K ts ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Task Compile Classpath ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Kotlin Js ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" kotlin - stdlib "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Build Gradle K ts Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Js Gradle Plugin Tests ĊĠĠĠ Ġ@ DisplayName (" JS : Ġkotlin - stdlib Ġdependency Ġis Ġnot Ġadded Ġwhen Ġdisabled Ġvia Ġproperties ") ĊĠĠĠ Ġ@ Gradle Test ĊĠĠĠ Ġfun Ġtest Std lib Disabled Js ( gradle Version : ĠGradle Version ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" kotlin - js - plugin - project ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgradle Version , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Options Ġ= Ġdefault Build Options . copy ( warning Mode Ġ= ĠWarning Mode . Summary ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Gradle K ts . modify Ġ{ Ġit . lines (). filter Ġ{ Ġ" html " Ġ! in Ġit Ġ}. join ToString ("\ n ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin Sources Dir (). resolve (" Main . kt "). modify Ġ{ Ġ" fun Ġf () Ġ= ĠlistOf ( 1 , Ġ 2 , Ġ 3 ). join ToString ()" Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove Dependencies ( build Gradle K ts ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġgradle Properties . append Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n kotlin . stdlib . default . dependency = false " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Task Compile Classpath ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Kotlin Js ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Modules NotIn Classpath Ġ= ĠlistOf (" kotlin - stdlib " Ġ/* any Ġof Ġthem */ ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Build Gradle K ts Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Gradle Plugin Tests ĊĠĠĠ Ġ@ DisplayName (" Android : Ġkotlin - stdlib Ġdependency Ġis Ġadded Ġby Ġdefault ") ĊĠĠĠ Ġ@ Gradle Test ĊĠĠĠ Ġfun Ġtest Std lib Default Android ( gradle Version : ĠGradle Version ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Android Library Kotlin Project ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgradle Version , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Options Ġ= Ġdefault Build Options . copy ( android Version Ġ= ĠTest Versions . AG P . AG P _ 4 2 ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove Dependencies ( build Gradle ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Task Compile Classpath (" compile Debug Kotlin ", ĠlistOf (" kotlin - stdlib " Ġ/* any Ġof Ġthem */ )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Gradle Plugin Tests ĊĠĠĠ Ġ@ DisplayName (" Android : Ġkotlin - stdlib Ġdependency Ġis Ġnot Ġadded Ġwhen Ġdisabled Ġvia Ġproperties ") ĊĠĠĠ Ġ@ Gradle Test ĊĠĠĠ Ġfun Ġtest Std lib Disabled Android ( gradle Version : ĠGradle Version ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Android Library Kotlin Project ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgradle Version , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Options Ġ= Ġdefault Build Options . copy ( android Version Ġ= ĠTest Versions . AG P . AG P _ 4 2 ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove Dependencies ( build Gradle ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgradle Properties . append Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n kotlin . stdlib . default . dependency = false " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Task Compile Classpath ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Debug Kotlin ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Modules NotIn Classpath Ġ= ĠlistOf (" kotlin - stdlib " Ġ/* any Ġof Ġthem */ ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ M pp Gradle Plugin Tests ĊĠĠĠ Ġ@ DisplayName (" MP P : Ġkotlin - stdlib Ġis Ġadded Ġby Ġdefault ") ĊĠĠĠ Ġ@ Gradle Test ĊĠĠĠ Ġfun Ġkotlin Std lib Default M pp ( gradle Version : ĠGradle Version ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject (" jvm - and - js - h mpp ", Ġgradle Version ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove Dependencies ( build Gradle K ts ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Kotlin Jvm ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Kotlin Js ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Common Main Kotlin Metadata ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Jvm And Js Main Kotlin Metadata " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). forEach Ġ{ Ġtask Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Task Compile Classpath ( task , ĠlistOf (" kotlin - stdlib "), Ġis Build Gradle K ts Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ M pp Gradle Plugin Tests ĊĠĠĠ Ġ@ DisplayName (" MP P : Ġkotlin - stdlib Ġis Ġnot Ġadded Ġwhen Ġdisabled Ġin Ġproperties ") ĊĠĠĠ Ġ@ Gradle Test ĊĠĠĠ Ġfun Ġkotlin Std lib Disabled M pp ( gradle Version : ĠGradle Version ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject (" jvm - and - js - h mpp ", Ġgradle Version ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove Dependencies ( build Gradle K ts ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgradle Properties . append Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n kotlin . stdlib . default . dependency = false " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Kotlin Jvm ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Kotlin Js ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Common Main Kotlin Metadata ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Jvm And Js Main Kotlin Metadata " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). forEach Ġ{ Ġtask Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Task Compile Classpath ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Modules NotIn Classpath Ġ= ĠlistOf (" kotlin - stdlib "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Build Gradle K ts Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DisplayName (" Adds Ġkotlin - stdlib Ġvariant Ġbased Ġon Ġj vm Target Ġvalue ") ĊĠĠĠ Ġ@ Jvm Gradle Plugin Tests ĊĠĠĠ Ġ@ Gradle Test ĊĠĠĠ Ġfun Ġtest Std lib Based On J dk ( gradle Version : ĠGradle Version ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject (" simple Project ", Ġgradle Version ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove Dependencies ( build Gradle ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Gradle . modify Ġ{ Ġ"$ it \ n kotlin . target . comp il ations [\" main \" ]. kotlin Options Ġ{ Ġj vm Target Ġ= Ġ\" 1 . 6 \" Ġ}" Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġdefault Build Options . kotlin Version ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Task Compile Classpath ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Kotlin ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" kotlin - stdlib -$ version "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" kotlin - stdlib - jdk 7 ", Ġ" kotlin - stdlib - jdk 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Gradle . modify Ġ{ Ġ"$ it \ n kotlin . target . comp il ations [\" main \" ]. kotlin Options Ġ{ Ġj vm Target Ġ= Ġ\" 1 1 \" Ġ}" Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Task Compile Classpath ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Kotlin ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" kotlin - stdlib ", Ġ" kotlin - stdlib - jdk 7 ", Ġ" kotlin - stdlib - jdk 8 "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Gradle Plugin Tests ĊĠĠĠ Ġ@ DisplayName (" Explicit Ġkotlin - stdlib Ġversion Ġoverrides Ġdefault Ġone ") ĊĠĠĠ Ġ@ Gradle Test ĊĠĠĠ Ġfun Ġtest Override Std lib ( gradle Version : ĠGradle Version ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject (" simple Project ", Ġgradle Version ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove Dependencies ( build Gradle ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Gradle . append Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin . target . comp il ations [" main "]. kotlin Options . jvm Target Ġ= Ġ" 1 . 8 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ Ġimplementation (" org . jetbrains . kotlin : kotlin - stdlib ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCheck Ġthat Ġthe Ġexplicit Ġstdlib Ġoverrides Ġthe Ġplugin 's Ġchoice Ġof Ġstdlib - jdk 8 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Task Compile Classpath ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Kotlin ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" kotlin - stdlib -${ default Build Options . kotlin Version } "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" kotlin - stdlib - jdk 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Gradle Plugin Tests ĊĠĠĠ Ġ@ DisplayName (" Android : ĠKotlin Ġtest Ġsingle Ġdependency Ġin Ġunit Ġtests ") ĊĠĠĠ Ġ@ Gradle Test ĊĠĠĠ Ġfun Ġkotlin Test Single Dependency Android UnitTests ( gradle Version : ĠGradle Version ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Android Library Kotlin Project ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgradle Version , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Options Ġ= Ġdefault Build Options . copy ( android Version Ġ= ĠTest Versions . AG P . AG P _ 4 2 ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Kotlin Test Dependency ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" test Implementation "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Debug UnitTest Kotlin " Ġto ĠlistOf (" kotlin - test - junit "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Release UnitTest Kotlin " Ġto ĠlistOf (" kotlin - test - junit ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Gradle Plugin Tests ĊĠĠĠ Ġ@ DisplayName (" Android : ĠKotlin Ġtest Ġsingle Ġdependency Ġin Ġui Ġtests ") ĊĠĠĠ Ġ@ Gradle Test ĊĠĠĠ Ġfun Ġkotlin Test Single Dependency Android Ui Tests ( gradle Version : ĠGradle Version ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Android Library Kotlin Project ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgradle Version , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Options Ġ= Ġdefault Build Options . copy ( android Version Ġ= ĠTest Versions . AG P . AG P _ 4 2 ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Kotlin Test Dependency ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" android Test Implementation "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" compile Debug Android Test Kotlin " Ġto ĠlistOf (" kotlin - test - junit ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Gradle Plugin Tests ĊĠĠĠ Ġ@ DisplayName (" JVM : ĠKotlin Ġtest Ġsingle Ġdependency ") ĊĠĠĠ Ġ@ Gradle Test ĊĠĠĠ Ġfun Ġkotlin Test Single Dependency Jvm ( gradle Version : ĠGradle Version ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject (" simple Project ", Ġgradle Version ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Kotlin Test Dependency ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" test Implementation "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" compile Test Kotlin " Ġto ĠlistOf (" kotlin - test - testng ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Js Gradle Plugin Tests ĊĠĠĠ Ġ@ DisplayName (" JS : ĠKotlin Ġtest Ġsingle Ġdependency ") ĊĠĠĠ Ġ@ Gradle Test ĊĠĠĠ Ġfun Ġkotlin Test Single Dependency Js ( gradle Version : ĠGradle Version ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" kotlin - js - plugin - project ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgradle Version , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Options Ġ= Ġdefault Build Options . copy ( warning Mode Ġ= ĠWarning Mode . Summary ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Kotlin Test Dependency ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" test Implementation "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" compile Test Kotlin Js " Ġto ĠlistOf (" kotlin - test - js ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Build Gradle K ts Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ M pp Gradle Plugin Tests ĊĠĠĠ Ġ@ DisplayName (" MP P : ĠKotlin Ġtest Ġsingle Ġdependency Ġin Ġcommon ") ĊĠĠĠ Ġ@ Gradle Test ĊĠĠĠ Ġfun Ġkotlin Test Single Dependency M pp Common ( gradle Version : ĠGradle Version ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject (" jvm - and - js - h mpp ", Ġgradle Version ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Kotlin Test Dependency ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" common Test Implementation "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Test Kotlin Jvm " Ġto ĠlistOf (" kotlin - test - junit "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Test Kotlin Js " Ġto ĠlistOf (" kotlin - test - js ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" common Test Implementation Dependencies Metadata " Ġto ĠlistOf (" kotlin - test - common ", Ġ" kotlin - test - annotations - common "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" common Test Api Dependencies Metadata " Ġto ĠlistOf (" ! kotlin - test - common ", Ġ"! kotlin - test - annotations - common "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Build Gradle K ts Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ M pp Gradle Plugin Tests ĊĠĠĠ Ġ@ DisplayName (" MP P : ĠKotlin Ġtest Ġsingle Ġdependency Ġin ĠJVM Ġand ĠJS Ġvariants ") ĊĠĠĠ Ġ@ Gradle Test ĊĠĠĠ Ġfun Ġkotlin Test Single Dependency M pp Jvm Js ( gradle Version : ĠGradle Version ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject (" jvm - and - js - h mpp ", Ġgradle Version ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Kotlin Test Dependency ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" jvm And Js Test Api ", Ġ" jvm And Js Test Compile Only "), Ġ// Ġadd Ġto Ġthe Ġintermediate Ġsource Ġset , Ġand Ġto Ġtwo Ġscopes ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Test Kotlin Jvm " Ġto ĠlistOf (" kotlin - test - junit "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Test Kotlin Js " Ġto ĠlistOf (" kotlin - test - js ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" common Test Api Dependencies Metadata " Ġto ĠlistOf (" ! kotlin - test - common "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" common Test Compile Only Dependencies Metadata " Ġto ĠlistOf (" ! kotlin - test - common "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" jvm And Js Test Api Dependencies Metadata " Ġto ĠlistOf (" kotlin - test - common "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" jvm And Js Test Compile Only Dependencies Metadata " Ġto ĠlistOf (" kotlin - test - common "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" jvm And Js Test Implementation Dependencies Metadata " Ġto ĠlistOf (" ! kotlin - test - common "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Build Gradle K ts Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ M pp Gradle Plugin Tests ĊĠĠĠ Ġ@ DisplayName (" MP P Ġ( K TI J - 6 0 9 8 ): Ġin Ġsingle Ġplatform Ġproject Ġcommon Ġmetadata Ġconfigurations Ġresolve Ġthe Ġframework - specific Ġdependency Ġ") ĊĠĠĠ Ġ@ Gradle Test ĊĠĠĠ Ġfun Ġkotlin Test Single Dependency M pp Common Single Platform ( gradle Version : ĠGradle Version ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject (" jvm - and - js - h mpp ", Ġgradle Version ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Kotlin Test Dependency ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" common Test Implementation "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Test Kotlin Jvm " Ġto ĠlistOf (" kotlin - test - junit "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" common Test Implementation Dependencies Metadata " Ġto ĠlistOf (" kotlin - test - common ", Ġ" kotlin - test - annotations - common ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Build Gradle K ts Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Gradle Plugin Tests ĊĠĠĠ Ġ@ DisplayName (" JVM : Ġtest Ġframework Ġvariant Ġproper Ġselection ") ĊĠĠĠ Ġ@ Gradle Test Versions ĊĠĠĠ Ġ@ Parameterized Test ( name Ġ= Ġ"{ 1 } Ġwith Ġ{ 0 }: Ġ{ displayName }") ĊĠĠĠ Ġ@ Arguments Source ( Gradle And Test Frameworks Arguments Provider :: class ) ĊĠĠĠ Ġfun Ġtest Framework Selection Jvm ( ĊĠĠĠĠĠĠĠ Ġgradle Version : ĠGradle Version , ĊĠĠĠĠĠĠĠ Ġtest Framework : ĠPair < String , ĠString > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject (" simple Project ", Ġgradle Version ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove Dependencies ( build Gradle ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Gradle . append Text (""" ${ '\ n '} dependencies Ġ{ Ġ" test Implementation " ("$ kotlin Test Multi platform Dependency ") Ġ} """) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Gradle . append Text ("\ n ( tasks . get ByName (\" test \") Ġas ĠTest ). ${ test Framework . first }") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Module Ġ= Ġ" kotlin - test -${ test Framework . second }- " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Task Compile Classpath ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Test Kotlin ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( expected Module ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Frameworks . map Ġ{ Ġ" kotlin - test -" Ġ+ Ġit . second Ġ+ Ġ"-" Ġ} Ġ- Ġexpected Module ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ M pp Gradle Plugin Tests ĊĠĠĠ Ġ@ DisplayName (" MP P Ġcommon : Ġtest Ġframework Ġvariant Ġproper Ġselection ") ĊĠĠĠ Ġ@ Gradle Test Versions ĊĠĠĠ Ġ@ Parameterized Test ( name Ġ= Ġ"{ 1 } Ġwith Ġ{ 0 }: Ġ{ displayName }") ĊĠĠĠ Ġ@ Arguments Source ( Gradle And Test Frameworks Arguments Provider :: class ) ĊĠĠĠ Ġfun Ġtest Framework Selection M pp Jvm ( ĊĠĠĠĠĠĠĠ Ġgradle Version : ĠGradle Version , ĊĠĠĠĠĠĠĠ Ġtest Framework : ĠPair < String , ĠString > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject (" jvm - and - js - h mpp ", Ġgradle Version ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove Dependencies ( build Gradle K ts ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Gradle K ts . append Text (""" ${ '\ n '} dependencies Ġ{ Ġ" jvm And Js Test Implementation " ("$ kotlin Test Multi platform Dependency ") Ġ} """) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Gradle K ts . append Text ("\ n ( tasks . get ByName (\" jvm Test \") Ġas ĠTest ). ${ test Framework . first }") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Module Ġ= Ġ" kotlin - test -${ test Framework . second }- " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Task Compile Classpath ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Test Kotlin Jvm ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( expected Module ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Frameworks . map Ġ{ Ġ" kotlin - test -" Ġ+ Ġit . second Ġ+ Ġ"-" Ġ} Ġ- Ġexpected Module , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Build Gradle K ts Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ M pp Gradle Plugin Tests ĊĠĠĠ Ġ@ DisplayName (" MP P Ġj vm : Ġtest Ġframework Ġvariant Ġproper Ġselection ") ĊĠĠĠ Ġ@ Gradle Test Versions ĊĠĠĠ Ġ@ Parameterized Test ( name Ġ= Ġ"{ 1 } Ġwith Ġ{ 0 }: Ġ{ displayName }") ĊĠĠĠ Ġ@ Arguments Source ( Gradle And Test Frameworks Arguments Provider :: class ) ĊĠĠĠ Ġfun Ġtest Framework Selection M pp Common ( ĊĠĠĠĠĠĠĠ Ġgradle Version : ĠGradle Version , ĊĠĠĠĠĠĠĠ Ġtest Framework : ĠPair < String , ĠString > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject (" jvm - and - js - h mpp ", Ġgradle Version ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove Dependencies ( build Gradle K ts ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Gradle K ts . append Text (""" ${ '\ n '} dependencies Ġ{ Ġ" common Test Implementation " ("$ kotlin Test Multi platform Dependency ") Ġ} """) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Gradle K ts . append Text ("\ n ( tasks . get ByName (\" jvm Test \") Ġas ĠTest ). ${ test Framework . first }") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Module Ġ= Ġ" kotlin - test -${ test Framework . second }- " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Task Compile Classpath ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Test Kotlin Jvm ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( expected Module ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Frameworks . map Ġ{ Ġ" kotlin - test -" Ġ+ Ġit . second Ġ+ Ġ"-" Ġ} Ġ- Ġexpected Module , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Build Gradle K ts Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Gradle Plugin Tests ĊĠĠĠ Ġ@ DisplayName (" Possible Ġto Ġremove Ġ' kotlin - test ' Ġdependency Ġfrom Ġconfiguration ") ĊĠĠĠ Ġ@ Gradle Test ĊĠĠĠ Ġfun Ġtest Remove Kotlin Test Dependency ( gradle Version : ĠGradle Version ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject (" simple Project ", Ġgradle Version ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove Dependencies ( build Gradle ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Gradle . append Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ Ġtest Implementation ("$ kotlin Test Multi platform Dependency ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfigurations . get ByName (" test Implementation "). dependencies . removeAll Ġ{ Ġit . name Ġ== Ġ" kotlin - test " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Task Compile Classpath (" compile Test Kotlin ", Ġcheck Modules NotIn Classpath Ġ= ĠlistOf (" kotlin - test ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAdd Ġit Ġback Ġafter Ġremoval : ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Gradle . append Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ Ġtest Implementation ("$ kotlin Test Multi platform Dependency ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Task Compile Classpath (" compile Test Kotlin ", Ġcheck Modules In Classpath Ġ= ĠlistOf (" kotlin - test ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Gradle Plugin Tests ĊĠĠĠ Ġ@ DisplayName (" core Libraries Version Ġoverride Ġdefault Ġversion ") ĊĠĠĠ Ġ@ Gradle Test ĊĠĠĠ Ġfun Ġtest Core Library Versions Dsl ( gradle Version : ĠGradle Version ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject (" simple Project ", Ġgradle Version ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove Dependencies ( build Gradle ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcustom Version Ġ= ĠTest Versions . Kotlin . ST ABLE _ RELEASE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Gradle . append Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin . core Libraries Version Ġ= Ġ"$ custom Version " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Implementation (" org . jetbrains . kotlin : kotlin - reflect ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Implementation (" org . jetbrains . kotlin : kotlin - test ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest . use JUnit () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Task Compile Classpath ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" compile Test Kotlin ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" kotlin - stdlib -", Ġ" kotlin - reflect -", Ġ" kotlin - test - "). map Ġ{ Ġit Ġ+ Ġcustom Version Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Gradle Plugin Tests ĊĠĠĠ Ġ@ DisplayName (" No Ġfailure Ġif Ġconfiguration Ġis Ġobserved ") ĊĠĠĠ Ġ@ Gradle Test ĊĠĠĠ Ġfun Ġtest No Failure If Configuration Is Ob served ( gradle Version : ĠGradle Version ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject (" simple Project ", Ġgradle Version ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove Dependencies ( build Gradle ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Gradle . modify Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// language = Gro ovy ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ$ it ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfigurations Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi Test ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi . extends From ( api Test ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi Test (" org . jetbrains . kotlin : kotlin - reflect ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( configurations . api Test . incoming . resolution Result . all Dependencies ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( configurations . api Test . incoming . dependencies . toList ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Task Compile Classpath (" compile Kotlin ", ĠlistOf (" kotlin - reflect ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠTest Project . assert Kotlin Test Dependency ( ĊĠĠĠĠĠĠĠ Ġconfigurations ToAdd Dependency : ĠList < String >, ĊĠĠĠĠĠĠĠ Ġclasspath Elements Expected By Task : ĠMap < String , ĠList < String >>, ĊĠĠĠĠĠĠĠ Ġfiles Expected By Configuration : ĠMap < String , ĠList < String >> Ġ= Ġempty Map (), ĊĠĠĠĠĠĠĠ Ġis Build Gradle K ts : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuild File Ġ= Ġif Ġ( is Build Gradle K ts ) Ġbuild Gradle K ts Ġelse Ġbuild Gradle ĊĠĠĠĠĠĠĠ Ġremove Dependencies ( build File ) ĊĠĠĠĠĠĠĠ Ġbuild File . append Text ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfigurations ToAdd Dependency . join ToString ("\ n ", Ġ"\ n ") Ġ{ Ġconfiguration Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n dependencies Ġ{ Ġ\"$ configuration \" (\" $ kotlin Test Multi platform Dependency \") Ġ}" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġclasspath Elements Expected By Task . forEach Ġ{ Ġ( task , Ġexpected ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( not In Classpath , Ġin Classpath ) Ġ= Ġexpected . partition Ġ{ Ġit . startsWith (" !") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Task Compile Classpath ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġin Classpath , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnot In Classpath . map Ġ{ Ġit . remove Prefix (" !") Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Build Gradle K ts Ġ= Ġis Build Gradle K ts ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfiles Expected By Configuration . forEach Ġ{ Ġ( configuration , Ġexpected ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( not In Items , Ġin Items ) Ġ= Ġexpected . partition Ġ{ Ġit . startsWith (" !") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Configuration Content ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġin Items , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnot In Items . map Ġ{ Ġit . remove Prefix (" !") Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Build Gradle K ts ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠTest Project . check Configuration Content ( ĊĠĠĠĠĠĠĠ Ġconfiguration Name : ĠString , ĊĠĠĠĠĠĠĠ Ġcheck Modules In Resolution Result : ĠList < String > Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠ Ġcheck Modules NotIn Resolution Result : ĠList < String > Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠ Ġis Build Gradle K ts : ĠBoolean ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexpression Ġ= Ġ""" configurations [" $ configuration Name "]. toList () """ ĊĠĠĠĠĠĠĠ Ġcheck Print ed Items ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpression , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Modules In Resolution Result , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Modules NotIn Resolution Result , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Build Gradle K ts ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠTest Project . check Task Compile Classpath ( ĊĠĠĠĠĠĠĠ Ġtask Path : ĠString , ĊĠĠĠĠĠĠĠ Ġcheck Modules In Classpath : ĠList < String > Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠ Ġcheck Modules NotIn Classpath : ĠList < String > Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠ Ġis Native : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġis Build Gradle K ts : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsub project Ġ= Ġtask Path . substring Before Last (": "). take If Ġ{ Ġit . isNotEmpty () Ġ&& Ġit Ġ!= Ġtask Path Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtask Name Ġ= Ġtask Path . remove Prefix ( sub project . or Empty ()) ĊĠĠĠĠĠĠĠ Ġval Ġtask Class Ġ= Ġif Ġ( is Native ) Ġ" org . jetbrains . kotlin . gradle . tasks . Abstract Kotlin Native Compile < *, Ġ* >" Ġelse Ġ" Abstract Compile " ĊĠĠĠĠĠĠĠ Ġval Ġexpression Ġ= Ġ""" ( tasks . get ByName ("$ task Name ") Ġas Ġ$ task Class ). ${ if Ġ( is Native ) Ġ" libraries " Ġelse Ġ" classpath "} . toList () """ ĊĠĠĠĠĠĠĠ Ġcheck Print ed Items ( sub project , Ġexpression , Ġcheck Modules In Classpath , Ġcheck Modules NotIn Classpath , Ġis Build Gradle K ts ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠTest Project . check Print ed Items ( ĊĠĠĠĠĠĠĠ Ġsub project : ĠString ?, ĊĠĠĠĠĠĠĠ Ġitems Expression : ĠString , ĊĠĠĠĠĠĠĠ Ġcheck Any Items Contains : ĠList < String >, ĊĠĠĠĠĠĠĠ Ġcheck No Item Contains : ĠList < String >, ĊĠĠĠĠĠĠĠ Ġis Build Gradle K ts : ĠBoolean ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprinting Task Name Ġ= Ġ" print Items ${ UUID . randomUUID () }" ĊĠĠĠĠĠĠĠ Ġval Ġbuild File Ġ= Ġif Ġ( sub project Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsub Project ( sub project ). run Ġ{ Ġif Ġ( is Build Gradle K ts ) Ġbuild Gradle K ts Ġelse Ġbuild Gradle Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Build Gradle K ts ) Ġbuild Gradle K ts Ġelse Ġbuild Gradle ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbuild File . append Text ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtasks . create ("$ printing Task Name ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Last Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" ### $ printing Task Name Ġ" Ġ+ Ġ$ items Expression ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġbuild ("${ sub project ?. prepend Indent (": "). or Empty ()} :$ printing Task Name ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitems Line Ġ= Ġoutput . lines (). single Ġ{ Ġ" ### $ printing Task Name " Ġin Ġit Ġ}. substring After ( printing Task Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitems Ġ= Ġitems Line . remove Sur rounding ("[ ", Ġ"] "). split (", Ġ"). toSet () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Any Items Contains . forEach Ġ{ Ġpattern Ġ-> ĠassertTrue Ġ{ Ġitems . any Ġ{ Ġpattern Ġin Ġit Ġ} Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck No Item Contains . forEach Ġ{ Ġpattern Ġ-> ĠassertFalse Ġ{ Ġitems . any Ġ{ Ġpattern Ġin Ġit Ġ} Ġ} Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġremove Dependencies ( ĊĠĠĠĠĠĠĠ Ġbuild Gradle File : ĠPath ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild Gradle File . modify Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . lines () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġline Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" stdlib " Ġ! in Ġline Ġ&& Ġ" kotlin (\" test " Ġ! in Ġline Ġ&& Ġ" kotlin - test " Ġ! in Ġline ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ToString ("\ n ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġclass ĠGradle And Test Frameworks Arguments Provider Ġ: ĠGradle Arguments Provider () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġprovide Arguments ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext : ĠExtension Context ĊĠĠĠĠĠĠĠ Ġ): ĠStream < out ĠArguments > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgradle Versions Ġ= Ġsuper . provide Arguments ( context ). map Ġ{ Ġit . get (). first () Ġas ĠGradle Version Ġ}. toList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtest Frameworks ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġtest Framework Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgradle Versions . map Ġ{ Ġit Ġto Ġtest Framework Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArguments . of ( it . first , Ġit . second ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Stream () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval Ġkotlin Test Multi platform Dependency Ġ= Ġ" org . jetbrains . kotlin : kotlin - test " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtest Frameworks Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" use JUnit ()" Ġto Ġ" junit ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" use Test NG ()" Ġto Ġ" testng ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" use JUnit Platform ()" Ġto Ġ" junit 5 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }