package Ġcom . github . mv ys ny . dyn atest Ċ Ċ import Ġjava . io . File Ċ import Ġjava . nio . file . Files Ċ import Ġkotlin . properties . ReadWrite Property Ċ import Ġkotlin . test . expect Ċ Ċ class ĠFile TestUtils Test Ġ: ĠDyn a Test ({ ĊĠĠĠ Ġgroup (" expect Exists () ") Ġ{ ĊĠĠĠĠĠĠĠ Ġtest (" passes Ġon Ġexisting Ġfile ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile . create TempFile (" fo oo o ", Ġ" bar "). expect Exists () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest (" passes Ġon Ġexisting Ġdir ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFiles . create Temp Directory (" foo "). expect Exists () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest (" fails Ġon Ġnon existing Ġfile ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Throws ( AssertionError :: class , Ġ"${ slash } non ${ slash } existing Ġdoes Ġnot Ġexist ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile ("/ non / existing "). expect Exists () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġgroup (" expect Not Exists () ") Ġ{ ĊĠĠĠĠĠĠĠ Ġtest (" fails Ġon Ġexisting Ġfile ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Throws ( AssertionError :: class , Ġ" bar Ġexists ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile . create TempFile (" fo oo o ", Ġ" bar "). expect Not Exists () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest (" fails Ġon Ġexisting Ġdir ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Throws ( AssertionError :: class , Ġ" Ġexists ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFiles . create Temp Directory (" foo "). expect Not Exists () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest (" passes Ġon Ġnon existing Ġfile ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile ("/ non / existing "). expect Not Exists () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġgroup (" expect File () ") Ġ{ ĊĠĠĠĠĠĠĠ Ġtest (" passes Ġon Ġexisting Ġfile ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile . create TempFile (" fo oo o ", Ġ" bar "). expect File () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest (" fails Ġon Ġexisting Ġdir ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Throws ( AssertionError :: class , Ġ" Ġis Ġnot Ġa Ġfile ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFiles . create Temp Directory (" foo "). expect File () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest (" fails Ġon Ġnon existing Ġfile ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Throws ( AssertionError :: class , Ġ"${ slash } non ${ slash } existing Ġdoes Ġnot Ġexist ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile ("/ non / existing "). expect File () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġgroup (" expect Directory () ") Ġ{ ĊĠĠĠĠĠĠĠ Ġtest (" fails Ġon Ġexisting Ġfile ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Throws ( AssertionError :: class , Ġ" bar Ġis Ġnot Ġa Ġdirectory ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile . create TempFile (" fo oo o ", Ġ" bar "). expect Directory () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest (" passes Ġon Ġexisting Ġdir ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFiles . create Temp Directory (" foo "). expect Directory () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest (" fails Ġon Ġnon existing Ġfile ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Throws ( AssertionError :: class , Ġ"${ slash } non ${ slash } existing Ġdoes Ġnot Ġexist ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile ("/ non / existing "). expect Directory () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġgroup (" expect Readable File () ") Ġ{ ĊĠĠĠĠĠĠĠ Ġtest (" passes Ġon Ġexisting Ġfile ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile . create TempFile (" fo oo o ", Ġ" bar "). expect Readable File () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest (" fails Ġon Ġexisting Ġdir ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Throws ( AssertionError :: class , Ġ" Ġis Ġnot Ġa Ġfile ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFiles . create Temp Directory (" foo "). expect Readable File () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest (" fails Ġon Ġnon existing Ġfile ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Throws ( AssertionError :: class , Ġ"${ slash } non ${ slash } existing Ġdoes Ġnot Ġexist ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile ("/ non / existing "). expect Readable File () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! Os Utils . is Windows ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthis Ġtest Ġdoesn 't Ġwork Ġon ĠWindows ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest (" fails Ġon Ġun readable Ġfile ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Throws ( AssertionError :: class , Ġ" Ġis Ġnot Ġreadable ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf Ġ= ĠFile . create TempFile (" fo oo o ", Ġ" bar ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf . set Readable ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf . expect Readable File () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest (" suc ceeds Ġon Ġread - only Ġfile ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf Ġ= ĠFile . create TempFile (" fo oo o ", Ġ" bar ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf . set Writable ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf . expect Readable File () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġgroup (" expect Writable File () ") Ġ{ ĊĠĠĠĠĠĠĠ Ġtest (" passes Ġon Ġexisting Ġfile ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile . create TempFile (" fo oo o ", Ġ" bar "). expect Writable File () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest (" fails Ġon Ġexisting Ġdir ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Throws ( AssertionError :: class , Ġ" Ġis Ġnot Ġa Ġfile ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFiles . create Temp Directory (" foo "). expect Writable File () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest (" fails Ġon Ġnon existing Ġfile ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Throws ( AssertionError :: class , Ġ"${ slash } non ${ slash } existing Ġdoes Ġnot Ġexist ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile ("/ non / existing "). expect Writable File () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest (" suc ceeds Ġon Ġun readable Ġfile ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf Ġ= ĠFile . create TempFile (" fo oo o ", Ġ" bar ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf . set Readable ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf . expect Writable File () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest (" fails Ġon Ġread - only Ġfile ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Throws ( AssertionError :: class , Ġ" Ġis Ġnot Ġwritable ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf Ġ= ĠFile . create TempFile (" fo oo o ", Ġ" bar ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf . set Writable ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf . expect Writable File () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġgroup (" with TempDir () ") Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// Ġa Ġdemo Ġof Ġa Ġfunction Ġwhich Ġuses Ġ` with TempDir ` Ġand Ġpop ulates / in its Ġthe Ġfolder Ġfurther . ĊĠĠĠĠĠĠĠ Ġfun ĠDyn a Node Group . reusable (): ĠRead Write Property < Any ?, ĠFile > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith TempDir (" sources ") Ġ{ Ġdir Ġ-> ĠFile ( dir , Ġ" foo . txt "). write Text ("") Ġ} ĊĊĠĠĠĠĠĠĠ Ġgroup (" simple ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtemp Dir : ĠFile Ġby Ġwith TempDir () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġfile : ĠFile ĊĠĠĠĠĠĠĠĠĠĠĠ ĠbeforeEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġexpect Ġthat Ġthe Ġfolder Ġalready Ġexists , Ġso Ġthat Ġwe Ġcan Ġe . g . Ġcopy Ġstuff Ġthere ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Dir . expect Directory () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Ġ= ĠFile ( temp Dir , Ġ" foo . txt ") Ġ// Ġexample Ġcontents ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile . write Text ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest (" temp Ġdir Ġchecker ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Dir . expect Directory () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Dir . expect Files (" ** /*. txt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile . expect Readable File () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġtests Ġthe Ġ' reusable ' Ġapproach Ġwhere Ġthe Ġdeveloper Ġdoesn 't Ġcall Ġ` with TempDir ()` Ġdirectly ĊĠĠĠĠĠĠĠ Ġ// Ġbut Ġcreates Ġa Ġre usable Ġfunction . ĊĠĠĠĠĠĠĠ Ġgroup (" reusable ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtemp Dir : ĠFile Ġby Ġre usable () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest (" txt Ġfile Ġchecker ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Dir . expect Files (" ** /*. txt ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġgroup (" de letes Ġtemp Ġfolder Ġafterwards ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtemp Dir : ĠFile Ġby Ġwith TempDir () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠafterEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect ( false ) Ġ{ Ġtemp Dir . exists () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest (" dummy ") Ġ{} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }) Ċ Ċ val Ġslash : ĠChar Ġ= ĠFile . separator Char Ċ