package Ġnet . cord a . error Utilities . resource Generator Ċ Ċ import Ġjunit . framework . TestCase . assertEquals Ċ import Ġnet . cord a . common . logging . error Reporting . ResourceBundle Properties Ċ import Ġorg . junit . Test Ċ import Ġjava . util .* Ċ Ċ class ĠResource Generator Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġclasses Ġ= ĠlistOf ( Test Codes 1 :: class . qualified Name !! , ĠTest Codes 2 :: class . qualified Name !! ) ĊĊĠĠĠ Ġprivate Ġfun Ġexpected Codes () Ġ: ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcodes 1 Ġ= ĠTest Codes 1 . values (). map Ġ{ Ġ"${ it . namespace . toLowerCase ()} -${ it . name . replace ("_ ", Ġ"- "). toLowerCase () }" Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcodes 2 Ġ= ĠTest Codes 2 . values (). map Ġ{ Ġ"${ it . namespace . toLowerCase ()} -${ it . name . replace ("_ ", Ġ"- "). toLowerCase () }" Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġcodes 1 Ġ+ Ġcodes 2 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( timeout Ġ= Ġ 1 0 0 0 ) ĊĠĠĠ Ġfun Ġ` no Ġcodes Ġmarked Ġas Ġmissing Ġif Ġall Ġresources Ġare Ġpresent `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresource Generator Ġ= ĠResource Generator ( listOf ()) ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Files Ġ= Ġexpected Codes (). map Ġ{ Ġ"$ it . properties " Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġmissing Ġ= Ġresource Generator . calculate Missing Resources ( classes , Ġcurrent Files , ĠTest Codes 1 :: class . java . class Loader ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( set Of < String >(), Ġmissing . toSet ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( timeout Ġ= Ġ 1 0 0 0 ) ĊĠĠĠ Ġfun Ġ` missing Ġlocales Ġare Ġmarked Ġas Ġmissing Ġwhen Ġother Ġlocales Ġare Ġpresent `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresource Generator Ġ= ĠResource Generator ( listOf (" en - US ", Ġ" ga - IE "). map Ġ{ ĠLocale . for Language Tag ( it ) Ġ}) ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Files Ġ= Ġexpected Codes (). flatMap Ġ{ ĠlistOf ("$ it . properties ", Ġ"${ it }_ en _ US . properties ") Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġmissing Ġ= Ġresource Generator . calculate Missing Resources ( classes , Ġcurrent Files , ĠTest Codes 1 :: class . java . class Loader ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Codes (). map Ġ{ Ġ"${ it }_ ga _ IE . properties " Ġ}. toSet (), Ġmissing . toSet ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( timeout Ġ= Ġ 1 0 0 0 ) ĊĠĠĠ Ġfun Ġ` test Ġwriting Ġout Ġfiles Ġworks Ġcorrectly `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠFirst Ġtest Ġthat Ġif Ġall Ġfiles Ġare Ġmissing Ġthen Ġthe Ġresource Ġgenerator Ġdetect s Ġthis ĊĠĠĠĠĠĠĠ Ġval Ġresource Generator Ġ= ĠResource Generator ( listOf ()) ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Files Ġ= ĠlistOf < String >() ĊĠĠĠĠĠĠĠ Ġval Ġmissing Ġ= Ġresource Generator . calculate Missing Resources ( classes , Ġcurrent Files , ĠTest Codes 1 :: class . java . class Loader ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Codes (). map Ġ{ Ġ"$ it . properties " Ġ}. toSet (), Ġmissing . toSet ()) ĊĊĠĠĠĠĠĠĠ Ġ// ĠNow Ġcheck Ġthat Ġall Ġresource Ġfiles Ġthat Ġshould Ġbe Ġcreated Ġare ĊĠĠĠĠĠĠĠ Ġval Ġtemp Dir Ġ= Ġcreate TempDir () ĊĠĠĠĠĠĠĠ Ġresource Generator . create Resources ( missing , Ġtemp Dir . to Path ()) ĊĠĠĠĠĠĠĠ Ġval Ġcreated Files Ġ= Ġtemp Dir . walk Top Down (). filter Ġ{ Ġit . isFile Ġ&& Ġit . extension Ġ== Ġ" properties " Ġ}. map Ġ{ Ġit . name Ġ}. toSet () ĊĠĠĠĠĠĠĠ ĠassertEquals ( missing . toSet (), Ġcreated Files ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠNow Ġcheck Ġthat Ġa Ġcreated Ġfile Ġhas Ġthe Ġexpected Ġproperties Ġand Ġvalues ĊĠĠĠĠĠĠĠ Ġval Ġproperties Ġ= ĠProperties () ĊĠĠĠĠĠĠĠ Ġproperties . load ( temp Dir . walk (). filter Ġ{ Ġit . isFile Ġ&& Ġit . extension Ġ== Ġ" properties "} . first (). inputStream ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Resource Generator . SHORT _ DESCRIPTION _ DEFAULT , Ġproperties . getProperty ( ResourceBundle Properties . SHORT _ DESCRIPTION )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Resource Generator . ACTION S _ TO _ FIX _ DEFAULT , Ġproperties . getProperty ( ResourceBundle Properties . ACTION S _ TO _ FIX )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Resource Generator . MESSAGE _ TEMPLATE _ DEFAULT , Ġproperties . getProperty ( ResourceBundle Properties . MESSAGE _ TEMPLATE )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Resource Generator . ALI ASE S _ DEFAULT , Ġproperties . getProperty ( ResourceBundle Properties . ALI ASE S )) ĊĠĠĠ Ġ} Ċ }