package Ġcom . pic pay . gradle lint . version check . cache Ċ Ċ import Ġcom . pic pay . gradle lint . version check . library . Library Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Assert . assertFalse Ċ import Ġorg . junit . Assert . assertTrue Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . runners . JUnit 4 Ċ import Ġjava . io . File Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ private Ġconst Ġval ĠCACHE _ PARENT _ DIR Ġ= Ġ" build / tmp " Ċ private Ġconst Ġval ĠCACHE _ DIR Ġ= Ġ"$ CACHE _ PARENT _ DIR / cache " Ċ Ċ @ RunWith ( JUnit 4 :: class ) Ċ internal Ġclass ĠRepository Cache Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` add Ġmethod ĠShould Ġsave Ġfile Ġfrom Ġlibrary Ġin Ġcache Ġdir `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcache Ġ= Ġcreate Cache () ĊĊĠĠĠĠĠĠĠ Ġval Ġlib Ġ= ĠLibrary ( groupId Ġ= Ġ" group ", Ġartifact Id Ġ= Ġ" artifact ", Ġversion Ġ= Ġ" 1 . 0 ") ĊĠĠĠĠĠĠĠ Ġval Ġexpect Created FilePath Ġ= Ġ"$ CACHE _ DIR / group . artifact " ĊĊĠĠĠĠĠĠĠ Ġcache . add ( lib ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( File ( expect Created FilePath ). exists ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġmethod ĠShould Ġreturn Ġlibrary Ġfrom Ġfile Ġin Ġcache Ġdir `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcache Ġ= Ġcreate Cache () ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Result Ġ= ĠLibrary ( groupId Ġ= Ġ" group ", Ġartifact Id Ġ= Ġ" artifact ", Ġversion Ġ= Ġ" 1 . 0 ") ĊĊĠĠĠĠĠĠĠ ĠFile ("$ CACHE _ DIR / group . artifact ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. write Text (" group : artifact : 1 . 0 ") ĊĊĠĠĠĠĠĠĠ Ġval Ġcached Lib Ġ= Ġcache . get (" group ", Ġ" artifact ") ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Result , Ġcached Lib ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` clear Ġmethod ĠShould Ġdelete Ġfile Ġin Ġcache Ġdir `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcache Ġ= Ġcreate Cache () ĊĊĠĠĠĠĠĠĠ Ġval Ġcache File Ġ= ĠFile ("$ CACHE _ DIR / group . artifact ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġwrite Text (" group : artifact : 1 . 0 ") Ġ} ĊĊĠĠĠĠĠĠĠ Ġcache . clear (" group ", Ġ" artifact ") ĊĊĠĠĠĠĠĠĠ ĠassertFalse ( cache File . exists ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` clear All Ġmethod ĠShould Ġdelete Ġcache Ġdir `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcache Ġ= Ġcreate Cache () ĊĊĠĠĠĠĠĠĠ Ġcache . clear All () ĊĊĠĠĠĠĠĠĠ ĠassertFalse ( File ( CACHE _ DIR ). exists ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` with Ġoutdated Ġcache Ġshould Ġdelete Ġcontent Ġin Ġcache Ġdir `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġcreate Ġinitial Ġcache Ġdir ĊĠĠĠĠĠĠĠ Ġcreate Cache () ĊĊĠĠĠĠĠĠĠ Ġval Ġcache Dir Ġ= ĠFile ( CACHE _ DIR ) ĊĠĠĠĠĠĠĠ Ġval Ġfile In Cache Dir Ġ= ĠFile ("$ CACHE _ DIR / file . test ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġwrite Text (" test ") Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( file In Cache Dir . exists ()) ĊĠĠĠĠĠĠĠ ĠassertTrue ( cacheDir . list Files () !!. isNotEmpty ()) ĊĊĠĠĠĠĠĠĠ Ġ// Ġclean Ġold Ġcache Ġfiles ĊĠĠĠĠĠĠĠ Ġcreate Cache ( lifetime Ġ= Ġ 2 , Ġtime Unit Ġ= ĠTimeUnit . NAN O SECONDS ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( cacheDir . list Files (). isNull OrEmpty ()) ĊĠĠĠĠĠĠĠ ĠassertFalse ( file In Cache Dir . exists ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Cache ( ĊĠĠĠĠĠĠĠ Ġlifetime : ĠLong Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġtime Unit : ĠTimeUnit Ġ= ĠTimeUnit . MILLISECONDS ĊĠĠĠ Ġ): ĠRepository Cache Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRepository Cache ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache Parent Dir Ġ= ĠCACHE _ PARENT _ DIR , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlifetime Ġ= Ġlifetime , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime Unit Ġ= Ġtime Unit ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After ĊĠĠĠ Ġfun Ġfinish () Ġ{ ĊĠĠĠĠĠĠĠ ĠFile ( CACHE _ DIR ). delete Re cursively () ĊĠĠĠ Ġ} Ċ }