Я пытаюсь читать файлы из GCS. Следующий метод, который я создал. Я использую этот метод в некотором слое обслуживания. Поскольку некоторые вызовы в этом методе являются stati c и окончательными, из-за этого мои модульные тесты не выполняются.
Ниже приведен код для хранилища GCS:
private Map<String, List<fclass>> getBulkFiles() throws IOException {
Map<String, List<fclass>> mapOfFiles = new HashMap<>();
List<fclass> validRecords = new ArrayList<>();
List<fclass> invalidRecords= new ArrayList<>();
// Get storage options in GCS for the project provided
StorageOptions options = StorageOptions.newBuilder().setProjectId(gcsConfig.getProjectId())
.setCredentials(gcsConfig.getCredentials()).build();
// Loop through the cloud storage and store the file details
try (FileSystem fs = CloudStorageFileSystem.forBucket(gcsConfig.getBucketName(), CloudStorageConfiguration.DEFAULT, options)) {
try (DirectoryStream<Path> ds = Files.newDirectoryStream(fs.getPath(gcsConfig.getFeedFilePath()))) {
for (Path path : ds) {
prepareValidInvalidAsset(path, validRecords, invalidRecords);
}
}
}
mapOfFiles.put("VALID_RECORDS", validRecords);
mapOfFiles.put("INVALID_RECORDS", invalidRecords);
return mapOfFiles;
}
Я пытаюсь написать тесты Junit для того же. Но Files.class является окончательным, и для Files.newDirectoryStream(fs.getPath(gcsConfig.getFeedFilePath()))
я получаю исключение для нулевого указателя.
Жду от вас ответа в ближайшее время.