1

I have written this function to get object from S3, now I want to write Unit Test cases for the same. I am not able to mock "s3Client.getObjectAsBytes(objectRequest)" so that I can get mock response for "ResponseBytes objectBytes" and continue further.

GetObjectRequest objectRequest = GetObjectRequest
                .builder()
                .key(keyName)
                .bucket(bucketName)
                .build();

        ResponseBytes<GetObjectResponse> objectBytes = s3Client.getObjectAsBytes(objectRequest);
        LOGGER.info(objectBytes.toString());
        InputStream inputStream = objectBytes.asInputStream();
        String result = new BufferedReader(new InputStreamReader(inputStream))
                .lines().collect(Collectors.joining("\n"));
        LOGGER.info(result);
Chetan Krishna
  • 131
  • 1
  • 2
  • 8

1 Answers1

0
GetObjectResponse getObjectResponse = GetObjectResponse.builder()
                .acceptRanges("bytes")
                .lastModified(Instant.now())
                .contentLength(38l)
                .eTag("fab88ab08ad0dsadsadsad30c7320bb8")
                .contentType("text/plain")
                .serverSideEncryption("AES256")
                .metadata(new HashMap<>())
                .build();
        byte[] responseBytes = "0x546869732069732066726fasdbnjasnfjfnsafa4b726973686e61".getBytes(StandardCharsets.UTF_8);
        ResponseBytes<GetObjectResponse> getObjectResponseResponseBytes = ResponseBytes.fromByteArray(getObjectResponse, responseBytes);
Chetan Krishna
  • 131
  • 1
  • 2
  • 8