### Question:
DelegateFileSystemAbstraction implements FileSystemAbstraction { @Override public FileWatcher fileWatcher() throws IOException { return new DefaultFileSystemWatcher( fs.newWatchService() ); } DelegateFileSystemAbstraction( FileSystem fs ); @Override FileWatcher fileWatcher(); @Override StoreChannel open( File fileName, OpenMode openMode ); @Override OutputStream openAsOutputStream( File fileName, boolean append ); @Override InputStream openAsInputStream( File fileName ); @Override Reader openAsReader( File fileName, Charset charset ); @Override Writer openAsWriter( File fileName, Charset charset, boolean append ); @Override StoreChannel create( File fileName ); @Override boolean fileExists( File file ); @Override boolean mkdir( File fileName ); @Override void mkdirs( File fileName ); @Override long getFileSize( File fileName ); @Override boolean deleteFile( File fileName ); @Override void deleteRecursively( File directory ); @Override void renameFile( File from, File to, CopyOption... copyOptions ); @Override File[] listFiles( File directory ); @Override File[] listFiles( File directory, final FilenameFilter filter ); @Override boolean isDirectory( File file ); @Override void moveToDirectory( File file, File toDirectory ); @Override void copyToDirectory( File file, File toDirectory ); @Override void copyFile( File from, File to ); @Override void copyRecursively( File fromDirectory, File toDirectory ); @Override void truncate( File path, long size ); @Override long lastModifiedTime( File file ); @Override void deleteFileOrThrow( File file ); @Override Stream<FileHandle> streamFilesRecursive( File directory ); @Override void close();  }### Answer:
@Test void delegatedFileSystemWatcher() throws IOException { FileSystem fileSystem = mock(FileSystem.class); try ( DelegateFileSystemAbstraction abstraction = new DelegateFileSystemAbstraction( fileSystem ) ) { assertNotNull( abstraction.fileWatcher() ); } verify( fileSystem ).newWatchService(); }