if (file.getChecksum() == null || !checksum.equals(file.getChecksum())) { parameters.put(FileDBAdaptor.QueryParams.CHECKSUM.key(), checksum);
@Test public void testScan() throws IOException, CatalogException { Files.createDirectory(directory.resolve("subfolder")); Files.createDirectory(directory.resolve("subfolder/subsubfolder")); CatalogManagerTest.createDebugFile(directory.resolve("file1.txt").toString()); CatalogManagerTest.createDebugFile(directory.resolve("file2.txt").toString()); CatalogManagerTest.createDebugFile(directory.resolve("file3.txt").toString()); CatalogManagerTest.createDebugFile(directory.resolve("subfolder/file1.txt").toString()); CatalogManagerTest.createDebugFile(directory.resolve("subfolder/file2.txt").toString()); CatalogManagerTest.createDebugFile(directory.resolve("subfolder/file3.txt").toString()); CatalogManagerTest.createDebugFile(directory.resolve("subfolder/subsubfolder/file1.txt").toString()); CatalogManagerTest.createDebugFile(directory.resolve("subfolder/subsubfolder/file2.txt").toString()); CatalogManagerTest.createDebugFile(directory.resolve("subfolder/subsubfolder/file3.txt").toString()); FileScanner fileScanner = new FileScanner(catalogManager); List<File> files = fileScanner.scan(folder, directory.toUri(), FileScanner.FileScannerPolicy.DELETE, true, true, sessionIdUser); assertEquals(9, files.size()); files.forEach((File file) -> assertTrue(StringUtils.isNotEmpty(file.getChecksum()))); }
@Test public void testScanStudyURI() throws IOException, CatalogException { CatalogManagerTest.createDebugFile(directory.resolve("file1.txt").toString()); FileScanner fileScanner = new FileScanner(catalogManager); List<File> files = fileScanner.scan(folder, directory.toUri(), FileScanner.FileScannerPolicy.REPLACE, true, true, sessionIdUser); assertEquals(1, files.size()); URI studyUri = study.getUri(); CatalogManagerTest.createDebugFile(studyUri.resolve("data/test/folder/").resolve("file2.txt").getPath()); File root = catalogManager.getFileManager().get(study.getFqn(), new Query("name", "."), null, sessionIdUser).first(); files = fileScanner.scan(root, studyUri, FileScanner.FileScannerPolicy.REPLACE, true, true, sessionIdUser); assertEquals(1, files.size()); files.forEach((f) -> assertTrue(f.getSize() > 0)); files.forEach((f) -> assertEquals(f.getStatus().getName(), File.FileStatus.READY)); files.forEach((f) -> assertTrue(StringUtils.isNotEmpty(f.getChecksum()))); }
assertTrue(file.getSize() > 0); assertEquals(File.FileStatus.READY, file.getStatus().getName()); assertTrue(StringUtils.isNotEmpty(file.getChecksum())); String originalChecksum = files.get(0).getChecksum(); String newChecksum = files.get(0).getChecksum(); assertNotEquals(originalChecksum, newChecksum); originalChecksum = files.get(0).getChecksum(); newChecksum = files.get(0).getChecksum(); assertNotEquals(originalChecksum, newChecksum);
@Test public void testReplaceExisting() throws IOException, CatalogException { // Create and register file1.txt and s/file2.txt File file = catalogManager.getFileManager().upload(study.getFqn(), CatalogManagerTest.createDebugFile().toURI(), new File().setPath(folder.getPath() + "file1.txt"), false, false, true, true, sessionIdUser).first(); catalogManager.getFileManager().upload(study.getFqn(), CatalogManagerTest.createDebugFile().toURI(), new File().setPath(folder.getPath() + "s/file2.txt"), false, true, true, true, sessionIdUser).first(); // Create same file structure, and replace CatalogManagerTest.createDebugFile(directory.resolve("file1.txt").toString()); Files.createDirectory(directory.resolve("s/")); CatalogManagerTest.createDebugFile(directory.resolve("s/file2.txt").toString()); FileScanner fileScanner = new FileScanner(catalogManager); fileScanner.scan(folder, directory.toUri(), FileScanner.FileScannerPolicy.REPLACE, true, true, sessionIdUser); File replacedFile = catalogManager.getFileManager().get(study.getFqn(), file.getPath(), null, sessionIdUser).first(); assertEquals(File.FileStatus.READY, replacedFile.getStatus().getName()); assertEquals(file.getUid(), replacedFile.getUid()); assertNotEquals(replacedFile.getChecksum(), file.getChecksum()); assertEquals(replacedFile.getChecksum(), catalogManager.getCatalogIOManagerFactory().getDefault().calculateChecksum(replacedFile.getUri())); }