Untitled
user_4688862
plain_text
a year ago
2.7 kB
17
Indexable
@Override
public byte[] downloadFile(String bucket, String fileName) throws FileDownloadException, IOException {
JsonNode keys = getSecrets(bucket);
String bucketId = keys.get("bucket").asText();
final AmazonS3 s3Client = awsS3ClientBuilderService.createAwsS3Client(keys.get("api_key").asText(),
keys.get("secret_key").asText(), Regions.US_EAST_1);
if (bucketIsEmpty(s3Client, bucketId)) {
this.awsS3ClientBuilderService.shutdown(s3Client);
throw new FileDownloadException("Requested bucket does not exist or is empty");
}
GetObjectRequest getObjectRequest = new GetObjectRequest(bucketId, fileName);
S3Object s3Object = s3Client.getObject(getObjectRequest);
S3ObjectInputStream objectInputStream = s3Object.getObjectContent();
byte[] bytes = IOUtils.toByteArray(objectInputStream);
this.awsS3ClientBuilderService.shutdown(s3Client);
if (bytes != null && bytes.length != 0) {
return bytes;
} else {
throw new FileDownloadException("Could not find the file!");
}
}
private boolean bucketIsEmpty(AmazonS3 s3Client, String bucketName) {
ListObjectsV2Result result = s3Client.listObjectsV2(bucketName);
if (result == null) {
return false;
}
List<S3ObjectSummary> objects = result.getObjectSummaries();
return objects.isEmpty();
}
write a unit testcase for the above downloadFile() code
if (bucketIsEmpty(s3Client, bucketId)) {
this.awsS3ClientBuilderService.shutdown(s3Client);
throw new FileDownloadException("Requested bucket does not exist or is empty");
}
GetObjectRequest getObjectRequest = new GetObjectRequest(bucketId, fileName);
S3Object s3Object = s3Client.getObject(getObjectRequest);
S3ObjectInputStream objectInputStream = s3Object.getObjectContent();
byte[] bytes = IOUtils.toByteArray(objectInputStream);
this.awsS3ClientBuilderService.shutdown(s3Client);
if (bytes != null && bytes.length != 0) {
return bytes;
} else {
throw new FileDownloadException("Could not find the file!");
}
}
it was not covered for the above lines
@Test
void testDownloadFile_Error() throws Exception {
try {
byte[] result = fileMgmtService.downloadFile(AppTestConstants.BUCKET, AppTestConstants.FILENAME);
} catch (Exception e) {
Assertions.assertEquals(AppTestConstants.DOWNLOAD_FILE_ERROR_STR, e.getMessage());
}
}
this is the previous code Editor is loading...
Leave a Comment