package Ġcom . lik et hes al ad . placeholder . data Ċ Ċ import Ġcom . google . common . truth . Truth Ċ import Ġcom . lik et hes al ad . placeholder . modules . common . helpers . android . Android Config Helper Ċ import Ġcom . lik et hes al ad . placeholder . modules . common . helpers . android . Android Variant Context Ċ import Ġcom . lik et hes al ad . placeholder . modules . common . helpers . dirs . Variant Dirs Path Finder Ċ import Ġcom . lik et hes al ad . placeholder . modules . common . models . Variant Res Paths Ċ import Ġcom . lik et hes al ad . placeholder . modules . raw Strings . data . Values Folder Strings Provider Ċ import Ġcom . lik et hes al ad . placeholder . modules . raw Strings . data . Variant Raw Strings Ċ import Ġcom . lik et hes al ad . placeholder . modules . raw Strings . data . helpers . dirs . Variant Values Folders Ċ import Ġcom . lik et hes al ad . placeholder . modules . raw Strings . data . helpers . dirs . Variant Values Folders Factory Ċ import Ġcom . lik et hes al ad . placeholder . modules . raw Strings . data . helpers . files . Values Folder Xml Files Ċ import Ġcom . lik et hes al ad . placeholder . modules . raw Strings . data . libraries . Libraries Values Strings Provider Ċ import Ġcom . lik et hes al ad . placeholder . modules . raw Strings . data . libraries . Libraries Values Strings Provider Factory Ċ import Ġcom . lik et hes al ad . placeholder . modules . raw Strings . models . Values Folder Strings Ċ import Ġcom . lik et hes al ad . placeholder . modules . raw Strings . models . Variant Xml Files Ċ import Ġcom . lik et hes al ad . placeholder . test utils . Test Resources Handler Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġjava . io . File Ċ Ċ class ĠVariant Raw Strings Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġresources Handler Ġ= ĠTest Resources Handler ( java Class ) ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġvalues Folder Strings Provider : ĠValues Folder Strings Provider ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlibraries Values Strings Provider Factory : ĠLibraries Values Strings Provider Factory ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlibraries Values Strings Provider : ĠLibraries Values Strings Provider ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġvariant Values Folders Factory : ĠVariant Values Folders Factory ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġandroid Variant Context : ĠAndroid Variant Context ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġandroid Config Helper Ġ= Ġmock k < Android Config Helper >() ĊĠĠĠĠĠĠĠ Ġvalues Folder Strings Provider Ġ= Ġmock k () ĊĠĠĠĠĠĠĠ Ġlibraries Values Strings Provider Ġ= Ġmock k () ĊĠĠĠĠĠĠĠ Ġvariant Values Folders Factory Ġ= Ġmock k () ĊĠĠĠĠĠĠĠ Ġlibraries Values Strings Provider Factory Ġ= Ġmock k () ĊĠĠĠĠĠĠĠ Ġandroid Variant Context Ġ= Ġmock k () ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġandroid Variant Context . android Config Helper Ġ}. returns ( android Config Helper ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġlibraries Values Strings Provider Factory . create ( android Config Helper ) Ġ}. returns ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlibraries Values Strings Provider ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Get Ġraw Ġstrings Ġfor Ġun fl av ored Ġvariant `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmain Res Dirs Ġ= Ġget Variant Map Dir (" main ", Ġ" res ") ĊĠĠĠĠĠĠĠ Ġval Ġlib Values Strings Ġ= Ġget Lib Values Strings Mock (" values ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġvariant Dirs Path Finder Ġ= Ġget Variant Dirs Path Finder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" main " Ġto Ġmain Res Dirs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmain Variant Xml Files Ġ= Ġget Variant Xml Files ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" main ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Res Dirs , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" values " Ġto Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res " Ġto ĠlistOf (" strings . xml ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmain Values Strings Ġ= Ġget Values Strings Mock ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" values ", Ġlib Values Strings , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Variant Xml Files ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġvariant Raw Strings Ġ= Ġcreate Variant Raw Strings ( variant Dirs Path Finder ) ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( variant Raw Strings . getValues Folder Strings ( empty Set ())). contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Values Strings ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Get Ġraw Ġstrings Ġfor Ġun fl av ored Ġvariant Ġwith Ġmultiple Ġres Ġdirs `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmain Res Dirs Ġ= Ġget Variant Map Dir (" main ", Ġ" res ", Ġ" res 2 ") ĊĠĠĠĠĠĠĠ Ġval Ġlib Values Strings Ġ= Ġget Lib Values Strings Mock (" values ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġvariant Dirs Path Finder Ġ= Ġget Variant Dirs Path Finder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" main " Ġto Ġmain Res Dirs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmain Variant Xml Files Ġ= Ġget Variant Xml Files ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" main ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Res Dirs , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" values " Ġto Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res " Ġto ĠlistOf (" strings . xml "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res 2 " Ġto ĠlistOf (" strings . xml ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmain Values Strings Ġ= Ġget Values Strings Mock ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" values ", Ġlib Values Strings , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Variant Xml Files ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġvariant Raw Strings Ġ= Ġcreate Variant Raw Strings ( variant Dirs Path Finder ) ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( variant Raw Strings . getValues Folder Strings ( empty Set ())). contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Values Strings ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Get Ġraw Ġstrings Ġfor Ġun fl av ored Ġmult iling ual Ġvariant `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmain Res Dirs Ġ= Ġget Variant Map Dir (" main ", Ġ" res Mult iling ual ") ĊĠĠĠĠĠĠĠ Ġval Ġvariant Dirs Path Finder Ġ= Ġget Variant Dirs Path Finder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" main " Ġto Ġmain Res Dirs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmain Variant Xml Files Ġ= Ġget Variant Xml Files ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" main ", Ġmain Res Dirs , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" values " Ġto Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res Mult iling ual " Ġto ĠlistOf (" strings . xml ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" values - es " Ġto Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res Mult iling ual " Ġto ĠlistOf (" strings _ es . xml ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġbase Lib Values Strings Ġ= Ġget Lib Values Strings Mock (" values ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġbase Values Strings Ġ= Ġget Values Strings Mock ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" values ", Ġbase Lib Values Strings , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Variant Xml Files ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġes Lib Values Strings Ġ= Ġget Lib Values Strings Mock (" values - es ", Ġbase Values Strings ) ĊĠĠĠĠĠĠĠ Ġval Ġes Values Strings Ġ= Ġget Values Strings Mock ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" values - es ", Ġes Lib Values Strings , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Variant Xml Files ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġvariant Raw Strings Ġ= Ġcreate Variant Raw Strings ( variant Dirs Path Finder ) ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( variant Raw Strings . getValues Folder Strings ( empty Set ())). contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbase Values Strings , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġes Values Strings ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Get Ġraw Ġstrings Ġfor Ġsingle Ġdimension Ġfl av ored Ġvariant `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmain Variant Ġ= Ġ" main " ĊĠĠĠĠĠĠĠ Ġval Ġflavor Ġ= Ġ" client " ĊĠĠĠĠĠĠĠ Ġval Ġmain Res Dirs Ġ= Ġget Variant Map Dir ( main Variant , Ġ" res ") ĊĠĠĠĠĠĠĠ Ġval Ġflavor Res Dirs Ġ= Ġget Variant Map Dir ( flavor , Ġ" res ") ĊĠĠĠĠĠĠĠ Ġval Ġvariant Dirs Path Finder Ġ= Ġget Variant Dirs Path Finder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain Variant Ġto Ġmain Res Dirs , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflavor Ġto Ġflavor Res Dirs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmain Variant Xml Files Ġ= Ġget Variant Xml Files ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Variant , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Res Dirs , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" values " Ġto Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res " Ġto ĠlistOf (" strings . xml ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġflavor Variant Xml Files Ġ= Ġget Variant Xml Files ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" client ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflavor Res Dirs , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" values " Ġto Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res " Ġto ĠlistOf (" strings . xml ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġbase Lib s Values Strings Ġ= Ġget Lib Values Strings Mock (" values ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġflavor Values Strings Ġ= Ġget Values Strings Mock ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" values ", Ġbase Lib s Values Strings , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Variant Xml Files , Ġflavor Variant Xml Files ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġvariant Raw Strings Ġ= Ġcreate Variant Raw Strings ( variant Dirs Path Finder ) ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( variant Raw Strings . getValues Folder Strings ( empty Set ())). contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflavor Values Strings ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Get Ġraw Ġstrings Ġfor Ġsingle Ġdimension Ġmult iling ual Ġbase Ġfl av ored Ġvariant `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmain Variant Ġ= Ġ" main " ĊĠĠĠĠĠĠĠ Ġval Ġflavor Ġ= Ġ" client " ĊĠĠĠĠĠĠĠ Ġval Ġmain Res Dirs Ġ= Ġget Variant Map Dir ( main Variant , Ġ" res ", Ġ" res Mult iling ual ") ĊĠĠĠĠĠĠĠ Ġval Ġflavor Res Dirs Ġ= Ġget Variant Map Dir ( flavor , Ġ" res ") ĊĠĠĠĠĠĠĠ Ġval Ġvariant Dirs Path Finder Ġ= Ġget Variant Dirs Path Finder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain Variant Ġto Ġmain Res Dirs , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflavor Ġto Ġflavor Res Dirs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmain Variant Xml Files Ġ= Ġget Variant Xml Files ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Variant , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Res Dirs , Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" values " Ġto Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res " Ġto ĠlistOf (" strings . xml "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res Mult iling ual " Ġto ĠlistOf (" strings . xml ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" values - es " Ġto Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res Mult iling ual " Ġto ĠlistOf (" strings _ es . xml ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġflavor Variant Xml Files Ġ= Ġget Variant Xml Files ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflavor , Ġflavor Res Dirs , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" values " Ġto Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res " Ġto ĠlistOf (" strings . xml ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġbase Lib s Values Strings Ġ= Ġget Lib Values Strings Mock (" values ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġbase Values Strings Ġ= Ġget Values Strings Mock ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" values ", Ġbase Lib s Values Strings , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Variant Xml Files , Ġflavor Variant Xml Files ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġlang Lib s Values Strings Ġ= Ġget Lib Values Strings Mock ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" values - es ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbase Values Strings ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġlang Values Strings Ġ= Ġget Values Strings Mock ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" values - es ", Ġlang Lib s Values Strings , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Variant Xml Files , Ġflavor Variant Xml Files ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġvariant Raw Strings Ġ= Ġcreate Variant Raw Strings ( variant Dirs Path Finder ) ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( variant Raw Strings . getValues Folder Strings ( empty Set ())). contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbase Values Strings , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlang Values Strings ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Get Ġraw Ġstrings Ġfor Ġsingle Ġdimension Ġmult iling ual Ġflavor Ġfl av ored Ġvariant `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmain Variant Ġ= Ġ" main " ĊĠĠĠĠĠĠĠ Ġval Ġflavor Ġ= Ġ" client " ĊĠĠĠĠĠĠĠ Ġval Ġmain Res Dirs Ġ= Ġget Variant Map Dir ( main Variant , Ġ" res ") ĊĠĠĠĠĠĠĠ Ġval Ġflavor Res Dirs Ġ= Ġget Variant Map Dir ( flavor , Ġ" res ", Ġ" res Multi ") ĊĠĠĠĠĠĠĠ Ġval Ġvariant Dirs Path Finder Ġ= Ġget Variant Dirs Path Finder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain Variant Ġto Ġmain Res Dirs , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflavor Ġto Ġflavor Res Dirs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmain Variant Xml Files Ġ= Ġget Variant Xml Files ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Variant , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Res Dirs , Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" values " Ġto Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res " Ġto ĠlistOf (" strings . xml ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġflavor Variant Xml Files Ġ= Ġget Variant Xml Files ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflavor , Ġflavor Res Dirs , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" values " Ġto Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res " Ġto ĠlistOf (" strings . xml "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res Multi " Ġto ĠlistOf (" strings . xml ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" values - es " Ġto Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res Multi " Ġto ĠlistOf (" strings _ es . xml ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġbase Lib s Values Strings Ġ= Ġget Lib Values Strings Mock (" values ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġbase Values Strings Ġ= Ġget Values Strings Mock ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" values ", Ġbase Lib s Values Strings , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Variant Xml Files , Ġflavor Variant Xml Files ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġlang Lib s Values Strings Ġ= Ġget Lib Values Strings Mock ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" values - es ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbase Values Strings ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġlang Values Strings Ġ= Ġget Values Strings Mock ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" values - es ", Ġlang Lib s Values Strings , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Variant Xml Files , Ġflavor Variant Xml Files ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġvariant Raw Strings Ġ= Ġcreate Variant Raw Strings ( variant Dirs Path Finder ) ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( variant Raw Strings . getValues Folder Strings ( empty Set ())). contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbase Values Strings , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlang Values Strings ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Get Ġraw Ġstrings Ġfor Ġsingle Ġdimension Ġmult iling ual Ġall Ġfl av ored Ġvariant `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmain Variant Ġ= Ġ" main " ĊĠĠĠĠĠĠĠ Ġval Ġflavor Ġ= Ġ" client " ĊĠĠĠĠĠĠĠ Ġval Ġmain Res Dirs Ġ= Ġget Variant Map Dir ( main Variant , Ġ" res ", Ġ" res Mult iling ual ") ĊĠĠĠĠĠĠĠ Ġval Ġflavor Res Dirs Ġ= Ġget Variant Map Dir ( flavor , Ġ" res ", Ġ" res Multi ") ĊĠĠĠĠĠĠĠ Ġval Ġvariant Dirs Path Finder Ġ= Ġget Variant Dirs Path Finder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain Variant Ġto Ġmain Res Dirs , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflavor Ġto Ġflavor Res Dirs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmain Variant Xml Files Ġ= Ġget Variant Xml Files ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Variant , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Res Dirs , Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" values " Ġto Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res " Ġto ĠlistOf (" strings . xml "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res Mult iling ual " Ġto ĠlistOf (" strings . xml ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" values - es " Ġto Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res Mult iling ual " Ġto ĠlistOf (" strings _ es . xml ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġflavor Variant Xml Files Ġ= Ġget Variant Xml Files ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflavor , Ġflavor Res Dirs , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" values " Ġto Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res " Ġto ĠlistOf (" strings . xml "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res Multi " Ġto ĠlistOf (" strings . xml ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" values - es " Ġto Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" res Multi " Ġto ĠlistOf (" strings _ es . xml ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġbase Lib s Values Strings Ġ= Ġget Lib Values Strings Mock (" values ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġbase Values Strings Ġ= Ġget Values Strings Mock ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" values ", Ġbase Lib s Values Strings , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Variant Xml Files , Ġflavor Variant Xml Files ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġlang Lib s Values Strings Ġ= Ġget Lib Values Strings Mock ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" values - es ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbase Values Strings ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġlang Values Strings Ġ= Ġget Values Strings Mock ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" values - es ", Ġlang Lib s Values Strings , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Variant Xml Files , Ġflavor Variant Xml Files ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġvariant Raw Strings Ġ= Ġcreate Variant Raw Strings ( variant Dirs Path Finder ) ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( variant Raw Strings . getValues Folder Strings ( empty Set ())). contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbase Values Strings , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlang Values Strings ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Variant Dirs Path Finder ( existing Variants With Dirs : ĠMap < String , ĠMap < String , ĠFile >>) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ: ĠVariant Dirs Path Finder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvariant Res Paths Ġ= Ġmutable ListOf < Variant Res Paths >() ĊĠĠĠĠĠĠĠ Ġfor Ġ(( variant Name , Ġres Map ) Ġin Ġexisting Variants With Dirs ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġset Of Paths Ġ= Ġres Map . toList (). map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . second ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. toSet () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Paths Ġ= ĠVariant Res Paths ( variant Name , Ġset Of Paths ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Expected Variant Values Folders ( res Paths ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvariant Res Paths . add ( res Paths ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġvariant Dirs Path Finder Ġ= Ġmock k < Variant Dirs Path Finder >() ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġvariant Dirs Path Finder . get Existing Paths Res Dirs () Ġ}. returns ( variant Res Paths ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġvariant Dirs Path Finder ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Variant Xml Files ( ĊĠĠĠĠĠĠĠ Ġvariant Name : ĠString , ĊĠĠĠĠĠĠĠ Ġgather ed Res Dirs : ĠMap < String , ĠFile >, ĊĠĠĠĠĠĠĠ Ġvalues To Res Files : ĠMap < String , ĠMap < String , ĠList < String >>> ĊĠĠĠ Ġ): ĠVariant Xml Files Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalues Folder Xml Files List Ġ= Ġmutable ListOf < Values Folder Xml Files >() ĊĠĠĠĠĠĠĠ Ġval Ġfiles Per Values Folder Ġ= Ġvalues To Res Files . map Values Ġ{ Ġvalues Folder Map Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalues Folder Map . value . map Ġ{ Ġres Dir With File Names Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Dir With File Names . value . map Ġ{ ĠfileName Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( gather ed Res Dirs . getValue ( res Dir With File Names . key ), Ġ"${ values Folder Map . key }/ $ fileName ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. flatten () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ(( value Folder Name , Ġfiles List ) Ġin Ġfiles Per Values Folder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalues Folder Xml Files List . add ( Values Folder Xml Files ( value Folder Name , Ġfiles List . toSet ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġvariant Xml Files Ġ= Ġmock k < Variant Xml Files >() ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġvariant Xml Files . variant Name Ġ}. returns ( variant Name ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġvariant Xml Files . values Folder Xml Files Ġ}. returns ( values Folder Xml Files List ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġvariant Xml Files ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Lib Values Strings Mock ( ĊĠĠĠĠĠĠĠ Ġfolder Name : ĠString , ĊĠĠĠĠĠĠĠ Ġparent : ĠValues Folder Strings ? ĊĠĠĠ Ġ): ĠValues Folder Strings Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlib Values Strings Ġ= Ġmock k < Values Folder Strings >() ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġlibraries Values Strings Provider . getValues Strings For ( folder Name , Ġparent ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. returns ( lib Values Strings ) ĊĠĠĠĠĠĠĠ Ġreturn Ġlib Values Strings ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Values Strings Mock ( ĊĠĠĠĠĠĠĠ Ġfolder Name : ĠString , ĊĠĠĠĠĠĠĠ Ġparent Values Folder Strings : ĠValues Folder Strings , ĊĠĠĠĠĠĠĠ Ġvar arg Ġvariant Xml Files : ĠVariant Xml Files ĊĠĠĠ Ġ): ĠValues Folder Strings Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalues Strings Ġ= Ġmock k < Values Folder Strings >() ĊĠĠĠĠĠĠĠ Ġevery Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalues Folder Strings Provider . getValues Strings For Folder From Variants ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfolder Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġany (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent Values Folder Strings ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. returns ( values Strings ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġvalues Strings ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Expected Variant Values Folders ( res Paths : ĠVariant Res Paths ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvariant Values Folders Ġ= Ġmock k < Variant Values Folders >() ĊĠĠĠĠĠĠĠ Ġval Ġvalues Folders Ġ= Ġmutable Set Of < File >() ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( res Path Ġin Ġres Paths . paths ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfolders : ĠList < File > Ġ= Ġres Path . list Files ()?. toList () Ġ?: Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalues Folders . addAll ( folders ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġvariant Values Folders . variant Name Ġ}. returns ( res Paths . variant Name ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġvariant Values Folders . values Folders Ġ}. returns ( values Folders . toList ()) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġvariant Values Folders Factory . create ( res Paths ) Ġ}. returns ( variant Values Folders ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Variant Map Dir ( variant Name : ĠString , Ġvar arg Ġres Dirs Names : ĠString ): ĠMap < String , ĠFile > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdirs Ġ= Ġmutable Map Of < String , ĠFile >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( res Dir Name Ġin Ġres Dirs Names ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdirs [ res Dir Name ] Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources Handler . getResource File (" raw / variant Mock /$ variant Name /$ res Dir Name ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġdirs ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Variant Raw Strings ( variant Dirs Path Finder : ĠVariant Dirs Path Finder ): ĠVariant Raw Strings Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġandroid Variant Context . variant Dirs Path Finder Ġ}. returns ( variant Dirs Path Finder ) ĊĠĠĠĠĠĠĠ Ġreturn ĠVariant Raw Strings ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid Variant Context , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalues Folder Strings Provider , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlibraries Values Strings Provider Factory , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvariant Values Folders Factory ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }