package Ġcom . google . android stud iop o et . models Ċ Ċ import Ġcom . google . android stud iop o et . input .* Ċ import Ġcom . google . android stud iop o et . test utils .* Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . wh enever Ċ import Ġorg . junit . Test Ċ Ċ class ĠAndroid Module Blueprint Test Ġ{ ĊĠĠĠ Ġprivate Ġval Ġresources Config 0 : ĠResources Config Ġ= Ġmock () ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` blueprint Ġcreate Ġproper Ġactivity Ġnames `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġblueprint Ġ= Ġget Android Module Blueprint ( num Of Activities Ġ= Ġ 2 ) ĊĊĠĠĠĠĠĠĠ Ġblueprint . activity Names . assertEquals ( listOf (" Activity 0 ", Ġ" Activity 1 ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` blueprint Ġcreates Ġactivity Ġblueprint Ġwith Ġjava Ġclass Ġwhen Ġjava Ġcode Ġexists `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwhenever ( resources Config 0 . layout Count ). thenReturn ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġandroid Module Blueprint Ġ= Ġget Android Module Blueprint () ĊĊĠĠĠĠĠĠĠ ĠassertThat ( android Module Blueprint . activity Blueprint s ). isEqualTo ( listOf ( Activity Blueprint ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Activity 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid Module Blueprint . resources Blueprint !!. layout Blueprint s [ 0 ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid Module Blueprint . package Path , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid Module Blueprint . packageName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid Module Blueprint . packages Blueprint . java Package Blueprint s [ 0 ]. class Blueprint s [ 0 ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (), Ġfalse ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` blueprint Ġcreates Ġactivity Ġblueprint Ġwith Ġk olt in Ġclass Ġwhen Ġjava Ġcode Ġdoesn 't Ġexist `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwhenever ( resources Config 0 . layout Count ). thenReturn ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġandroid Module Blueprint Ġ= Ġget Android Module Blueprint ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava Config Ġ= ĠCode Config (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackages Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclasses Per Package Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmethods Per Class Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġassert On ( android Module Blueprint ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Blueprint s [ 0 ]. class To Refer From Activity . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid Module Blueprint . packages Blueprint . kotlin Package Blueprint s [ 0 ]. class Blueprint s [ 0 ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` has Data Binding Ġis Ġfalse Ġwhen Ġdata Ġbinding Ġconfig Ġis Ġnull `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġandroid Module Blueprint Ġ= Ġget Android Module Blueprint ( data Binding Config Ġ= Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġandroid Module Blueprint . has Data Binding . assertFalse () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` has Data Binding Ġis Ġfalse Ġwhen Ġdata Ġbinding Ġconfig Ġhas Ġzero Ġlistener Ġcount `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġandroid Module Blueprint Ġ= Ġget Android Module Blueprint ( data Binding Config Ġ= ĠData Binding Config ( listener Count Ġ= Ġ 0 )) ĊĊĠĠĠĠĠĠĠ Ġandroid Module Blueprint . has Data Binding . assertFalse () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` has Data Binding Ġis Ġtrue Ġwhen Ġdata Ġbinding Ġconfig Ġhas Ġpositive Ġlistener Ġcount `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġandroid Module Blueprint Ġ= Ġget Android Module Blueprint ( data Binding Config Ġ= ĠData Binding Config ( listener Count Ġ= Ġ 2 )) ĊĊĠĠĠĠĠĠĠ Ġandroid Module Blueprint . has Data Binding . assertTrue () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` has Data Binding Ġis Ġfalse Ġwhen Ġdata Ġbinding Ġconfig Ġhas Ġnegative Ġlistener Ġcount `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġandroid Module Blueprint Ġ= Ġget Android Module Blueprint ( data Binding Config Ġ= ĠData Binding Config ( listener Count Ġ= Ġ- 1 )) ĊĊĠĠĠĠĠĠĠ Ġandroid Module Blueprint . has Data Binding . assertFalse () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` empty Ġresource Ġconfig Ġgenerates Ġnull Ġresources Ġblueprint `() Ġ{ ĊĠĠĠĠĠ Ġval Ġandroid Module Blueprint Ġ= Ġget Android Module Blueprint ( resources Config Ġ= ĠResources Config ( 0 , Ġ 0 , Ġ 0 )) ĊĊĠĠĠĠĠ Ġandroid Module Blueprint . resources Blueprint . assertNull () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Android Module Blueprint ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname : ĠString Ġ= Ġ" android App Module 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠnumOf Activities : ĠInt Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources Config : ĠResources Config Ġ= Ġresources Config 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject Root : ĠString Ġ= Ġ" root ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhas Launch Activity : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuse Kotlin : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies : ĠSet < Dependency > Ġ= Ġset Of (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Flavor Configs : ĠList < Flavor Config >? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Type Configs : ĠList < Build Type Config >? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava Config : ĠCode Config ? Ġ= Ġdefault Code Config (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin Config : ĠCode Config ? Ġ= Ġdefault Code Config (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextra Lines : ĠList < String >? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgenerate Tests : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Binding Config : ĠData Binding Config ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid Build Config : ĠAndroid Build Config Ġ= ĠAndroid Build Config (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugin Configs : ĠList < Plugin Config >? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgenerate B azel Files : ĠBoolean ? Ġ= Ġfalse ĊĠĠĠ Ġ) Ġ= ĠAndroid Module Blueprint ( name , ĠnumOf Activities , Ġresources Config , Ġproject Root , Ġhas Launch Activity , Ġuse Kotlin , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies , Ġproduct Flavor Configs , Ġbuild Type Configs , Ġjava Config , Ġkotlin Config , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextra Lines , Ġgenerate Tests , Ġdata Binding Config , Ġandroid Build Config , Ġplugin Configs , Ġgenerate B azel Files ) ĊĊĠĠĠ Ġprivate Ġfun Ġdefault Code Config () Ġ= ĠCode Config (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġpackages Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġclasses Per Package Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġmethods Per Class Ġ= Ġ 1 ĊĠĠĠ Ġ} Ċ }