### Question:
JetS3Template extends S3Template { public InputStream receiveAsInputStream(String objectName) { return receiveAsInputStream(getDefaultContainerName(), objectName); } JetS3Template(final AwsCredentials awsCredentials);  JetS3Template(final AwsCredentials awsCredentials, final String defaultContainerName); boolean createContainer(String containerName); void createPublicContainer(String containerName); void deleteContainer(String containerName); void deleteObject(String objectName); void deleteObject(String containerName, String objectName); List<String> listContainerNames(); List<BlobDetails> listContainerObjectDetails(); ContainerStatus checkContainerStatus(String containerName); List<BlobDetails> listContainerObjectDetails(String containerName); String send(String objectName, String stringToSend); String send(String containerName, String objectName, String stringToSend); String send(File fileToSend); String send(String containerName, File fileToSend); String send(String containerName, String objectName, File fileToSend); String send(String objectName, InputStream is); String send(String containerName, String objectName, InputStream is); String sendAndReceiveUrl(String objectName, String stringToSend); String sendAndReceiveUrl(String containerName, String objectName, String stringToSend); String sendAndReceiveUrl(String containerName, String objectName, File fileToSend); String sendAndReceiveUrl(File fileToSend); String sendAndReceiveUrl(String objectName, InputStream is); String sendAndReceiveUrl(String containerName, File fileToSend); String sendAndReceiveUrl(String containerName, String objectName, InputStream is); String receiveAsString(String keyName); String receiveAsString(String containerName, String objectName); String receiveAndSaveToFile(String objectName, File toFile); String receiveAndSaveToFile(String containerName, String objectName, File toFile); InputStream receiveAsInputStream(String objectName); InputStream receiveAsInputStream(String containerName, String objectName); String createdSignedUrl(String containerName, String objectName, Date expiryDate);  }### Answer:
@Test(expected = StorageCommunicationException.class) public void testReceiveAsInputStreamStringCauseS3CommunicationException() throws S3ServiceException { doThrow(new S3ServiceException()).when(s3Service).getObject(argThat(S3_BUCKET_NAME_MATCHER), eq(KEY)); template.receiveAsInputStream(BUCKET_NAME, KEY); }
@Test public void testReceiveAsInputStream() throws S3ServiceException, NoSuchAlgorithmException, IOException { String data = "test data\ntest data2"; doReturn(new S3Object(KEY, data)).when(s3Service).getObject(argThat(S3_BUCKET_NAME_MATCHER), eq(KEY)); InputStream received = template.receiveAsInputStream(BUCKET_NAME, KEY); verify(s3Service).getObject(argThat(S3_BUCKET_NAME_MATCHER), eq(KEY)); String receivedStr = IOUtils.toString(received); System.out.println("String from input stream: " + receivedStr); assertEquals(data, receivedStr); }