in projects/common/java/testing/src/main/java/com/google/cloud/solutions/satools/common/testing/TestResourceLoader.java [121:180]
public <T extends Message> ProtoActions<T> forProto(Class<T> protoClazz) {
return new ProtoActions<>() {
@Override
public T loadJson(String jsonProtoFile) {
return ProtoUtils.parseProtoJson(resourceLoader.loadAsString(jsonProtoFile), protoClazz);
}
@Override
public T loadText(String textProtoFile) {
try {
return TextFormat.parse(resourceLoader.loadAsString(textProtoFile), protoClazz);
} catch (ParseException parseException) {
return null;
}
}
@Override
public List<T> loadAllTextFiles(List<String> textPbFiles) {
return textPbFiles.stream().map(this::loadText).toList();
}
@Override
public List<T> loadAllTextFiles(String... textPbFiles) {
return loadAllTextFiles(List.copyOf(Arrays.asList(textPbFiles)));
}
@Override
public List<T> loadAllJsonFiles(List<String> jsonPbFiles) {
return jsonPbFiles.stream().map(this::loadJson).toList();
}
@Override
public List<T> loadAllJsonFiles(String jsonPbFile, String... otherJsonPbFiles) {
var fileListBuilder = new ArrayList<String>();
if (otherJsonPbFiles != null && otherJsonPbFiles.length > 0) {
fileListBuilder.addAll(Arrays.asList(otherJsonPbFiles));
}
return loadAllJsonFiles(List.copyOf(fileListBuilder));
}
@Override
public List<T> loadAllJsonFilesLike(String baseDir, String filePattern) {
try {
return resourceLoader.loadResourcesLike(baseDir, filePattern).stream()
.map(this::loadJson)
.toList();
} catch (MalformedURLException malformedUrlException) {
GoogleLogger.forEnclosingClass()
.atSevere()
.withCause(malformedUrlException)
.log("Loading error with FilePattern: %s", filePattern);
}
return List.of();
}
};
}