### Question:
JetS3Template extends S3Template { public boolean createContainer(String containerName) { Assert.notNull(containerName, BUCKET_NAME_CANNOT_BE_NULL); try { final S3Bucket bucket = s3Service.createBucket(new S3Bucket(containerName)); return bucket != null; } catch (S3ServiceException e) { throw new StorageCommunicationException("Bucket creation problem", e); } } 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 testCreateBucketCauseS3CommunicationException() throws S3ServiceException { when(s3Service.createBucket(argThat(S3_BUCKET_NAME_MATCHER))).thenThrow(new S3ServiceException()); template.createContainer(BUCKET_NAME); }
@Test public void testCreateBucket() throws S3ServiceException { when(s3Service.createBucket(argThat(S3_BUCKET_NAME_MATCHER))).thenReturn(null); template.createContainer(BUCKET_NAME); verify(s3Service).createBucket(argThat(S3_BUCKET_NAME_MATCHER)); }