/* Ċ Copyright Ġ 2 0 1 7 ĠGoogle ĠInc . Ċ Ċ 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 ĊĊĠĠĠ Ġhttps :// 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 . google . android stud iop o et . generators Ċ Ċ import Ġcom . google . android stud iop o et . models . Dependency Ċ import Ġcom . google . android stud iop o et . models . Module Build Gradle Blueprint Ċ import Ġcom . google . android stud iop o et . models . Library Dependency Ċ import Ġcom . google . android stud iop o et . models . Module Dependency Ċ import Ġcom . google . android stud iop o et . test utils . mock Ċ import Ġcom . google . android stud iop o et . writ ers . FileWriter Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . verify Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . wh enever Ċ import Ġorg . junit . Test Ċ Ċ class ĠModule Build Gradle Generator Test Ġ{ ĊĠĠĠ Ġprivate Ġval Ġfile Writer : ĠFile Writer Ġ= Ġmock () ĊĠĠĠ Ġprivate Ġval Ġbuild Gradle Generator Ġ= ĠModule Build Gradle Generator ( file Writer ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` generator Ġapplies Ġplugins Ġfrom Ġthe Ġblueprint `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġblueprint Ġ= Ġget Module Build Gradle Blueprint ( plugins Ġ= Ġset Of (" plugin 1 ", Ġ" plugin 2 ")) ĊĠĠĠĠĠĠĠ Ġbuild Gradle Generator . generate ( blueprint ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ""" apply Ġplugin : Ġ' plugin 1 ' Ċ apply Ġplugin : Ġ' plugin 2 ' Ċ dependencies Ġ{ Ċ Ċ } Ċ source Compatibility Ġ= Ġ" 1 . 8 " Ċ target Compatibility Ġ= Ġ" 1 . 8 """" ĊĠĠĠĠĠĠĠ Ġverify ( file Writer ). write ToFile ( expected , Ġ" path ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` generator Ġapplies Ġlibraries Ġfrom Ġthe Ġblueprint `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġblueprint Ġ= Ġget Module Build Gradle Blueprint ( dependencies Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLibrary Dependency (" implementation ", Ġ" library 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLibrary Dependency (" test Implementation ", Ġ" library 2 ") ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġbuild Gradle Generator . generate ( blueprint ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ""" dependencies Ġ{ ĊĠĠĠ Ġimplementation Ġ" library 1 " ĊĠĠĠ Ġtest Implementation Ġ" library 2 " Ċ } Ċ source Compatibility Ġ= Ġ" 1 . 8 " Ċ target Compatibility Ġ= Ġ" 1 . 8 """" ĊĠĠĠĠĠĠĠ Ġverify ( file Writer ). write ToFile ( expected , Ġ" path ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` generator Ġapplies Ġdependencies Ġfrom Ġthe Ġblueprint `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġblueprint Ġ= Ġget Module Build Gradle Blueprint ( dependencies Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠModule Dependency (" library 1 ", Ġmock (), " implementation "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠModule Dependency (" library 2 ", Ġmock (), " test Implementation ") ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġbuild Gradle Generator . generate ( blueprint ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ""" dependencies Ġ{ ĊĠĠĠ Ġimplementation Ġproject (': library 1 ') ĊĠĠĠ Ġtest Implementation Ġproject (': library 2 ') Ċ } Ċ source Compatibility Ġ= Ġ" 1 . 8 " Ċ target Compatibility Ġ= Ġ" 1 . 8 """" ĊĠĠĠĠĠĠĠ Ġverify ( file Writer ). write ToFile ( expected , Ġ" path ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` generator Ġapplies Ġextr al ines Ġfrom Ġthe Ġblueprint `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġblueprint Ġ= Ġget Module Build Gradle Blueprint ( extra Lines Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" line 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" line 2 " ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġbuild Gradle Generator . generate ( blueprint ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ""" dependencies Ġ{ Ċ Ċ } Ċ source Compatibility Ġ= Ġ" 1 . 8 " Ċ target Compatibility Ġ= Ġ" 1 . 8 " Ċ line 1 Ċ line 2 """ ĊĠĠĠĠĠĠĠ Ġverify ( file Writer ). write ToFile ( expected , Ġ" path ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Module Build Gradle Blueprint ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugins : ĠSet < String > Ġ= Ġset Of (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies : ĠSet < Dependency > Ġ= Ġset Of (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextra Lines : ĠList < String >? Ġ= Ġnull ĊĠĠĠ Ġ): ĠModule Build Gradle Blueprint Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmock < Module Build Gradle Blueprint >(). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhenever ( this . dependencies ). thenReturn ( dependencies ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhenever ( this . plugins ). thenReturn ( plugins ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhenever ( this . extra Lines ). thenReturn ( extra Lines ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhenever ( this . path ). thenReturn (" path ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }