package Ġde . daniel sch ol z . file Indexer Ċ Ċ import Ġorg . hamcrest . Matchers . contains String Ċ import Ġorg . junit . Assert . assertThat Ċ import Ġorg . junit . Test Ċ import Ġjava . io . File Ċ import Ġjava . nio . file . Files Ċ import Ġjava . nio . file . Standard Open Option Ċ import Ġjava . time . Instant Ċ Ċ class ĠVerify Test Ġ: ĠBaseTest () Ġ{ ĊĊĠĠ Ġprivate Ġval Ġroot Ġ= Ġ"$ base Root Dir / verify " ĊĊĠĠ Ġ@ Test ĊĠĠ Ġfun Ġtest 1 () Ġ{ ĊĠĠĠĠĠ Ġval Ġsystem Out Ġ= Ġcapture System Out Ġ{ ĊĠĠĠĠĠĠĠĠ Ġcopy File ("$ root / a . txt ", Ġ"$ root / subdir / a . txt ") ĊĊĠĠĠĠĠĠĠĠ Ġmain ( array Of ( Commands . INDEX _ FILES . command , Ġ"-- db ", Ġdb name , Ġ"-- progress Window : no ", Ġ"-- time Zone ", Ġ" Europe / Ber lin ", Ġ"$ root / subdir ")) Ġ{ Ġpl Ġ-> Ċ // ĠĠĠĠĠĠĠĠ Ġprintln ( pl . db . query Debug (" Select Ġ* Ġfrom ĠFile Location Ġ")) Ċ // ĠĠĠĠĠĠĠĠ Ġprintln ( pl . db . query Debug (" Select Ġ* Ġfrom ĠFile Meta Ġ")) ĊĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠ Ġmain ( array Of ( Commands . VERIFY _ FILES . command , Ġ"-- db ", Ġdb name , Ġ"$ root / subdir ")) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ ĠassertThat ( system Out , Ġcontains String (" No Ġdifference Ġfound ")) ĊĠĠ Ġ} ĊĊĠĠ Ġ@ Test ĊĠĠ Ġfun Ġtest 2 () Ġ{ ĊĠĠĠĠĠ Ġval Ġsystem Out Ġ= Ġcapture System Out Ġ{ ĊĠĠĠĠĠĠĠĠ Ġcopy File ("$ root / a . txt ", Ġ"$ root / subdir / a . txt ") ĊĊĠĠĠĠĠĠĠĠ Ġmain ( array Of ( Commands . INDEX _ FILES . command , Ġ"-- db ", Ġdb name , Ġ"-- progress Window : no ", Ġ"-- time Zone ", Ġ" Europe / Ber lin ", Ġ"$ root / subdir ")) Ġ{ Ġpl Ġ-> Ċ // ĠĠĠĠĠĠĠĠ Ġprintln ( pl . db . query Debug (" Select Ġ* Ġfrom ĠFile Location Ġ")) Ċ // ĠĠĠĠĠĠĠĠ Ġprintln ( pl . db . query Debug (" Select Ġ* Ġfrom ĠFile Meta Ġ")) ĊĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠ ĠFile ("$ root / subdir / a . txt "). set LastModified ( Instant . now (). to Epoch Milli () Ġ- Ġ 1 0 0 0 0 ) ĊĊĠĠĠĠĠĠĠĠ Ġmain ( array Of ( Commands . VERIFY _ FILES . command , Ġ"-- db ", Ġdb name , Ġ"$ root / subdir ")) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ ĠassertThat ( system Out , Ġcontains String (" subdir \\ a . txt Ġfile Ġmodification Ġdate Ġis Ġdifferent ")) ĊĠĠ Ġ} ĊĊĠĠ Ġ@ Test ĊĠĠ Ġfun Ġtest 3 () Ġ{ ĊĠĠĠĠĠ Ġval Ġsystem Out Ġ= Ġcapture System Out Ġ{ ĊĠĠĠĠĠĠĠĠ Ġcopy File ("$ root / a . txt ", Ġ"$ root / subdir / a . txt ") ĊĊĠĠĠĠĠĠĠĠ Ġmain ( array Of ( Commands . INDEX _ FILES . command , Ġ"-- db ", Ġdb name , Ġ"-- progress Window : no ", Ġ"-- time Zone ", Ġ" Europe / Ber lin ", Ġ"$ root / subdir ")) ĊĊĠĠĠĠĠĠĠĠ ĠFiles . write ( File ("$ root / subdir / a . txt "). to Path (), ĠByteArray ( 0 ), ĠStandard Open Option . TRUNC ATE _ EXIST ING ) ĊĊĠĠĠĠĠĠĠĠ Ġmain ( array Of ( Commands . VERIFY _ FILES . command , Ġ"-- db ", Ġdb name , Ġ"$ root / subdir ")) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ ĠassertThat ( system Out , Ġcontains String (" subdir \\ a . txt Ġfile Ġsize Ġis Ġdifferent ")) ĊĠĠ Ġ} ĊĊĠĠ Ġ@ Test ĊĠĠ Ġfun Ġtest 4 () Ġ{ ĊĠĠĠĠĠ Ġval Ġsystem Out Ġ= Ġcapture System Out Ġ{ ĊĠĠĠĠĠĠĠĠ Ġcopy File ("$ root / a . txt ", Ġ"$ root / subdir / a . txt ") ĊĊĠĠĠĠĠĠĠĠ Ġmain ( array Of ( Commands . INDEX _ FILES . command , Ġ"-- db ", Ġdb name , Ġ"-- progress Window : no ", Ġ"-- time Zone ", Ġ" Europe / Ber lin ", Ġ"$ root / subdir ")) ĊĊĠĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ("$ root / subdir / a . txt ") ĊĠĠĠĠĠĠĠĠ Ġval Ġlast Modified Ġ= Ġfile . lastModified () ĊĠĠĠĠĠĠĠĠ ĠFiles . write ( file . to Path (), ĠByteArray ( file . length (). toInt ()), ĠStandard Open Option . TRUNC ATE _ EXIST ING ) ĊĠĠĠĠĠĠĠĠ Ġfile . set LastModified ( lastModified ) ĊĊĠĠĠĠĠĠĠĠ Ġmain ( array Of ( Commands . VERIFY _ FILES . command , Ġ"-- db ", Ġdb name , Ġ"$ root / subdir ")) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ ĠassertThat ( system Out , Ġcontains String (" subdir \\ a . txt Ġhas Ġdifferent Ġhash ")) ĊĠĠ Ġ} Ċ Ċ }