RecordFileDownloader extends Downloader { @Override @Leader @Scheduled(fixedDelayString = "${hedera.mirror.importer.downloader.record.frequency:500}") public void download() { downloadNextBatch(); } RecordFileDownloader(
            S3AsyncClient s3Client, ApplicationStatusRepository applicationStatusRepository,
            AddressBookService addressBookService, RecordDownloaderProperties downloaderProperties,
            TransactionTemplate transactionTemplate, MeterRegistry meterRegistry,
            RecordFileRepository recordFileRepository); @Override @Leader @Scheduled(fixedDelayString = "${hedera.mirror.importer.downloader.record.frequency:500}") void download();  }
@Test @DisplayName("Download and verify V1 files") void downloadV1() throws Exception { doReturn(loadAddressBook("test-v1")).when(addressBookService).getCurrent(); fileCopier = FileCopier.create(Utility.getResource("data").toPath(), s3Path) .from(downloaderProperties.getStreamType().getPath(), "v1") .to(commonDownloaderProperties.getBucketName(), downloaderProperties.getStreamType().getPath()); fileCopier.copy(); prepareDownloader().download(); verify(applicationStatusRepository).updateStatusValue( ApplicationStatusCode.LAST_VALID_DOWNLOADED_RECORD_FILE, "2019-07-01T14:13:00.317763Z.rcd"); verify(applicationStatusRepository).updateStatusValue( ApplicationStatusCode.LAST_VALID_DOWNLOADED_RECORD_FILE, "2019-07-01T14:29:00.302068Z.rcd"); verify(applicationStatusRepository, times(2)).updateStatusValue( eq(ApplicationStatusCode.LAST_VALID_DOWNLOADED_RECORD_FILE_HASH), any()); assertValidFiles(List.of("2019-07-01T14:13:00.317763Z.rcd", "2019-07-01T14:29:00.302068Z.rcd")); }