### Question:
ServiceUtils { public static boolean skipMd5CheckPerRequest(AmazonWebServiceRequest request) { return skipMd5CheckPerRequest(request, null); }  static Date parseIso8601Date(String dateString); static String formatIso8601Date(Date date); static Date parseRfc822Date(String dateString); static String formatRfc822Date(Date date); static boolean isMultipartUploadETag(String eTag); static byte[] toByteArray(String s); static String removeQuotes(String s); static URL convertRequestToUrl(Request<?> request); static URL convertRequestToUrl(Request<?> request,
            boolean removeLeadingSlashInResourcePath); static String join(List<String> strings); static void downloadObjectToFile(S3Object s3Object,
            File destinationFile, boolean performIntegrityCheck,
            boolean appendData); static S3Object retryableDownloadS3ObjectToFile(File file,
            RetryableS3DownloadTask retryableS3DownloadTask, boolean appendData); static boolean skipMd5CheckPerResponse(ObjectMetadata metadata); static boolean skipMd5CheckPerResponse(ObjectMetadata metadata, S3ClientOptions clientOptions); static boolean skipMd5CheckPerRequest(AmazonWebServiceRequest request); static boolean skipMd5CheckPerRequest(AmazonWebServiceRequest request, S3ClientOptions clientOptions); static final boolean APPEND_MODE; static final boolean OVERWRITE_MODE; }### Answer:
@Test public void skipMd5CheckPerRequestTest() throws Throwable { final S3ClientOptions clientOptions = S3ClientOptions.builder().skipContentMd5Check(true).build(); assertTrue(ServiceUtils.skipMd5CheckPerRequest(null, clientOptions)); System.setProperty("com.amazonaws.services.s3.disableGetObjectMD5Validation", "true"); assertTrue(ServiceUtils.skipMd5CheckPerRequest(null)); System.clearProperty("com.amazonaws.services.s3.disableGetObjectMD5Validation"); GetObjectRequest getObjectRequest = new GetObjectRequest("bucket", "key"); getObjectRequest.setRange(100); assertTrue(ServiceUtils.skipMd5CheckPerRequest(getObjectRequest)); getObjectRequest = new GetObjectRequest("bucket", "key"); getObjectRequest.setSSECustomerKey(new SSECustomerKey("testKey")); assertTrue(ServiceUtils.skipMd5CheckPerRequest(getObjectRequest)); getObjectRequest = new GetObjectRequest("bucket", "key"); assertFalse(ServiceUtils.skipMd5CheckPerRequest(getObjectRequest)); PutObjectRequest putObjectRequest = new PutObjectRequest("bucket", "key", File.createTempFile("test", "test2")); final ObjectMetadata metadata = new ObjectMetadata(); metadata.setSSEAlgorithm(SSEAlgorithm.KMS.toString()); putObjectRequest.setMetadata(metadata); assertTrue(ServiceUtils.skipMd5CheckPerRequest(putObjectRequest)); putObjectRequest = new PutObjectRequest("bucket", "key", File.createTempFile("test", "test2")); putObjectRequest.setSSECustomerKey(new SSECustomerKey("testKey")); assertTrue(ServiceUtils.skipMd5CheckPerRequest(putObjectRequest)); putObjectRequest = new PutObjectRequest("bucket", "key", File.createTempFile("test", "test2")); assertFalse(ServiceUtils.skipMd5CheckPerRequest(putObjectRequest)); UploadPartRequest partRequest = new UploadPartRequest(); partRequest.setSSECustomerKey(new SSECustomerKey("testKey")); assertTrue(ServiceUtils.skipMd5CheckPerRequest(partRequest)); partRequest = new UploadPartRequest(); assertFalse(ServiceUtils.skipMd5CheckPerRequest(partRequest)); }