package Ġcom . t inder . git query . core Ċ Ċ import Ġcom . t inder . git query . core . config . Git Query Config Ċ import Ġcom . t inder . git query . core . config . Git Query Config Schema Ċ import Ġcom . t inder . git query . core . config . Git Query Init Config Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . rules . Temporary Folder Ċ import Ġjava . io . File Ċ Ċ class ĠGit Query Init Test Ġ{ ĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġval Ġtest Project Dir Ġ= ĠTemporary Folder () ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Project Dir . create () ĊĠĠĠĠĠĠĠ Ġtest Project Dir . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Folder (" git query - output ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After ĊĠĠĠ Ġfun ĠtearDown () Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Project Dir . delete () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` init Config Ġ- Ġgiven Ġmissing Ġremote , Ġshould Ġfail `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġval Ġactual Error Ġ= Ġkotlin . run Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGit Query Init . init Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig File Ġ= Ġ"${ test Project Dir . root }/ git query . yml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Ġ= ĠGit Query Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġschema Ġ= ĠGit Query Config Schema ( version Ġ= Ġ" 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbranch Ġ= Ġ" master ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfiles Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" definitions " Ġto Ġmap Of (" user . proto " Ġto Ġ" 4 2 9 3 3 4 4 6 d 0 3 2 1 9 5 8 e 8 c 1 2 2 1 6 d 0 4 b 9 f 0 c 3 8 2 ebf 1 b ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepo Dir Ġ= Ġ"${ test Project Dir . root }/ tmp / remote ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Dir Ġ= Ġ"${ test Project Dir . root }/ git query - output " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Dir Ġ= Ġtest Project Dir . root . path ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. exception OrNull () ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ Ġrequire ( actual Error Ġis ĠIllegalArgumentException ) ĊĠĠĠĠĠĠĠ Ġassert ( actual Error . message Ġ== Ġ" Parameter Ġremote Ġmay Ġnot Ġbe Ġa Ġblank Ġstring Ġ() ") ĊĊĠĠĠĠĠĠĠ Ġassert (! File ("${ test Project Dir . root }/ git query - output / definitions / user . proto "). exists ()) ĊĠĠĠĠĠĠĠ Ġassert (! File ("${ test Project Dir . root }/ git query - output / README . md "). exists ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` init Config Ġ- Ġgiven Ġmissing Ġbranch , Ġshould Ġfail `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġval Ġactual Error Ġ= Ġkotlin . run Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGit Query Init . init Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig File Ġ= Ġ"${ test Project Dir . root }/ git query . yml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Ġ= ĠGit Query Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġschema Ġ= ĠGit Query Config Schema ( version Ġ= Ġ" 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremote Ġ= Ġ" https :// github . com / aming h aders o hi / Proto Example . git ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbranch Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepo Dir Ġ= Ġ"${ test Project Dir . root }/ tmp / remote ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Dir Ġ= Ġ"${ test Project Dir . root }/ git query - output " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Dir Ġ= Ġtest Project Dir . root . path ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. exception OrNull () ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ Ġrequire ( actual Error Ġis ĠIllegalArgumentException ) ĊĠĠĠĠĠĠĠ Ġassert ( actual Error . message Ġ== Ġ" Parameter Ġbranch Ġmay Ġnot Ġbe Ġa Ġblank Ġstring Ġ() ") ĊĊĠĠĠĠĠĠĠ Ġassert (! File ("${ test Project Dir . root }/ git query - output / definitions / user . proto "). exists ()) ĊĠĠĠĠĠĠĠ Ġassert (! File ("${ test Project Dir . root }/ git query - output / README . md "). exists ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` init Config Ġ- Ġgiven Ġempty Ġinclude Glob s , Ġshould Ġfail `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġval Ġactual Error Ġ= Ġkotlin . run Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGit Query Init . init Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig File Ġ= Ġ"${ test Project Dir . root }/ git query . yml ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Ġ= ĠGit Query Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġschema Ġ= ĠGit Query Config Schema ( version Ġ= Ġ" 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremote Ġ= Ġ" https :// github . com / aming h aders o hi / Proto Example . git ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbranch Ġ= Ġ" master ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepo Dir Ġ= Ġ"${ test Project Dir . root }/ tmp / remote ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Dir Ġ= Ġ"${ test Project Dir . root }/ git query - output " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Dir Ġ= Ġtest Project Dir . root . path ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. exception OrNull () ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ Ġrequire ( actual Error Ġis ĠIllegalArgumentException ) ĊĠĠĠĠĠĠĠ Ġassert ( actual Error . message Ġ== Ġ" Failed Ġto Ġinit Ġconfig : Ġinclude Glob s Ġis Ġempty ") ĊĊĠĠĠĠĠĠĠ Ġassert (! File ("${ test Project Dir . root }/ git query - output / definitions / user . proto "). exists ()) ĊĠĠĠĠĠĠĠ Ġassert (! File ("${ test Project Dir . root }/ git query - output / README . md "). exists ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` init Config Ġ- Ġgiven Ġnon - existent Ġfile , Ġshould Ġcreate Ġfile `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ ĠGit Query Init . init Config ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig File Ġ= Ġ"${ test Project Dir . root }/ git query . yml ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Ġ= ĠGit Query Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġschema Ġ= ĠGit Query Config Schema ( version Ġ= Ġ" 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremote Ġ= Ġ" https :// github . com / aming h aders o hi / Proto Example . git ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbranch Ġ= Ġ" master ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepo Dir Ġ= Ġ"${ test Project Dir . root }/ tmp / remote ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Dir Ġ= Ġ"${ test Project Dir . root }/ git query - output ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Config Ġ= ĠGit Query Init Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinclude Glob s Ġ= ĠlistOf (" ** /*. proto ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Dir Ġ= Ġtest Project Dir . root . path ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġassert ( File ("${ test Project Dir . root }/ git query . yml "). exists ()) ĊĠĠĠ Ġ} Ċ } Ċ