/* Ċ Ġ* Ġ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 . tools . idea . gradle . dsl . model . ext Ċ Ċ import Ġcom . android . tools . idea . gradle . dsl . Test FileName Ċ import Ġcom . android . tools . idea . gradle . dsl . api . Gradle File Model Ċ import Ġcom . android . tools . idea . gradle . dsl . api . ext . Gradle Property Model . BOOLEAN _ TYPE Ċ import Ġcom . android . tools . idea . gradle . dsl . api . ext . Gradle Property Model . INTEGER _ TYPE Ċ import Ġcom . android . tools . idea . gradle . dsl . api . ext . Gradle Property Model . STRING _ TYPE Ċ import Ġcom . android . tools . idea . gradle . dsl . api . ext . Gradle Property Model . ValueType . BOOLEAN Ċ import Ġcom . android . tools . idea . gradle . dsl . api . ext . Gradle Property Model . ValueType . INTEGER Ċ import Ġcom . android . tools . idea . gradle . dsl . api . ext . Gradle Property Model . ValueType . REFERENCE Ċ import Ġcom . android . tools . idea . gradle . dsl . api . ext . Gradle Property Model . ValueType . STRING Ċ import Ġcom . android . tools . idea . gradle . dsl . api . ext . PropertyType . DER IVED Ċ import Ġcom . android . tools . idea . gradle . dsl . api . ext . PropertyType . REG ULAR Ċ import Ġcom . android . tools . idea . gradle . dsl . api . ext . PropertyType . VARIABLE Ċ import Ġcom . android . tools . idea . gradle . dsl . api . ext . Reference To Ċ import Ġcom . android . tools . idea . gradle . dsl . api . util . Gradle Dsl Model Ċ import Ġcom . android . tools . idea . gradle . dsl . model . Gradle Dsl Block Model Ċ import Ġcom . android . tools . idea . gradle . dsl . model . Gradle File Model Impl Ċ import Ġcom . android . tools . idea . gradle . dsl . model . Gradle File Model TestCase Ċ import Ġcom . android . tools . idea . gradle . dsl . parser . elements . Gradle Dsl Block Element Ċ import Ġcom . android . tools . idea . gradle . dsl . parser . elements . Gradle Dsl Element Ċ import Ġcom . android . tools . idea . gradle . dsl . parser . elements . Gradle Dsl Literal Ċ import Ġcom . android . tools . idea . gradle . dsl . parser . elements . Gradle Name Element Ċ import Ġcom . android . tools . idea . gradle . dsl . parser . elements . Gradle Properties Dsl Element Ċ import Ġorg . jetbrains . annotations . System Dependent Ċ import Ġorg . junit . Ass ume Ċ import Ġorg . junit . Ass ume . assume True Ċ import Ġorg . junit . Ignore Ċ import Ġorg . junit . Test Ċ import Ġjava . io . File Ċ Ċ class ĠProperty Order Test Ġ: ĠGradle File Model TestCase () Ġ{ ĊĠ Ġprivate Ġfun ĠGradle Dsl Model . dsl Element (): ĠGradle Properties Dsl Element Ġ{ ĊĠĠĠ Ġassert ( this Ġis ĠGradle Dsl Block Model ) ĊĠĠĠ Ġval Ġfield Ġ= ĠGradle Dsl Block Model :: class . java . getDeclared Field (" my Dsl Element ") ĊĠĠĠ Ġfield . is Accessible Ġ= Ġtrue ĊĠĠĠ Ġreturn Ġfield . get ( this ) Ġas ĠGradle Properties Dsl Element ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun ĠGradle File Model . dsl Element (): ĠGradle Properties Dsl Element Ġ{ ĊĠĠĠ Ġassert ( this Ġis ĠGradle File Model Impl ) ĊĠĠĠ Ġval Ġfield Ġ= ĠGradle File Model Impl :: class . java . getDeclared Field (" my Gradle Dsl File ") ĊĠĠĠ Ġfield . is Accessible Ġ= Ġtrue ĊĠĠĠ Ġreturn Ġfield . get ( this ) Ġas ĠGradle Properties Dsl Element ĊĠ Ġ} ĊĊĠ Ġprivate Ġclass ĠTest Block Element ( parent : ĠGradle Dsl Element , Ġname : ĠString ) Ġ: ĠGradle Dsl Block Element ( parent , ĠGradle Name Element . create ( name )) ĊĊĠ Ġprivate Ġfun Ġnew Literal ( parent : ĠGradle Dsl Element , Ġname : ĠString , Ġvalue : ĠAny ): ĠGradle Dsl Literal Ġ{ ĊĠĠĠ Ġval Ġnew Element Ġ= ĠGradle Dsl Literal ( parent , ĠGradle Name Element . create ( name )) ĊĠĠĠ Ġnew Element . setValue ( value ) ĊĠĠĠ Ġnew Element . set Use Assignment ( true ) ĊĠĠĠ Ġnew Element . elementType Ġ= ĠREG ULAR ĊĠĠĠ Ġreturn Ġnew Element ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġnew Block ( parent : ĠGradle Dsl Element , Ġname : ĠString ): ĠGradle Properties Dsl Element Ġ{ ĊĠĠĠ Ġreturn ĠTest Block Element ( parent , Ġname ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Add Properties To Empty () Ġ{ ĊĠĠĠ ĠwriteTo Build File ("") ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĊĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠ Ġval Ġfirst Property Ġ= Ġbuild Model . ext (). find Property (" prop 1 ") ĊĠĠĠĠĠ Ġfirst Property . setValue ( 1 ) ĊĠĠĠĠĠ Ġval Ġsecond Property Ġ= Ġbuild Model . ext (). find Property (" prop 2 ") ĊĠĠĠĠĠ Ġsecond Property . setValue (" 2 ") ĊĠĠĠĠĠ Ġval Ġthird Property Ġ= Ġbuild Model . ext (). find Property (" prop 3 ") ĊĠĠĠĠĠ Ġthird Property . convertTo Empty List (). add List Value (). setValue ( 3 ) ĊĠĠĠĠĠ Ġval Ġforth Property Ġ= Ġbuild Model . ext (). find Property (" prop 4 ") ĊĠĠĠĠĠ Ġforth Property . convertTo Empty Map (). getMap Value (" key "). setValue (" 4 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġverify () Ġ{ ĊĠĠĠĠĠ Ġval Ġfirst Property Ġ= Ġbuild Model . ext (). find Property (" prop 1 ") ĊĠĠĠĠĠ Ġverify Property Model ( first Property , ĠINTEGER _ TYPE , Ġ 1 , ĠINTEGER , ĠREG ULAR , Ġ 0 , Ġ" prop 1 ") ĊĠĠĠĠĠ Ġval Ġsecond Property Ġ= Ġbuild Model . ext (). find Property (" prop 2 ") ĊĠĠĠĠĠ Ġverify Property Model ( second Property , ĠSTRING _ TYPE , Ġ" 2 ", ĠSTRING , ĠREG ULAR , Ġ 0 , Ġ" prop 2 ") ĊĠĠĠĠĠ Ġval Ġthird Property Ġ= Ġbuild Model . ext (). find Property (" prop 3 ") ĊĠĠĠĠĠ Ġverify List Property ( third Property , ĠlistOf ( 3 ), ĠREG ULAR , Ġ 0 , Ġ" prop 3 ") ĊĠĠĠĠĠ Ġval Ġforth Property Ġ= Ġbuild Model . ext (). find Property (" prop 4 ") ĊĠĠĠĠĠ Ġverify Map Property ( for th Property , Ġmap Of (" key " Ġto Ġ" 4 "), ĠREG ULAR , Ġ 0 , Ġ" prop 4 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġverify () ĊĊĠĠĠ Ġapply Changes And Re parse ( build Model ) ĊĊĠĠĠ Ġverify File Contents ( my Build File , ĠTest File . ADD _ PROPERTIES _ TO _ EMPTY _ EXPECTED ) ĊĠĠĠ Ġverify () ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Create Property Middle () Ġ{ ĊĠĠĠ ĠwriteTo Build File ( Test File . CREATE _ PROPERTY _ MIDDLE ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĊĠĠĠ Ġval Ġd sl Element Ġ= Ġbuild Model . ext (). dsl Element () ĊĠĠĠ Ġd sl Element . add New ElementAt ( 1 , Ġnew Literal ( dsl Element , Ġ" prop 2 ", Ġ 2 )) ĊĊĠĠĠ Ġfun Ġverify () Ġ{ ĊĠĠĠĠĠ Ġval Ġfirst Model Ġ= Ġbuild Model . ext (). find Property (" prop 1 ") ĊĠĠĠĠĠ Ġverify Property Model ( first Model , ĠINTEGER _ TYPE , Ġ 1 , ĠINTEGER , ĠREG ULAR , Ġ 0 , Ġ" prop 1 ") ĊĠĠĠĠĠ Ġval Ġsecond Model Ġ= Ġbuild Model . ext (). find Property (" prop 2 ") ĊĠĠĠĠĠ Ġverify Property Model ( second Model , ĠINTEGER _ TYPE , Ġ 2 , ĠINTEGER , ĠREG ULAR , Ġ 0 , Ġ" prop 2 ") ĊĠĠĠĠĠ Ġval Ġthird Model Ġ= Ġbuild Model . ext (). find Property (" prop 3 ") ĊĠĠĠĠĠ Ġverify Property Model ( third Model , ĠINTEGER _ TYPE , Ġ 3 , ĠINTEGER , ĠREG ULAR , Ġ 0 , Ġ" prop 3 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġverify () ĊĊĠĠĠ Ġapply Changes And Re parse ( build Model ) ĊĊĠĠĠ Ġverify File Contents ( my Build File , ĠTest File . CREATE _ PROPERTY _ MIDDLE _ EXPECTED ) ĊĠĠĠ Ġverify () ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Create Property Start And End () Ġ{ ĊĠĠĠ ĠwriteTo Build File ( Test File . CREATE _ PROPERTY _ START _ AND _ END ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĊĠĠĠ Ġval Ġd sl Element Ġ= Ġbuild Model . ext (). dsl Element () ĊĠĠĠ Ġd sl Element . add New ElementAt ( 0 , Ġnew Literal ( dsl Element , Ġ" prop 1 ", Ġ" 1 ")) ĊĠĠĠ Ġd sl Element . add New ElementAt ( 4 , Ġnew Literal ( dsl Element , Ġ" prop 4 ", Ġ 4 )) ĊĊĠĠĠ Ġfun Ġverify () Ġ{ ĊĠĠĠĠĠ Ġval Ġfirst Model Ġ= Ġbuild Model . ext (). find Property (" prop 1 ") ĊĠĠĠĠĠ Ġverify Property Model ( first Model , ĠSTRING _ TYPE , Ġ" 1 ", ĠSTRING , ĠREG ULAR , Ġ 0 , Ġ" prop 1 ") ĊĠĠĠĠĠ Ġval Ġsecond Model Ġ= Ġbuild Model . ext (). find Property (" prop 2 ") ĊĠĠĠĠĠ Ġverify Property Model ( second Model , ĠINTEGER _ TYPE , Ġ 2 , ĠINTEGER , ĠREG ULAR , Ġ 0 , Ġ" prop 2 ") ĊĠĠĠĠĠ Ġval Ġthird Model Ġ= Ġbuild Model . ext (). find Property (" prop 3 ") ĊĠĠĠĠĠ Ġverify Property Model ( third Model , ĠINTEGER _ TYPE , Ġ 3 , ĠINTEGER , ĠREG ULAR , Ġ 0 , Ġ" prop 3 ") ĊĠĠĠĠĠ Ġval Ġforth Model Ġ= Ġbuild Model . ext (). find Property (" prop 4 ") ĊĠĠĠĠĠ Ġverify Property Model ( for th Model , ĠINTEGER _ TYPE , Ġ 4 , ĠINTEGER , ĠREG ULAR , Ġ 0 , Ġ" prop 4 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġverify () ĊĊĠĠĠ Ġapply Changes And Re parse ( build Model ) ĊĊĠĠĠ Ġverify File Contents ( my Build File , ĠTest File . CREATE _ PROPERTY _ START _ AND _ END _ EXPECTED ) ĊĠĠĠ Ġverify () ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Create Block Element () Ġ{ ĊĠĠĠ ĠwriteTo Build File ( Test File . CREATE _ BLOCK _ ELEMENT ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĠĠĠ Ġval Ġd sl Element Ġ= Ġbuild Model . ext (). dsl Element () ĊĠĠĠ Ġval Ġtop Block Ġ= Ġnew Block ( dsl Element , Ġ" top Block ") ĊĠĠĠ Ġ// ĠAdding Ġat Ġan Ġindex Ġthat Ġdoesn 't Ġexist Ġshould Ġjust Ġplace Ġthe Ġelement Ġat Ġthe Ġend . ĊĠĠĠ Ġtop Block . add New ElementAt ( 4 0 0 0 0 0 , Ġnew Literal ( top Block , Ġ" prop 2 ", Ġtrue )) ĊĠĠĠ Ġtop Block . add New ElementAt ( 1 , Ġnew Literal ( top Block , Ġ" prop 3 ", Ġfalse )) ĊĠĠĠ Ġtop Block . add New ElementAt ( 0 , Ġnew Literal ( top Block , Ġ" prop 1 ", Ġ 4 2 )) ĊĊĠĠĠ Ġval Ġbottom Block Ġ= Ġnew Block ( dsl Element , Ġ" bottom Block ") ĊĠĠĠ Ġ// ĠUsing Ġa Ġnegative Ġindex Ġwill Ġadd Ġthe Ġelement Ġto Ġthe Ġstart Ġof Ġthe Ġlist . ĊĠĠĠ Ġbottom Block . add New ElementAt (- 1 , Ġnew Literal ( bottom Block , Ġ" prop 4 ", Ġ" hello ")) ĊĠĠĠ Ġbottom Block . add New ElementAt ( 1 , Ġnew Literal ( bottom Block , Ġ" prop 6 ", Ġfalse )) ĊĠĠĠ Ġbottom Block . add New ElementAt ( 1 , Ġnew Literal ( bottom Block , Ġ" prop 5 ", Ġtrue )) ĊĊĠĠĠ Ġval Ġmiddle Block Ġ= Ġnew Block ( dsl Element , Ġ" middle Block ") ĊĠĠĠ Ġmiddle Block . add New ElementAt ( 0 , Ġnew Literal ( middle Block , Ġ" greeting ", Ġ" good bye Ġ:) ")) ĊĊĠĠĠ Ġd sl Element . add New ElementAt ( 0 , Ġtop Block ) ĊĠĠĠ Ġd sl Element . add New ElementAt ( 2 , Ġbottom Block ) ĊĠĠĠ Ġd sl Element . add New ElementAt ( 1 , Ġmiddle Block ) ĊĊĠĠĠ Ġapply Changes And Re parse ( build Model ) ĊĠĠĠ Ġverify File Contents ( my Build File , ĠTest File . CREATE _ BLOCK _ ELEMENT _ EXPECTED ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Move Block Statement () Ġ{ ĊĠĠĠ Ġassume True (" no Ġext Ġblock Ġin ĠKotlin Script ", Ġ! is Kotlin Script ) Ġ// ĠTODO ( b / 1 5 4 9 0 2 4 0 6 ) ĊĠĠĠ ĠwriteTo Build File ( Test File . MOVE _ BLOCK _ STATE MENT ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĠĠĠ Ġval Ġext Element Ġ= Ġbuild Model . ext (). dsl Element () ĊĠĠĠ Ġval Ġfile Element Ġ= Ġbuild Model . dsl Element () ĊĊĠĠĠ Ġfile Element . move Element To ( 0 , Ġext Element ) ĊĊĠĠĠ Ġapply Changes And Re parse ( build Model ) ĊĊĠĠĠ Ġverify File Contents ( my Build File , ĠTest File . MOVE _ BLOCK _ STATE MENT _ EXPECTED ) ĊĊĠĠĠ Ġ// ĠCheck Ġthat Ġthe Ġbuild Ġmodel Ġstill Ġworks . ĊĠĠĠ Ġval Ġext Ġ= Ġbuild Model . ext () ĊĠĠĠ Ġval Ġext Properties Ġ= Ġext . declared Properties ĊĠĠĠ Ġassert Size ( 2 , Ġext Properties ) ĊĠĠĠ Ġverify Property Model ( ext Properties [ 0 ], ĠSTRING _ TYPE , Ġ" hello ", ĠSTRING , ĠREG ULAR , Ġ 0 , Ġ" prop 1 ") ĊĠĠĠ Ġverify Property Model ( ext Properties [ 1 ], ĠBOOLEAN _ TYPE , Ġtrue , ĠBOOLEAN , ĠREG ULAR , Ġ 0 , Ġ" prop 2 ") ĊĠĠĠ Ġval Ġdebug Ġ= Ġbuild Model . android (). build Types ()[ 0 ] !! ĊĠĠĠ Ġval Ġdebug Properties Ġ= Ġdebug . declared Properties ĊĠĠĠ Ġassert Size ( 1 , Ġdebug Properties ) ĊĠĠĠ Ġverify Property Model ( debug Properties [ 0 ], ĠSTRING _ TYPE , Ġ" s ne aky ", ĠREFER ENCE , ĠVARIABLE , Ġ 0 , Ġ" var 1 ") ĊĊĠĠĠ Ġ// ĠDelete Ġone Ġand Ġedit Ġone Ġto Ġmake Ġsure Ġthe ĠPsi Elements Ġare Ġstill Ġvalid Ġfor Ġthese Ġoperations . ĊĠĠĠ Ġext Properties [ 0 ]. delete () ĊĠĠĠ Ġext Properties [ 1 ]. setValue ( 4 3 ) ĊĠĠĠ Ġext Properties [ 1 ]. rename (" prop ") ĊĊĠĠĠ Ġval Ġnew Ext Properties Ġ= Ġext . declared Properties ĊĠĠĠ Ġassert Size ( 1 , Ġnew Ext Properties ) ĊĠĠĠ Ġverify Property Model ( new Ext Properties [ 0 ], ĠINTEGER _ TYPE , Ġ 4 3 , ĠINTEGER , ĠREG ULAR , Ġ 0 , Ġ" prop ") ĊĊĠĠĠ Ġapply Changes And Re parse ( build Model ) ĊĊĠĠĠ Ġ// ĠCheck Ġthe Ġresulting Ġfile Ġagain . ĊĠĠĠ Ġverify File Contents ( my Build File , ĠTest File . MOVE _ BLOCK _ STATE MENT _ EXPECTED _ TWO ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Move Basic Statement () Ġ{ ĊĠĠĠ Ġassume True (" no Ġext Ġblock Ġin ĠKotlin Script ", Ġ! is Kotlin Script ) Ġ// ĠTODO ( b / 1 5 4 9 0 2 4 0 6 ) ĊĠĠĠ ĠwriteTo Build File ( Test File . MOVE _ BASIC _ STATE MENT ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĠĠĠ Ġval Ġext Element Ġ= Ġbuild Model . ext (). dsl Element () ĊĠĠĠ Ġval Ġfile Element Ġ= Ġbuild Model . dsl Element () ĊĠĠĠ Ġval Ġext Element Map Ġ= Ġext Element . elements ĊĊĠĠĠ Ġ// ĠRe order Ġthe Ġelements Ġinside Ġthe Ġext Ġblock . ĊĠĠĠ Ġext Element . move Element To ( 0 , Ġext Element Map [" prop 2 "] !! ) ĊĠĠĠ Ġext Element . move Element To ( 2 , Ġext Element Map [" prop 1 "] !! ) ĊĠĠĠ Ġext Element . move Element To ( ext Element Map . size , Ġext Element Map [" var 3 "] !! ) ĊĊĠĠĠ Ġ// ĠMove Ġthe ĠExt Ġblock Ġto Ġthe Ġbottom Ġof Ġthe Ġfile . ĊĠĠĠ Ġfile Element . move Element To ( Int . MAX _ VALUE , Ġext Element ) ĊĊĠĠĠ Ġfun Ġverify () Ġ{ ĊĠĠĠĠĠ Ġval Ġfirst Model Ġ= Ġbuild Model . ext (). find Property (" prop 1 ") ĊĠĠĠĠĠ Ġverify Property Model ( first Model , ĠSTRING _ TYPE , Ġ" 3 ", ĠSTRING , ĠREG ULAR , Ġ 0 , Ġ" prop 1 ") ĊĠĠĠĠĠ Ġval Ġfirst Var Model Ġ= Ġbuild Model . ext (). find Property (" var 1 ") ĊĠĠĠĠĠ Ġverify Property Model ( first Var Model , ĠINTEGER _ TYPE , Ġ 2 , ĠINTEGER , ĠVARIABLE , Ġ 0 , Ġ" var 1 ") ĊĠĠĠĠĠ Ġval Ġsecond Model Ġ= Ġbuild Model . ext (). find Property (" prop 2 ") ĊĠĠĠĠĠ Ġverify List Property ( second Model , ĠlistOf ( 1 , Ġtrue , Ġ" 1 "), ĠREG ULAR , Ġ 0 , Ġ" prop 2 ") ĊĠĠĠĠĠ Ġval Ġsecond Var Model Ġ= Ġbuild Model . ext (). find Property (" var 2 ") ĊĠĠĠĠĠ Ġverify Property Model ( second Var Model , ĠSTRING _ TYPE , Ġ" var 1 ", ĠREFER ENCE , ĠVARIABLE , Ġ 1 , Ġ" var 2 ") ĊĠĠĠĠĠ Ġval Ġthird Var Model Ġ= Ġbuild Model . ext (). find Property (" var 3 ") ĊĠĠĠĠĠ Ġverify Map Property ( third Var Model , Ġmap Of (" key " Ġto Ġ 6 , Ġ" key 1 " Ġto Ġ" 7 "), ĠVARIABLE , Ġ 0 , Ġ" var 3 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġverify () ĊĊĠĠĠ Ġapply Changes And Re parse ( build Model ) ĊĊĠĠĠ Ġverify File Contents ( my Build File , ĠTest File . MOVE _ BASIC _ STATE MENT _ EXPECTED ) ĊĠĠĠ Ġverify () ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Create Then Move Block () Ġ{ ĊĠĠĠ ĠwriteTo Build File ( Test File . CREATE _ THEN _ MOVE _ BLOCK ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĊĠĠĠ Ġ// ĠCreate Ġa Ġproperty , Ġthis Ġwill Ġcreate Ġan Ġext Ġelement . ĊĠĠĠ Ġval Ġproperty Model Ġ= Ġbuild Model . ext (). find Property (" prop 1 ") ĊĠĠĠ Ġproperty Model . setValue ( true ) ĊĊĠĠĠ Ġ// ĠThen Ġmove Ġit Ġto Ġthe Ġtop Ġof Ġthe Ġfile . ĊĠĠĠ Ġval Ġext Element Ġ= Ġbuild Model . ext (). dsl Element () ĊĠĠĠ Ġval Ġfile Element Ġ= Ġbuild Model . dsl Element () ĊĠĠĠ Ġfile Element . move Element To ( 0 , Ġext Element ) ĊĊĠĠĠ Ġapply Changes And Re parse ( build Model ) ĊĊĠĠĠ Ġverify File Contents ( my Build File , ĠTest File . CREATE _ THEN _ MOVE _ BLOCK _ EXPECTED ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Create Then Move () Ġ{ ĊĠĠĠ ĠwriteTo Build File ( Test File . CREATE _ THEN _ MOVE ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĠĠĠ Ġval Ġext Element Ġ= Ġbuild Model . ext (). dsl Element () ĊĊĠĠĠ Ġ// ĠCreate Ġthree Ġproperties . ĊĠĠĠ Ġval Ġfirst Model Ġ= Ġbuild Model . ext (). find Property (" prop 1 ") ĊĠĠĠ Ġfirst Model . convertTo Empty Map () ĊĠĠĠ Ġfirst Model . getMap Value (" key "). setValue ( 1 ) ĊĠĠĠ Ġfirst Model . getMap Value (" key 1 "). setValue (" two ") ĊĠĠĠ Ġval Ġsecond Model Ġ= Ġbuild Model . ext (). find Property (" prop 2 ") ĊĠĠĠ Ġsecond Model . setValue ( 7 2 ) ĊĊĠĠĠ Ġ// ĠMove Ġthem Ġaround ĊĠĠĠ Ġval Ġelement Map Ġ= Ġext Element . elements ĊĠĠĠ Ġext Element . move Element To ( 0 , Ġelement Map [" prop 2 "] !! ) ĊĠĠĠ Ġ// ĠNote : ĠEven Ġthough Ġthis Ġis Ġeffectively Ġa Ġno - op , Ġa Ġmove Ġof Ġthe Ġproperty Ġstill Ġoccurs . ĊĠĠĠ Ġext Element . move Element To ( 1 , Ġelement Map [" prop 1 "] !! ) ĊĊĠĠĠ Ġapply Changes And Re parse ( build Model ) ĊĠĠĠ Ġverify File Contents ( my Build File , ĠTest File . CREATE _ THEN _ MOVE _ EXPECTED ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Edit Before Move () Ġ{ ĊĠĠĠ ĠwriteTo Build File ( Test File . EDIT _ BEFORE _ MOVE ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĊĠĠĠ Ġval Ġext Element Ġ= Ġbuild Model . ext (). dsl Element () ĊĊĠĠĠ Ġ// ĠEdit Ġthe Ġelements ĊĠĠĠ Ġval Ġfirst Model Ġ= Ġbuild Model . ext (). find Property (" prop 1 ") ĊĠĠĠ Ġfirst Model . convertTo Empty List (). add List Value (). setValue (" one ") ĊĠĠĠ Ġfirst Model . add List Value (). setValue (" two ") ĊĠĠĠ Ġfirst Model . add List Value (). setValue (" three ") ĊĠĠĠ Ġval Ġsecond Model Ġ= Ġbuild Model . ext (). find Property (" prop 3 ") ĊĠĠĠ Ġsecond Model . setValue ( true ) ĊĊĠĠĠ Ġ// ĠWe Ġneed Ġto Ġget Ġthe Ġmap Ġafter Ġsince Ġediting Ġthe Ġelements Ġwill Ġcause Ġit Ġto Ġchange . ĊĠĠĠ Ġval Ġext Element Map Ġ= Ġext Element . elements ĊĊĠĠĠ Ġ// ĠSwap Ġprop 1 Ġand Ġprop 3 ĊĠĠĠ Ġext Element . move Element To ( 3 , Ġext Element Map [" prop 1 "] !! ) ĊĠĠĠ Ġext Element . move Element To ( 0 , Ġext Element Map [" prop 3 "] !! ) ĊĊĠĠĠ Ġapply Changes And Re parse ( build Model ) ĊĠĠĠ Ġverify File Contents ( my Build File , ĠTest File . EDIT _ BEFORE _ MOVE _ EXPECTED ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Move Before Edit () Ġ{ ĊĠĠĠ ĠwriteTo Build File ( Test File . MOVE _ BEFORE _ EDIT ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĊĠĠĠ Ġval Ġext Element Ġ= Ġbuild Model . ext (). dsl Element () ĊĠĠĠ Ġval Ġext Element Map Ġ= Ġext Element . elements ĊĊĠĠĠ Ġ// ĠSwap Ġprop 1 Ġand Ġprop 3 ĊĠĠĠ Ġext Element . move Element To ( 3 , Ġext Element Map [" prop 1 "] !! ) ĊĠĠĠ Ġext Element . move Element To ( 0 , Ġext Element Map [" prop 3 "] !! ) ĊĊĠĠĠ Ġ// ĠEdit Ġthe Ġelements ĊĠĠĠ Ġval Ġfirst Model Ġ= Ġbuild Model . ext (). find Property (" prop 1 ") ĊĠĠĠ Ġfirst Model . convertTo Empty List (). add List Value (). setValue (" one ") ĊĠĠĠ Ġfirst Model . add List Value (). setValue (" two ") ĊĠĠĠ Ġfirst Model . add List Value (). setValue (" three ") ĊĠĠĠ Ġval Ġsecond Model Ġ= Ġbuild Model . ext (). find Property (" prop 3 ") ĊĠĠĠ Ġsecond Model . setValue ( true ) ĊĊĠĠĠ Ġapply Changes And Re parse ( build Model ) ĊĠĠĠ Ġverify File Contents ( my Build File , ĠTest File . MOVE _ BEFORE _ EDIT _ EXPECTED ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Move Comments In Block () Ġ{ ĊĠĠĠ Ġassume True (" no Ġext Ġblock Ġin ĠKotlin Script ", Ġ! is Kotlin Script ) Ġ// ĠTODO ( b / 1 5 4 9 0 2 4 0 6 ) ĊĠĠĠ ĠwriteTo Build File ( Test File . MOVE _ COMMENTS _ IN _ BLOCK ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĊĠĠĠ Ġval Ġfile Element Ġ= Ġbuild Model . dsl Element () ĊĠĠĠ Ġval Ġext Element Ġ= Ġbuild Model . ext (). dsl Element () ĊĊĠĠĠ Ġ// ĠMove Ġthe Ġext Ġblock Ġto Ġthe Ġtop ĊĠĠĠ Ġfile Element . move Element To ( 1 , Ġext Element ) ĊĊĠĠĠ Ġapply Changes And Re parse ( build Model ) ĊĠĠĠ Ġverify File Contents ( my Build File , ĠTest File . MOVE _ COMMENTS _ IN _ BLOCK _ EXPECTED ) ĊĠ Ġ} ĊĊĠ Ġ@ Ignore (" Comments Ġdon 't Ġget Ġmoved Ġwith Ġthe Ġline Ġthey Ġare Ġon ") ĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Move Basic With Comments () Ġ{ ĊĠĠĠ ĠwriteTo Build File ( Test File . MOVE _ BASIC _ WITH _ COMMENTS ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĠĠĠ Ġval Ġext Element Ġ= Ġbuild Model . ext (). dsl Element () ĊĊĠĠĠ Ġval Ġext Element Map Ġ= Ġext Element . elements ĊĊĠĠĠ Ġ// ĠMove Ġall Ġof Ġthe Ġelements Ġaround ĊĠĠĠ Ġext Element . move Element To ( 0 , Ġext Element Map [" prop 3 "] !! ) ĊĠĠĠ Ġext Element . move Element To ( 2 , Ġext Element Map [" prop 1 "] !! ) ĊĠĠĠ Ġext Element . move Element To ( 0 , Ġext Element Map [" prop 2 "] !! ) ĊĊĠĠĠ Ġfun Ġverify () Ġ{ ĊĠĠĠĠĠ Ġval Ġfirst Model Ġ= Ġbuild Model . ext (). find Property (" prop 1 ") ĊĠĠĠĠĠ Ġverify Property Model ( first Model , ĠSTRING _ TYPE , Ġ" value 1 ", ĠREFER ENCE , ĠREG ULAR , Ġ 0 , Ġ" prop 1 ") ĊĠĠĠĠĠ Ġval Ġsecond Model Ġ= Ġbuild Model . ext (). find Property (" prop 2 ") ĊĠĠĠĠĠ Ġverify Property Model ( second Model , ĠSTRING _ TYPE , Ġ" hello ", ĠSTRING , ĠREG ULAR , Ġ 0 , Ġ" prop 2 ") ĊĠĠĠĠĠ Ġval Ġthird Model Ġ= Ġbuild Model . ext (). find Property (" prop 3 ") ĊĠĠĠĠĠ Ġverify Property Model ( third Model , ĠSTRING _ TYPE , Ġ" B oo ", ĠSTRING , ĠREG ULAR , Ġ 0 , Ġ" prop 3 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġverify () ĊĊĠĠĠ Ġapply Changes And Re parse ( build Model ) ĊĠĠĠ Ġverify File Contents ( my Build File , ĠTest File . MOVE _ BASIC _ WITH _ COMMENTS _ EXPECTED ) ĊĠĠĠ Ġverify () ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Move Block With Un parsed Content () Ġ{ ĊĠĠĠ Ġassume True (" no Ġext Ġblock Ġin ĠKotlin Script ", Ġ! is Kotlin Script ) Ġ// ĠTODO ( b / 1 5 4 9 0 2 4 0 6 ) ĊĠĠĠ ĠwriteTo Build File ( Test File . MOVE _ BLOCK _ WITH _ UN PAR SED _ CONTENT ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĠĠĠ Ġval Ġext Element Ġ= Ġbuild Model . ext (). dsl Element () ĊĠĠĠ Ġval Ġfile Element Ġ= Ġbuild Model . dsl Element () ĊĊĠĠĠ Ġval Ġext Element Map Ġ= Ġext Element . elements ĊĊĠĠĠ Ġ// ĠMove Ġthe Ġblock Ġcontaining Ġthe Ġunknown Ġelements . ĊĠĠĠ Ġfile Element . move Element To ( 1 , Ġext Element ) ĊĊĠĠĠ Ġ// ĠMove Ġthe Ġnormal Ġone Ġto Ġthe Ġmiddle Ġof Ġthe Ġunknown Ġproperties . ĊĠĠĠ Ġext Element . move Element To ( 2 , Ġext Element Map [" prop 4 "] !! ) ĊĠĠĠ Ġ// ĠMove Ġsome Ġunknown Ġproperties Ġaround . ĊĠĠĠ Ġext Element . move Element To ( 0 , Ġext Element Map [" prop 2 "] !! ) ĊĠĠĠ Ġext Element . move Element To ( 4 , Ġext Element Map [" var "] !! ) ĊĊĠĠĠ Ġapply Changes And Re parse ( build Model ) ĊĠĠĠ Ġverify File Contents ( my Build File , ĠTest File . MOVE _ BLOCK _ WITH _ UN PAR SED _ CONTENT _ EXPECTED ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Wrong Order No Dependency () Ġ{ ĊĠĠĠ ĠwriteTo Build File ( Test File . WRONG _ ORDER _ NO _ DEPEND ENCY ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠ Ġval Ġfirst Model Ġ= Ġbuild Model . ext (). find Property (" prop 1 ") ĊĠĠĠĠĠ Ġverify Property Model ( first Model , ĠSTRING _ TYPE , Ġ" prop 2 ", ĠREFER ENCE , ĠREG ULAR , Ġ 0 , Ġ" prop 1 ") ĊĠĠĠĠĠ Ġval Ġsecond Model Ġ= Ġbuild Model . ext (). find Property (" prop 2 ") ĊĠĠĠĠĠ Ġverify Property Model ( second Model , ĠSTRING _ TYPE , Ġ" hello ", ĠSTRING , ĠREG ULAR , Ġ 0 , Ġ" prop 2 ") ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Direct Reference Ext Correct Order () Ġ{ ĊĠĠĠ ĠwriteTo Build File ( Test File . DIRECT _ REFERENCE _ EXT _ CORRECT _ ORDER ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĠĠĠ Ġval Ġproperty Model Ġ= Ġbuild Model . android (). default Config (). min Sdk Version () ĊĠĠĠ Ġverify Property Model ( property Model , ĠINTEGER _ TYPE , Ġ 2 0 , ĠINTEGER , ĠREG ULAR , Ġ 1 ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Above Ext () Ġ{ ĊĠĠĠ ĠwriteTo Build File ( Test File . AB O VE _ EXT ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĊĠĠĠ Ġval Ġmin Sdk Model Ġ= Ġbuild Model . android (). default Config (). min Sdk Version () ĊĠĠĠ Ġval Ġmax Sdk Model Ġ= Ġbuild Model . android (). default Config (). max Sdk Version () ĊĊĠĠĠ Ġverify Property Model ( min Sdk Model , ĠSTRING _ TYPE , Ġextra Name (" min Sdk "), ĠREFER ENCE , ĠREG ULAR , Ġ 0 ) ĊĠĠĠ Ġverify Property Model ( max Sdk Model , ĠSTRING _ TYPE , Ġextra Name (" max Sdk "), ĠREFER ENCE , ĠREG ULAR , Ġ 0 ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Above Ext Qualified Reference () Ġ{ ĊĠĠĠ ĠwriteTo Build File ( Test File . AB O VE _ EXT _ QUAL IFI ED _ REFERENCE ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĊĠĠĠ Ġval Ġmin Sdk Model Ġ= Ġbuild Model . android (). default Config (). min Sdk Version () ĊĠĠĠ Ġval Ġmax Sdk Model Ġ= Ġbuild Model . android (). default Config (). max Sdk Version () ĊĊĠĠĠ Ġverify Property Model ( min Sdk Model , ĠSTRING _ TYPE , Ġif Ġ( is Gro ovy ) Ġ" ext . min Sdk " Ġelse Ġ" extra [\" min Sdk \"] ", ĠREFER ENCE , ĠREG ULAR , Ġ 0 ) ĊĠĠĠ Ġverify Property Model ( max Sdk Model , ĠSTRING _ TYPE , Ġif Ġ( is Gro ovy ) Ġ" ext . max Sdk " Ġelse Ġ" extra [\" max Sdk \"] ", ĠREFER ENCE , ĠREG ULAR , Ġ 0 ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Resolve To Last Property () Ġ{ ĊĠĠĠ ĠwriteTo Build File ( Test File . RESOL VE _ TO _ LAST _ PROPERTY ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĠĠĠ Ġval Ġconfig Model Ġ= Ġbuild Model . android (). signing Configs ()[ 0 ] !! ĊĠĠĠ Ġval Ġfile Model Ġ= Ġconfig Model . store File () ĊĠĠĠ Ġval Ġpassword Model Ġ= Ġconfig Model . store Password () ĊĊĠĠĠ Ġverify Property Model ( file Model , ĠSTRING _ TYPE , Ġ" good bye ", ĠSTRING , ĠD ER IVED , Ġ 1 , Ġ" 0 ") ĊĠĠĠ Ġverify Property Model ( password Model . resolve (), ĠSTRING _ TYPE , Ġ" off ", ĠSTRING , ĠREG ULAR , Ġ 1 ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Add Property With Existing Dependency () Ġ{ ĊĠĠĠ ĠwriteTo Build File ( Test File . ADD _ PROPERTY _ WITH _ EXIST ING _ DEPEND ENCY ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĊĠĠĠ Ġval Ġext Model Ġ= Ġbuild Model . ext () ĊĊĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠ Ġval Ġproperty Model Ġ= Ġext Model . find Property (" prop 1 ") ĊĠĠĠĠĠ Ġval Ġbefore Prop Model Ġ= Ġext Model . find Property (" prop ") ĊĠĠĠĠĠ Ġval Ġafter Prop Model Ġ= Ġext Model . find Property (" prop 2 ") ĊĊĠĠĠĠĠ Ġproperty Model . setValue ( Reference To (" prop ")) ĊĊĠĠĠĠĠ Ġverify Property Model ( property Model . resolve (), ĠSTRING _ TYPE , Ġ" hello ", ĠSTRING , ĠREG ULAR , Ġ 1 , Ġ" prop 1 ") ĊĠĠĠĠĠ Ġverify Property Model ( before Prop Model . resolve (), ĠSTRING _ TYPE , Ġ" hello ", ĠSTRING , ĠREG ULAR , Ġ 0 , Ġ" prop ") ĊĠĠĠĠĠ Ġverify Property Model ( after Prop Model . resolve (), ĠSTRING _ TYPE , Ġ" hello ", ĠSTRING , ĠREG ULAR , Ġ 1 , Ġ" prop 2 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġapply Changes And Re parse ( build Model ) ĊĊĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠ Ġval Ġproperty Model Ġ= Ġext Model . find Property (" prop 1 ") ĊĠĠĠĠĠ Ġval Ġbefore Prop Model Ġ= Ġext Model . find Property (" prop ") ĊĠĠĠĠĠ Ġval Ġafter Prop Model Ġ= Ġext Model . find Property (" prop 2 ") ĊĊĠĠĠĠĠ Ġverify Property Model ( property Model . resolve (), ĠSTRING _ TYPE , Ġ" hello ", ĠSTRING , ĠREG ULAR , Ġ 1 , Ġ" prop 1 ") ĊĠĠĠĠĠ Ġverify Property Model ( before Prop Model . resolve (), ĠSTRING _ TYPE , Ġ" hello ", ĠSTRING , ĠREG ULAR , Ġ 0 , Ġ" prop ") ĊĠĠĠĠĠ Ġverify Property Model ( after Prop Model . resolve (), ĠSTRING _ TYPE , Ġ" hello ", ĠSTRING , ĠREG ULAR , Ġ 1 , Ġ" prop 2 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġverify File Contents ( my Build File , ĠTest File . ADD _ PROPERTY _ WITH _ EXIST ING _ DEPEND ENCY _ EXPECTED ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Change Value To OutOf Scope Ref () Ġ{ ĊĠĠĠ ĠwriteTo Build File ( Test File . CHANGE _ VALUE _ TO _ OUT _ OF _ SCOPE _ REF ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĠĠĠ Ġval Ġext Model Ġ= Ġbuild Model . ext () ĊĊĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠ Ġval Ġfirst Property Model Ġ= Ġext Model . find Property (" prop ") ĊĠĠĠĠĠ Ġval Ġsecond Property Model Ġ= Ġext Model . find Property (" prop 1 ") ĊĠĠĠĠĠ Ġval Ġthird Property Model Ġ= Ġext Model . find Property (" prop 2 ") ĊĊĠĠĠĠĠ Ġsecond Property Model . setValue ( Reference To (" prop ")) ĊĊĠĠĠĠĠ Ġverify Property Model ( first Property Model . resolve (), ĠINTEGER _ TYPE , Ġ 2 4 , ĠINTEGER , ĠREG ULAR , Ġ 0 , Ġ" prop ") ĊĠĠĠĠĠ Ġverify Property Model ( second Property Model . resolve (), ĠINTEGER _ TYPE , Ġ 2 4 , ĠINTEGER , ĠREG ULAR , Ġ 1 , Ġ" prop 1 ") ĊĠĠĠĠĠ Ġverify Property Model ( third Property Model . resolve (), ĠINTEGER _ TYPE , Ġ 2 4 , ĠINTEGER , ĠREG ULAR , Ġ 1 , Ġ" prop 2 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġapply Changes And Re parse ( build Model ) ĊĊĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠ Ġval Ġfirst Property Model Ġ= Ġext Model . find Property (" prop ") ĊĠĠĠĠĠ Ġval Ġsecond Property Model Ġ= Ġext Model . find Property (" prop 1 ") ĊĠĠĠĠĠ Ġval Ġthird Property Model Ġ= Ġext Model . find Property (" prop 2 ") ĊĊĠĠĠĠĠ Ġverify Property Model ( first Property Model . resolve (), ĠINTEGER _ TYPE , Ġ 2 4 , ĠINTEGER , ĠREG ULAR , Ġ 0 , Ġ" prop ") ĊĠĠĠĠĠ Ġverify Property Model ( second Property Model . resolve (), ĠINTEGER _ TYPE , Ġ 2 4 , ĠINTEGER , ĠREG ULAR , Ġ 1 , Ġ" prop 1 ") ĊĠĠĠĠĠ Ġverify Property Model ( third Property Model . resolve (), ĠINTEGER _ TYPE , Ġ 2 4 , ĠINTEGER , ĠREG ULAR , Ġ 1 , Ġ" prop 2 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġverify File Contents ( my Build File , ĠTest File . CHANGE _ VALUE _ TO _ OUT _ OF _ SCOPE _ REF _ EXPECTED ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Rename Re orders Properties () Ġ{ ĊĠĠĠ ĠwriteTo Build File ( Test File . RE NAME _ RE ORD ERS _ PROPERTIES ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĊĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠ Ġval Ġext Model Ġ= Ġbuild Model . ext () ĊĠĠĠĠĠ Ġval Ġfirst Property Model Ġ= Ġext Model . find Property (" odd One Out ") ĊĠĠĠĠĠ Ġval Ġsecond Property Model Ġ= Ġext Model . find Property (" prop 1 ") ĊĠĠĠĠĠ Ġval Ġthird Property Model Ġ= Ġext Model . find Property (" prop 2 ") ĊĊĠĠĠĠĠ Ġfirst Property Model . rename (" prop ") ĊĠĠĠĠĠ Ġverify Property Model ( first Property Model . resolve (), ĠBOOLEAN _ TYPE , Ġtrue , ĠBOOLEAN , ĠREG ULAR , Ġ 0 , Ġ" prop ") ĊĠĠĠĠĠ Ġverify Property Model ( second Property Model . resolve (), ĠBOOLEAN _ TYPE , Ġtrue , ĠBOOLEAN , ĠREG ULAR , Ġ 1 , Ġ" prop 1 ") ĊĠĠĠĠĠ Ġverify Property Model ( third Property Model . resolve (), ĠBOOLEAN _ TYPE , Ġtrue , ĠBOOLEAN , ĠREG ULAR , Ġ 1 , Ġ" prop 2 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġapply Changes And Re parse ( build Model ) ĊĊĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠ Ġval Ġext Model Ġ= Ġbuild Model . ext () ĊĠĠĠĠĠ Ġval Ġfirst Property Model Ġ= Ġext Model . find Property (" prop ") ĊĠĠĠĠĠ Ġval Ġsecond Property Model Ġ= Ġext Model . find Property (" prop 1 ") ĊĠĠĠĠĠ Ġval Ġthird Property Model Ġ= Ġext Model . find Property (" prop 2 ") ĊĊĠĠĠĠĠ Ġverify Property Model ( first Property Model . resolve (), ĠBOOLEAN _ TYPE , Ġtrue , ĠBOOLEAN , ĠREG ULAR , Ġ 0 , Ġ" prop ") ĊĠĠĠĠĠ Ġverify Property Model ( second Property Model . resolve (), ĠBOOLEAN _ TYPE , Ġtrue , ĠBOOLEAN , ĠREG ULAR , Ġ 1 , Ġ" prop 1 ") ĊĠĠĠĠĠ Ġverify Property Model ( third Property Model . resolve (), ĠBOOLEAN _ TYPE , Ġtrue , ĠBOOLEAN , ĠREG ULAR , Ġ 1 , Ġ" prop 2 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġverify File Contents ( my Build File , ĠTest File . RE NAME _ RE ORD ERS _ PROPERTIES _ EXPECTED ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Change Reference Value Re orders Properties () Ġ{ ĊĠĠĠ ĠwriteTo Build File ( Test File . CHANGE _ REFERENCE _ VALUE _ RE ORD ERS _ PROPERTIES ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĊĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠ Ġval Ġext Model Ġ= Ġbuild Model . ext () ĊĠĠĠĠĠ Ġval Ġfirst Property Model Ġ= Ġext Model . find Property (" prop ") ĊĠĠĠĠĠ Ġval Ġsecond Property Model Ġ= Ġext Model . find Property (" prop 1 ") ĊĠĠĠĠĠ Ġval Ġthird Property Model Ġ= Ġext Model . find Property (" prop 2 ") ĊĠĠĠĠĠ Ġval Ġfourth Property Model Ġ= Ġext Model . find Property (" prop 3 ") ĊĠĠĠĠĠ Ġval Ġf ifth Property Model Ġ= Ġext Model . find Property (" prop 4 ") ĊĠĠĠĠĠ Ġval Ġsix th Property Model Ġ= Ġext Model . find Property (" prop 5 ") ĊĠĠĠĠĠ Ġval Ġse vent h Property Model Ġ= Ġext Model . find Property (" prop 6 ") ĊĊĠĠĠĠĠ Ġfirst Property Model . setValue (" hello ") ĊĠĠĠĠĠ Ġthird Property Model . setValue (" good bye ") ĊĠĠĠĠĠ Ġse vent h Property Model . setValue ( Reference To (" prop 5 ")) ĊĊĠĠĠĠĠ Ġverify Property Model ( first Property Model . resolve (), ĠSTRING _ TYPE , Ġ" hello ", ĠSTRING , ĠREG ULAR , Ġ 0 , Ġ" prop ") ĊĠĠĠĠĠ Ġverify Property Model ( second Property Model . resolve (), ĠSTRING _ TYPE , Ġ" hello ", ĠSTRING , ĠREG ULAR , Ġ 1 , Ġ" prop 1 ") ĊĠĠĠĠĠ Ġverify Property Model ( third Property Model . resolve (), ĠSTRING _ TYPE , Ġ" good bye ", ĠSTRING , ĠREG ULAR , Ġ 0 , Ġ" prop 2 ") ĊĠĠĠĠĠ Ġverify Property Model ( four th Property Model . resolve (), ĠSTRING _ TYPE , Ġ" good bye ", ĠSTRING , ĠREG ULAR , Ġ 1 , Ġ" prop 3 ") ĊĠĠĠĠĠ Ġverify Property Model ( f ifth Property Model . resolve (), ĠSTRING _ TYPE , Ġ" good bye ", ĠSTRING , ĠREG ULAR , Ġ 1 , Ġ" prop 4 ") ĊĠĠĠĠĠ Ġverify Property Model ( six th Property Model . resolve (), ĠSTRING _ TYPE , Ġ" good bye ", ĠSTRING , ĠREG ULAR , Ġ 1 , Ġ" prop 5 ") ĊĠĠĠĠĠ Ġverify Property Model ( se vent h Property Model . resolve (), ĠSTRING _ TYPE , Ġ" good bye ", ĠSTRING , ĠREG ULAR , Ġ 1 , Ġ" prop 6 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġapply Changes And Re parse ( build Model ) ĊĊĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠ Ġval Ġext Model Ġ= Ġbuild Model . ext () ĊĠĠĠĠĠ Ġval Ġfirst Property Model Ġ= Ġext Model . find Property (" prop ") ĊĠĠĠĠĠ Ġval Ġsecond Property Model Ġ= Ġext Model . find Property (" prop 1 ") ĊĠĠĠĠĠ Ġval Ġthird Property Model Ġ= Ġext Model . find Property (" prop 2 ") ĊĠĠĠĠĠ Ġval Ġfourth Property Model Ġ= Ġext Model . find Property (" prop 3 ") ĊĠĠĠĠĠ Ġval Ġf ifth Property Model Ġ= Ġext Model . find Property (" prop 4 ") ĊĠĠĠĠĠ Ġval Ġsix th Property Model Ġ= Ġext Model . find Property (" prop 5 ") ĊĠĠĠĠĠ Ġval Ġse vent h Property Model Ġ= Ġext Model . find Property (" prop 6 ") ĊĊĠĠĠĠĠ Ġverify Property Model ( first Property Model . resolve (), ĠSTRING _ TYPE , Ġ" hello ", ĠSTRING , ĠREG ULAR , Ġ 0 , Ġ" prop ") ĊĠĠĠĠĠ Ġverify Property Model ( second Property Model . resolve (), ĠSTRING _ TYPE , Ġ" hello ", ĠSTRING , ĠREG ULAR , Ġ 1 , Ġ" prop 1 ") ĊĠĠĠĠĠ Ġverify Property Model ( third Property Model . resolve (), ĠSTRING _ TYPE , Ġ" good bye ", ĠSTRING , ĠREG ULAR , Ġ 0 , Ġ" prop 2 ") ĊĠĠĠĠĠ Ġverify Property Model ( four th Property Model . resolve (), ĠSTRING _ TYPE , Ġ" good bye ", ĠSTRING , ĠREG ULAR , Ġ 1 , Ġ" prop 3 ") ĊĠĠĠĠĠ Ġverify Property Model ( f ifth Property Model . resolve (), ĠSTRING _ TYPE , Ġ" good bye ", ĠSTRING , ĠREG ULAR , Ġ 1 , Ġ" prop 4 ") ĊĠĠĠĠĠ Ġverify Property Model ( six th Property Model . resolve (), ĠSTRING _ TYPE , Ġ" good bye ", ĠSTRING , ĠREG ULAR , Ġ 1 , Ġ" prop 5 ") ĊĠĠĠĠĠ Ġverify Property Model ( se vent h Property Model . resolve (), ĠSTRING _ TYPE , Ġ" good bye ", ĠSTRING , ĠREG ULAR , Ġ 1 , Ġ" prop 6 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġverify File Contents ( my Build File , ĠTest File . CHANGE _ REFERENCE _ VALUE _ RE ORD ERS _ PROPERTIES _ EXPECTED ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Add List Dependency With Existing Index Reference () Ġ{ ĊĠĠĠ ĠwriteTo Build File ( Test File . ADD _ LIST _ DEPEND ENCY _ WITH _ EXIST ING _ INDEX _ REFERENCE ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĠĠĠ Ġval Ġext Model Ġ= Ġbuild Model . ext () ĊĠĠĠ Ġval Ġnew ListModel Ġ= Ġext Model . find Property (" prop ") ĊĠĠĠ Ġnew ListModel . convertTo Empty List (). add List Value (). setValue (" hello ") ĊĊĠĠĠ Ġverify Property Model ( ext Model . find Property (" prop 1 "). resolve (), ĠSTRING _ TYPE , Ġ" hello ", ĠSTRING , ĠREG ULAR , Ġ 1 , Ġ" prop 1 ") ĊĊĠĠĠ Ġapply Changes And Re parse ( build Model ) ĊĠĠĠ Ġverify File Contents ( my Build File , ĠTest File . ADD _ LIST _ DEPEND ENCY _ WITH _ EXIST ING _ INDEX _ REFERENCE _ EXPECTED ) ĊĊĠĠĠ Ġverify Property Model ( build Model . ext (). find Property (" prop 1 "). resolve (), ĠSTRING _ TYPE , Ġ" hello ", ĠSTRING , ĠREG ULAR , Ġ 1 , Ġ" prop 1 ") ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Add Map Dependency With Existing Key Reference () Ġ{ ĊĠĠĠ ĠwriteTo Build File ( Test File . ADD _ MAP _ DEPEND ENCY _ WITH _ EXIST ING _ KEY _ REFERENCE ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĠĠĠ Ġval Ġext Model Ġ= Ġbuild Model . ext () ĊĠĠĠ Ġval Ġnew Map Model Ġ= Ġext Model . find Property (" prop ") ĊĠĠĠ Ġnew Map Model . convertTo Empty Map (). getMap Value (" key "). setValue ( true ) ĊĊĠĠĠ Ġverify Property Model ( ext Model . find Property (" prop 1 "). resolve (), ĠBOOLEAN _ TYPE , Ġtrue , ĠBOOLEAN , ĠREG ULAR , Ġ 1 , Ġ" prop 1 ") ĊĊĠĠĠ Ġapply Changes And Re parse ( build Model ) ĊĠĠĠ Ġverify File Contents ( my Build File , ĠTest File . ADD _ MAP _ DEPEND ENCY _ WITH _ EXIST ING _ KEY _ REFERENCE _ EXPECTED ) ĊĊĠĠĠ Ġverify Property Model ( build Model . ext (). find Property (" prop 1 "). resolve (), ĠBOOLEAN _ TYPE , Ġtrue , ĠBOOLEAN , ĠREG ULAR , Ġ 1 , Ġ" prop 1 ") ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Add Qualified Dependency With Existing Reference () Ġ{ ĊĠĠĠ ĠwriteTo Build File ( Test File . ADD _ QUAL IFI ED _ DEPEND ENCY _ WITH _ EXIST ING _ REFERENCE ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĠĠĠ Ġval Ġnew Property Model Ġ= Ġbuild Model . ext (). find Property (" prop ") ĊĠĠĠ Ġnew Property Model . setValue (" b oo ") ĊĊĠĠĠ Ġverify Property Model ( build Model . ext (). find Property (" prop 1 "). resolve (), ĠSTRING _ TYPE , Ġ" b oo ", ĠSTRING , ĠREG ULAR , Ġ 1 , Ġ" prop 1 ") ĊĊĠĠĠ Ġapply Changes And Re parse ( build Model ) ĊĠĠĠ Ġverify File Contents ( my Build File , ĠTest File . ADD _ QUAL IFI ED _ DEPEND ENCY _ WITH _ EXIST ING _ REFERENCE _ EXPECTED ) ĊĊĠĠĠ Ġverify Property Model ( build Model . ext (). find Property (" prop 1 "). resolve (), ĠSTRING _ TYPE , Ġ" b oo ", ĠSTRING , ĠREG ULAR , Ġ 1 , Ġ" prop 1 ") ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Add Ext Block After Apply () Ġ{ ĊĠĠĠ ĠwriteTo Build File ( Test File . ADD _ EXT _ BLOCK _ AFTER _ AP PLY ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĊĠĠĠ Ġbuild Model . ext (). find Property (" new Prop "). setValue ( true ) ĊĊĠĠĠ Ġapply Changes And Re parse ( build Model ) ĊĊĠĠĠ Ġverify File Contents ( my Build File , ĠTest File . ADD _ EXT _ BLOCK _ AFTER _ AP PLY _ EXPECTED ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Add Ext Block After Multiple App lies () Ġ{ ĊĠĠĠ ĠwriteTo Build File ( Test File . ADD _ EXT _ BLOCK _ AFTER _ MULTIPLE _ APP LIES ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĊĠĠĠ Ġbuild Model . ext (). find Property (" new Prop "). setValue ( true ) ĊĊĠĠĠ Ġapply Changes And Re parse ( build Model ) ĊĊĠĠĠ Ġverify File Contents ( my Build File , ĠTest File . ADD _ EXT _ BLOCK _ AFTER _ MULTIPLE _ APP LIES _ EXPECTED ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Add Ext Block To Top () Ġ{ ĊĠĠĠ ĠwriteTo Build File ( Test File . ADD _ EXT _ BLOCK _ TO _ TOP ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĊĠĠĠ Ġbuild Model . ext (). find Property (" new Prop "). setValue ( true ) ĊĊĠĠĠ Ġapply Changes And Re parse ( build Model ) ĊĊĠĠĠ Ġverify File Contents ( my Build File , ĠTest File . ADD _ EXT _ BLOCK _ TO _ TOP _ EXPECTED ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Ext Reference To Var () Ġ{ ĊĠĠĠ Ġassume True (" no Ġext Ġblock Ġin ĠKotlin Script ", Ġ! is Kotlin Script ) Ġ// ĠTODO ( b / 1 5 4 9 0 2 4 0 6 ) ĊĠĠĠ ĠwriteTo Build File ( Test File . EXT _ REFERENCE _ TO _ VAR ) ĊĊĠĠĠ Ġval Ġbuild Model Ġ= Ġgradle Build Model ĊĊĠĠĠ Ġval Ġproperty Model Ġ= Ġbuild Model . ext (). find Property (" value ") ĊĠĠĠ Ġverify Property Model ( property Model . resolve (), ĠSTRING _ TYPE , Ġ" com . android . support : appcompat - v 7 : 1 . 0 ", ĠSTRING , ĠREG ULAR , Ġ 1 ) ĊĠ Ġ} ĊĊĠ Ġenum Ġclass ĠTest File ( val Ġpath : Ġ@ System Dependent ĠString ): ĠTest FileName Ġ{ ĊĠĠĠ ĠADD _ PROPERTIES _ TO _ EMPTY _ EXPECTED (" add Properties To Empty Expected "), ĊĠĠĠ ĠCREATE _ PROPERTY _ MIDDLE (" create Property Middle "), ĊĠĠĠ ĠCREATE _ PROPERTY _ MIDDLE _ EXPECTED (" create Property Middle Expected "), ĊĠĠĠ ĠCREATE _ PROPERTY _ START _ AND _ END (" create Property Start And End "), ĊĠĠĠ ĠCREATE _ PROPERTY _ START _ AND _ END _ EXPECTED (" create Property Start And End Expected "), ĊĠĠĠ ĠCREATE _ BLOCK _ ELEMENT (" create Block Element "), ĊĠĠĠ ĠCREATE _ BLOCK _ ELEMENT _ EXPECTED (" create Block Element Expected "), ĊĠĠĠ ĠMOVE _ BLOCK _ STATE MENT (" move Block Statement "), ĊĠĠĠ ĠMOVE _ BLOCK _ STATE MENT _ EXPECTED (" move Block Statement Expected "), ĊĠĠĠ ĠMOVE _ BLOCK _ STATE MENT _ EXPECTED _ TWO (" move Block Statement Expected Two "), ĊĠĠĠ ĠMOVE _ BASIC _ STATE MENT (" move Basic Statement "), ĊĠĠĠ ĠMOVE _ BASIC _ STATE MENT _ EXPECTED (" move Basic Statement Expected "), ĊĠĠĠ ĠCREATE _ THEN _ MOVE _ BLOCK (" create Then Move Block "), ĊĠĠĠ ĠCREATE _ THEN _ MOVE _ BLOCK _ EXPECTED (" create Then Move Block Expected "), ĊĠĠĠ ĠCREATE _ THEN _ MOVE (" create Then Move "), ĊĠĠĠ ĠCREATE _ THEN _ MOVE _ EXPECTED (" create Then Move Expected "), ĊĠĠĠ ĠEDIT _ BEFORE _ MOVE (" edit Before Move "), ĊĠĠĠ ĠEDIT _ BEFORE _ MOVE _ EXPECTED (" edit Before Move Expected "), ĊĠĠĠ ĠMOVE _ BEFORE _ EDIT (" move Before Edit "), ĊĠĠĠ ĠMOVE _ BEFORE _ EDIT _ EXPECTED (" move Before Edit Expected "), ĊĠĠĠ ĠMOVE _ COMMENTS _ IN _ BLOCK (" move Comments In Block "), ĊĠĠĠ ĠMOVE _ COMMENTS _ IN _ BLOCK _ EXPECTED (" move Comments In Block Expected "), ĊĠĠĠ ĠMOVE _ BASIC _ WITH _ COMMENTS (" move Basic With Comments "), ĊĠĠĠ ĠMOVE _ BASIC _ WITH _ COMMENTS _ EXPECTED (" move Basic With Comments Expected "), ĊĠĠĠ ĠMOVE _ BLOCK _ WITH _ UN PAR SED _ CONTENT (" move Block With Un parsed Content "), ĊĠĠĠ ĠMOVE _ BLOCK _ WITH _ UN PAR SED _ CONTENT _ EXPECTED (" move Block With Un parsed Content Expected "), ĊĠĠĠ ĠWR ONG _ ORDER _ NO _ DEPEND ENCY (" wrong Order No Dependency "), ĊĠĠĠ ĠDIRECT _ REFERENCE _ EXT _ CORRECT _ ORDER (" direct Reference Ext Correct Order "), ĊĠĠĠ ĠA BO VE _ EXT (" above Ext "), ĊĠĠĠ ĠA BO VE _ EXT _ QUAL IFI ED _ REFERENCE (" above Ext Qualified Reference "), ĊĠĠĠ ĠRES OL VE _ TO _ LAST _ PROPERTY (" resolve To Last Property "), ĊĠĠĠ ĠADD _ PROPERTY _ WITH _ EXIST ING _ DEPEND ENCY (" addProperty With Existing Dependency "), ĊĠĠĠ ĠADD _ PROPERTY _ WITH _ EXIST ING _ DEPEND ENCY _ EXPECTED (" addProperty With Existing Dependency Expected "), ĊĠĠĠ ĠCHANGE _ VALUE _ TO _ OUT _ OF _ SCOPE _ REF (" change Value To OutOf Scope Ref "), ĊĠĠĠ ĠCHANGE _ VALUE _ TO _ OUT _ OF _ SCOPE _ REF _ EXPECTED (" change Value To OutOf Scope Ref Expected "), ĊĠĠĠ ĠR ENAME _ RE ORD ERS _ PROPERTIES (" rename Re orders Properties "), ĊĠĠĠ ĠR ENAME _ RE ORD ERS _ PROPERTIES _ EXPECTED (" rename Re orders Properties Expected "), ĊĠĠĠ ĠCHANGE _ REFERENCE _ VALUE _ RE ORD ERS _ PROPERTIES (" change Reference Value Re orders Properties "), ĊĠĠĠ ĠCHANGE _ REFERENCE _ VALUE _ RE ORD ERS _ PROPERTIES _ EXPECTED (" change Reference Value Re orders Properties Expected "), ĊĠĠĠ ĠADD _ LIST _ DEPEND ENCY _ WITH _ EXIST ING _ INDEX _ REFERENCE (" add List Dependency With Existing Index Reference "), ĊĠĠĠ ĠADD _ LIST _ DEPEND ENCY _ WITH _ EXIST ING _ INDEX _ REFERENCE _ EXPECTED (" add List Dependency With Existing Index Reference Expected "), ĊĠĠĠ ĠADD _ MAP _ DEPEND ENCY _ WITH _ EXIST ING _ KEY _ REFERENCE (" add Map Dependency With Existing Key Reference "), ĊĠĠĠ ĠADD _ MAP _ DEPEND ENCY _ WITH _ EXIST ING _ KEY _ REFERENCE _ EXPECTED (" add Map Dependency With Existing Key Reference Expected "), ĊĠĠĠ ĠADD _ QUAL IFI ED _ DEPEND ENCY _ WITH _ EXIST ING _ REFERENCE (" add Qualified Dependency With Existing Reference "), ĊĠĠĠ ĠADD _ QUAL IFI ED _ DEPEND ENCY _ WITH _ EXIST ING _ REFERENCE _ EXPECTED (" add Qualified Dependency With Existing Reference Expected "), ĊĠĠĠ ĠADD _ EXT _ BLOCK _ AFTER _ AP PLY (" add Ext Block After Apply "), ĊĠĠĠ ĠADD _ EXT _ BLOCK _ AFTER _ AP PLY _ EXPECTED (" add Ext Block After Apply Expected "), ĊĠĠĠ ĠADD _ EXT _ BLOCK _ AFTER _ MULTIPLE _ APP LIES (" add Ext Block After Multiple App lies "), ĊĠĠĠ ĠADD _ EXT _ BLOCK _ AFTER _ MULTIPLE _ APP LIES _ EXPECTED (" add Ext Block After Multiple App lies Expected "), ĊĠĠĠ ĠADD _ EXT _ BLOCK _ TO _ TOP (" add Ext Block To Top "), ĊĠĠĠ ĠADD _ EXT _ BLOCK _ TO _ TOP _ EXPECTED (" add Ext Block To Top Expected "), ĊĠĠĠ ĠEXT _ REFERENCE _ TO _ VAR (" ext Reference To Var "), ĊĠĠĠ Ġ; ĊĊĠĠĠ Ġoverride Ġfun Ġto File ( basePath : Ġ@ System Dependent ĠString , Ġextension : ĠString ): ĠFile Ġ{ ĊĠĠĠĠĠ Ġreturn Ġsuper . to File ("$ basePath / property Order /$ path ", Ġextension ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }