Repository: jclouds
Updated Branches:
  refs/heads/master 861396782 -> 0b89b1fd1


Ensure that Content-MD5 has 128 bits

Update many tests Content-MD5 headers and ETag responses.


Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/0b89b1fd
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/0b89b1fd
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/0b89b1fd

Branch: refs/heads/master
Commit: 0b89b1fd1095c3f05cae0e6e825acc1dc0025ccf
Parents: 8613967
Author: Andrew Gaul <[email protected]>
Authored: Tue Sep 2 15:19:07 2014 -0700
Committer: Andrew Gaul <[email protected]>
Committed: Thu Sep 4 16:57:48 2014 -0700

----------------------------------------------------------------------
 .../atmos/blobstore/AtmosBlobRequestSignerTest.java | 10 ++++++----
 .../blobstore/CloudFilesBlobSignerExpectTest.java   |  2 +-
 .../s3/blobstore/S3BlobSignerExpectTest.java        |  4 ++--
 .../ParseObjectMetadataFromHeadersTest.java         | 11 +++++++----
 .../swift/blobstore/SwiftBlobSignerExpectTest.java  |  2 +-
 .../SwiftKeystoneBlobSignerExpectTest.java          |  2 +-
 .../blobstore/TransientBlobRequestSignerTest.java   | 13 +++++++++----
 .../internal/BaseBlobSignerExpectTest.java          |  4 +++-
 .../java/org/jclouds/io/ContentMetadataBuilder.java |  2 ++
 .../org/jclouds/gae/ConvertToGaeRequestTest.java    |  7 +++++--
 .../org/jclouds/aws/s3/AWSS3AsyncClientTest.java    | 16 +++++++++++-----
 .../aws/s3/blobstore/AWSS3BlobSignerExpectTest.java |  2 +-
 .../blobstore/AzureBlobRequestSignerTest.java       | 12 +++++++++---
 .../HPCloudObjectStorageBlobSignerExpectTest.java   |  2 +-
 14 files changed, 59 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/0b89b1fd/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/AtmosBlobRequestSignerTest.java
----------------------------------------------------------------------
diff --git 
a/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/AtmosBlobRequestSignerTest.java
 
b/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/AtmosBlobRequestSignerTest.java
index d6620b5..97f8862 100644
--- 
a/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/AtmosBlobRequestSignerTest.java
+++ 
b/apis/atmos/src/test/java/org/jclouds/atmos/blobstore/AtmosBlobRequestSignerTest.java
@@ -37,6 +37,7 @@ import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
 import com.google.common.base.Supplier;
+import com.google.common.hash.HashCode;
 import com.google.inject.Module;
 
 /**
@@ -83,11 +84,12 @@ public class AtmosBlobRequestSignerTest extends 
BaseAsyncClientTest<AtmosAsyncCl
 
    public void testSignPutBlob() throws ArrayIndexOutOfBoundsException, 
SecurityException, IllegalArgumentException,
             NoSuchMethodException, IOException {
+      HashCode hashCode = HashCode.fromBytes(new byte[16]);
       Blob blob = blobFactory.create(null);
       blob.getMetadata().setName("name");
       blob.setPayload("");
       blob.getPayload().getContentMetadata().setContentLength(2l);
-      blob.getPayload().getContentMetadata().setContentMD5(new byte[] { 0, 2, 
4, 8 });
+      blob.getPayload().getContentMetadata().setContentMD5(hashCode.asBytes());
       blob.getPayload().getContentMetadata().setContentType("text/plain");
       blob.getPayload().getContentMetadata().setExpires(new Date(1000));
       
@@ -100,11 +102,11 @@ public class AtmosBlobRequestSignerTest extends 
BaseAsyncClientTest<AtmosAsyncCl
                "Accept: */*\n" +
                "Date: Thu, 05 Jun 2008 16:38:19 GMT\n" +
                "Expect: 100-continue\n" +
-               "x-emc-signature: DTzbKA9a0TAawWFEbC4D76wTq3A=\n" +
+               "x-emc-signature: OlAHsoIDCsO5YmqjRxOIM5sp3r0=\n" +
                "x-emc-uid: identity\n" +
-               "x-emc-wschecksum: MD5/0/00020408\n");
+               "x-emc-wschecksum: MD5/0/00000000000000000000000000000000\n");
 
-      assertContentHeadersEqual(request, "text/plain", null, null, null, 2L, 
new byte[] { 0, 2, 4, 8 }, new Date(1000));
+      assertContentHeadersEqual(request, "text/plain", null, null, null, 2L, 
hashCode.asBytes(), new Date(1000));
 
       assertEquals(request.getFilters().size(), 0);
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/0b89b1fd/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/blobstore/CloudFilesBlobSignerExpectTest.java
----------------------------------------------------------------------
diff --git 
a/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/blobstore/CloudFilesBlobSignerExpectTest.java
 
b/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/blobstore/CloudFilesBlobSignerExpectTest.java
index 4ab268f..11ef7ba 100644
--- 
a/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/blobstore/CloudFilesBlobSignerExpectTest.java
+++ 
b/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/blobstore/CloudFilesBlobSignerExpectTest.java
@@ -76,7 +76,7 @@ public class CloudFilesBlobSignerExpectTest extends 
BaseBlobSignerExpectTest {
    protected HttpRequest putBlob() {
       return HttpRequest.builder().method("PUT")
             
.endpoint("https://storage101.lon3.clouddrive.com/v1/MossoCloudFS_83a9d536-2e25-4166-bd3b-a503a934f953/container/name";)
-            .addHeader("ETag", "00020408")
+            .addHeader("ETag", "00000000000000000000000000000000")
             .addHeader("Expect", "100-continue")
             .addHeader("X-Auth-Token", authToken)
             .addHeader("X-Delete-At", "1")

http://git-wip-us.apache.org/repos/asf/jclouds/blob/0b89b1fd/apis/s3/src/test/java/org/jclouds/s3/blobstore/S3BlobSignerExpectTest.java
----------------------------------------------------------------------
diff --git 
a/apis/s3/src/test/java/org/jclouds/s3/blobstore/S3BlobSignerExpectTest.java 
b/apis/s3/src/test/java/org/jclouds/s3/blobstore/S3BlobSignerExpectTest.java
index 093e1a6..1c138ae 100644
--- a/apis/s3/src/test/java/org/jclouds/s3/blobstore/S3BlobSignerExpectTest.java
+++ b/apis/s3/src/test/java/org/jclouds/s3/blobstore/S3BlobSignerExpectTest.java
@@ -77,7 +77,7 @@ public class S3BlobSignerExpectTest extends 
BaseBlobSignerExpectTest {
             .endpoint("https://s3.amazonaws.com/container/name";)
             .addHeader("Expect", "100-continue")
             .addHeader("Date", "Thu, 05 Jun 2008 16:38:19 GMT")
-            .addHeader("Authorization", "AWS 
identity:j9Dy/lmmvlCKjA4lkqZenLxMkR4=").build();
+            .addHeader("Authorization", "AWS 
identity:zM2oT+71KcoOSxv1SU5L12UXnT8=").build();
    }
 
    @Override
@@ -93,7 +93,7 @@ public class S3BlobSignerExpectTest extends 
BaseBlobSignerExpectTest {
             .endpoint("https://s3.amazonaws.com/container/name";)
             .addHeader("Expect", "100-continue")
             .addHeader("Date", "Thu, 05 Jun 2008 16:38:19 GMT")
-            .addHeader("Authorization", "AWS 
identity:0uvBv1wEskuhFHYJF/L6kEV9A7o=").build();
+            .addHeader("Authorization", "AWS 
identity:zM2oT+71KcoOSxv1SU5L12UXnT8=").build();
    }
 
    @Override

http://git-wip-us.apache.org/repos/asf/jclouds/blob/0b89b1fd/apis/s3/src/test/java/org/jclouds/s3/functions/ParseObjectMetadataFromHeadersTest.java
----------------------------------------------------------------------
diff --git 
a/apis/s3/src/test/java/org/jclouds/s3/functions/ParseObjectMetadataFromHeadersTest.java
 
b/apis/s3/src/test/java/org/jclouds/s3/functions/ParseObjectMetadataFromHeadersTest.java
index e36028d..8f916c1 100644
--- 
a/apis/s3/src/test/java/org/jclouds/s3/functions/ParseObjectMetadataFromHeadersTest.java
+++ 
b/apis/s3/src/test/java/org/jclouds/s3/functions/ParseObjectMetadataFromHeadersTest.java
@@ -38,6 +38,7 @@ import org.testng.annotations.BeforeTest;
 import org.testng.annotations.Test;
 
 import com.google.common.collect.ImmutableMap;
+import com.google.common.hash.HashCode;
 import com.google.common.net.HttpHeaders;
 import com.google.inject.AbstractModule;
 import com.google.inject.Guice;
@@ -51,7 +52,7 @@ public class ParseObjectMetadataFromHeadersTest {
       HttpResponse http = 
HttpResponse.builder().statusCode(400).message("boa").payload("")
                                       
.addHeader(S3Headers.USER_METADATA_PREFIX + "foo", "bar")
                                       .addHeader(HttpHeaders.LAST_MODIFIED, 
lastModified)
-                                      .addHeader(HttpHeaders.ETAG, "\"abcd\"")
+                                      .addHeader(HttpHeaders.ETAG, 
"\"00000000000000000000000000000000\"")
                                       .addHeader(HttpHeaders.CACHE_CONTROL, 
"cacheControl").build();
       http.getPayload().getContentMetadata().setContentLength(1025l);
       
http.getPayload().getContentMetadata().setContentDisposition("contentDisposition");
@@ -60,13 +61,14 @@ public class ParseObjectMetadataFromHeadersTest {
 
       MutableObjectMetadata response = parser.apply(http);
 
+      HashCode hashCode = HashCode.fromBytes(new byte[16]);
       MutableObjectMetadataImpl expects = new MutableObjectMetadataImpl();
       expects.setCacheControl("cacheControl");
       expects.getContentMetadata().setContentDisposition("contentDisposition");
       expects.getContentMetadata().setContentEncoding("encoding");
       
expects.getContentMetadata().setContentType(MediaType.APPLICATION_OCTET_STREAM);
       expects.getContentMetadata().setContentLength(1025l);
-      
expects.getContentMetadata().setContentMD5(base16().lowerCase().decode("abcd"));
+      expects.getContentMetadata().setContentMD5(hashCode);
       expects.setETag("\"abcd\"");
       expects.setKey("key");
       expects.setLastModified(now);
@@ -110,7 +112,7 @@ public class ParseObjectMetadataFromHeadersTest {
       HttpResponse http = 
HttpResponse.builder().statusCode(400).message("boa").payload("")
                                       
.addHeader(S3Headers.USER_METADATA_PREFIX + "foo", "bar")
                                       .addHeader(HttpHeaders.LAST_MODIFIED, 
lastModified)
-                                      .addHeader(S3Headers.AMZ_ETAG, 
"\"abcd\"")
+                                      .addHeader(S3Headers.AMZ_ETAG, 
"\"00000000000000000000000000000000\"")
                                       .addHeader(HttpHeaders.CACHE_CONTROL, 
"cacheControl").build();
       
       http.getPayload().getContentMetadata().setContentLength(1025l);
@@ -120,11 +122,12 @@ public class ParseObjectMetadataFromHeadersTest {
 
       MutableObjectMetadata response = parser.apply(http);
 
+      HashCode hashCode = HashCode.fromBytes(new byte[16]);
       MutableObjectMetadataImpl expects = new MutableObjectMetadataImpl();
       expects.setCacheControl("cacheControl");
       expects.getContentMetadata().setContentDisposition("contentDisposition");
       expects.getContentMetadata().setContentEncoding("encoding");
-      
expects.getContentMetadata().setContentMD5(base16().lowerCase().decode("abcd"));
+      expects.getContentMetadata().setContentMD5(hashCode);
       
expects.getContentMetadata().setContentType(MediaType.APPLICATION_OCTET_STREAM);
       expects.getContentMetadata().setContentLength(1025l);
       expects.setETag("\"abcd\"");

http://git-wip-us.apache.org/repos/asf/jclouds/blob/0b89b1fd/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftBlobSignerExpectTest.java
----------------------------------------------------------------------
diff --git 
a/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftBlobSignerExpectTest.java
 
b/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftBlobSignerExpectTest.java
index b5a8f79..32d66a5 100644
--- 
a/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftBlobSignerExpectTest.java
+++ 
b/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftBlobSignerExpectTest.java
@@ -74,7 +74,7 @@ public class SwiftBlobSignerExpectTest extends 
BaseBlobSignerExpectTest {
    protected HttpRequest putBlob() {
       return HttpRequest.builder().method("PUT")
             .endpoint("http://storage/container/name";)
-            .addHeader("ETag", "00020408")
+            .addHeader("ETag", "00000000000000000000000000000000")
             .addHeader("Expect", "100-continue")
             .addHeader("X-Auth-Token", "testtoken")
             .addHeader("X-Delete-At", "1")

http://git-wip-us.apache.org/repos/asf/jclouds/blob/0b89b1fd/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftKeystoneBlobSignerExpectTest.java
----------------------------------------------------------------------
diff --git 
a/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftKeystoneBlobSignerExpectTest.java
 
b/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftKeystoneBlobSignerExpectTest.java
index 0f9cedd..af087b4 100644
--- 
a/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftKeystoneBlobSignerExpectTest.java
+++ 
b/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftKeystoneBlobSignerExpectTest.java
@@ -69,7 +69,7 @@ public class SwiftKeystoneBlobSignerExpectTest extends 
BaseBlobSignerExpectTest
    protected HttpRequest putBlob() {
       return HttpRequest.builder().method("PUT")
             
.endpoint("https://objects.jclouds.org/v1.0/40806637803162/container/name";)
-            .addHeader("ETag", "00020408")
+            .addHeader("ETag", "00000000000000000000000000000000")
             .addHeader("Expect", "100-continue")
             .addHeader("X-Auth-Token", "Auth_4f173437e4b013bee56d1007")
             .addHeader("X-Delete-At", "1")

http://git-wip-us.apache.org/repos/asf/jclouds/blob/0b89b1fd/blobstore/src/test/java/org/jclouds/blobstore/TransientBlobRequestSignerTest.java
----------------------------------------------------------------------
diff --git 
a/blobstore/src/test/java/org/jclouds/blobstore/TransientBlobRequestSignerTest.java
 
b/blobstore/src/test/java/org/jclouds/blobstore/TransientBlobRequestSignerTest.java
index 80b528c..ff833ab 100644
--- 
a/blobstore/src/test/java/org/jclouds/blobstore/TransientBlobRequestSignerTest.java
+++ 
b/blobstore/src/test/java/org/jclouds/blobstore/TransientBlobRequestSignerTest.java
@@ -31,6 +31,7 @@ import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
 import com.google.common.base.Charsets;
+import com.google.common.hash.HashCode;
 import com.google.common.hash.Hashing;
 import com.google.common.io.ByteSource;
 
@@ -72,18 +73,22 @@ public class TransientBlobRequestSignerTest extends 
BaseAsyncClientTest<LocalAsy
 
    public void testSignPutBlob() throws ArrayIndexOutOfBoundsException, 
SecurityException, IllegalArgumentException,
             NoSuchMethodException, IOException {
-      Blob blob = 
blobFactory.get().name(blobName).forSigning().contentLength(2l).contentMD5(new 
byte[] { 0, 2, 4, 8 })
+      HashCode hashCode = HashCode.fromBytes(new byte[16]);
+      Blob blob = 
blobFactory.get().name(blobName).forSigning().contentLength(2l).contentMD5(hashCode)
                .contentType("text/plain").build();
 
-      assertEquals(blob.getPayload().getContentMetadata().getContentMD5(), new 
byte[] { 0, 2, 4, 8 });
+      
assertEquals(blob.getPayload().getContentMetadata().getContentMD5AsHashCode(), 
hashCode);
 
       HttpRequest request = signer.signPutBlob(containerName, blob);
 
       assertRequestLineEquals(request, "PUT " + fullUrl + " HTTP/1.1");
       assertNonPayloadHeadersEqual(
                request,
-               "Authorization: Basic 
aWRlbnRpdHk6Y3JlZGVudGlhbA==\nContent-Length: 2\nContent-MD5: 
AAIECA==\nContent-Type: text/plain\n");
-      assertContentHeadersEqual(request, "text/plain", null, null, null, 2L, 
new byte[] { 0, 2, 4, 8 }, null);
+               "Authorization: Basic aWRlbnRpdHk6Y3JlZGVudGlhbA==\n" +
+               "Content-Length: 2\n" +
+               "Content-MD5: AAAAAAAAAAAAAAAAAAAAAA==\n" +
+               "Content-Type: text/plain\n");
+      assertContentHeadersEqual(request, "text/plain", null, null, null, 2L, 
hashCode.asBytes(), null);
 
       assertEquals(request.getFilters().size(), 0);
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/0b89b1fd/blobstore/src/test/java/org/jclouds/blobstore/internal/BaseBlobSignerExpectTest.java
----------------------------------------------------------------------
diff --git 
a/blobstore/src/test/java/org/jclouds/blobstore/internal/BaseBlobSignerExpectTest.java
 
b/blobstore/src/test/java/org/jclouds/blobstore/internal/BaseBlobSignerExpectTest.java
index 337b484..02de7f1 100644
--- 
a/blobstore/src/test/java/org/jclouds/blobstore/internal/BaseBlobSignerExpectTest.java
+++ 
b/blobstore/src/test/java/org/jclouds/blobstore/internal/BaseBlobSignerExpectTest.java
@@ -33,6 +33,7 @@ import org.testng.annotations.Test;
 
 import com.google.common.base.Function;
 import com.google.common.collect.ImmutableMap;
+import com.google.common.hash.HashCode;
 import com.google.inject.Module;
 
 public abstract class BaseBlobSignerExpectTest extends 
BaseRestClientExpectTest<BlobStore> {
@@ -85,8 +86,9 @@ public abstract class BaseBlobSignerExpectTest extends 
BaseRestClientExpectTest<
 
    @Test
    public void testSignPutBlob() throws Exception {
+      HashCode hashCode = HashCode.fromBytes(new byte[16]);
       BlobStore signPutBlob = requestsSendResponses(init());
-      Blob blob = 
signPutBlob.blobBuilder("name").forSigning().contentLength(2l).contentMD5(new 
byte[] { 0, 2, 4, 8 })
+      Blob blob = 
signPutBlob.blobBuilder("name").forSigning().contentLength(2l).contentMD5(hashCode)
             .contentType("text/plain").expires(new Date(1000)).build();
       HttpRequest compare = putBlob();
       compare.setPayload(blob.getPayload());

http://git-wip-us.apache.org/repos/asf/jclouds/blob/0b89b1fd/core/src/main/java/org/jclouds/io/ContentMetadataBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/io/ContentMetadataBuilder.java 
b/core/src/main/java/org/jclouds/io/ContentMetadataBuilder.java
index 3e17f1c..84cca64 100644
--- a/core/src/main/java/org/jclouds/io/ContentMetadataBuilder.java
+++ b/core/src/main/java/org/jclouds/io/ContentMetadataBuilder.java
@@ -22,6 +22,7 @@ import org.jclouds.io.payloads.BaseImmutableContentMetadata;
 import org.jclouds.javax.annotation.Nullable;
 
 import com.google.common.base.Objects;
+import com.google.common.base.Preconditions;
 import com.google.common.hash.HashCode;
 
 public class ContentMetadataBuilder {
@@ -51,6 +52,7 @@ public class ContentMetadataBuilder {
 
    public ContentMetadataBuilder contentMD5(@Nullable HashCode contentMD5) {
       if (contentMD5 != null) {
+         Preconditions.checkArgument(contentMD5.bits() == 128, "MD5 hash must 
have 128 bits, was: %s", contentMD5.bits());
          this.contentMD5 = contentMD5;
       }
       return this;

http://git-wip-us.apache.org/repos/asf/jclouds/blob/0b89b1fd/drivers/gae/src/test/java/org/jclouds/gae/ConvertToGaeRequestTest.java
----------------------------------------------------------------------
diff --git 
a/drivers/gae/src/test/java/org/jclouds/gae/ConvertToGaeRequestTest.java 
b/drivers/gae/src/test/java/org/jclouds/gae/ConvertToGaeRequestTest.java
index 21d0f3f..1f744d8 100644
--- a/drivers/gae/src/test/java/org/jclouds/gae/ConvertToGaeRequestTest.java
+++ b/drivers/gae/src/test/java/org/jclouds/gae/ConvertToGaeRequestTest.java
@@ -157,7 +157,7 @@ public class ConvertToGaeRequestTest {
 
    private void testHoot(HttpRequest request) throws IOException {
       request.getPayload().getContentMetadata().setContentType("text/plain");
-      request.getPayload().getContentMetadata().setContentMD5(new byte[] { 1, 
2, 3, 4 });
+      request.getPayload().getContentMetadata().setContentMD5(new byte[16]);
       HTTPRequest gaeRequest = req.apply(request);
 
       StringBuilder builder = new StringBuilder();
@@ -166,7 +166,10 @@ public class ConvertToGaeRequestTest {
       }
       assertEquals(builder.toString(),
       // note content-length is prohibited in gae
-            "User-Agent: jclouds/1.0 urlfetch/1.4.3\nExpect: 
100-continue\nContent-Type: text/plain\nContent-MD5: AQIDBA==\n");
+            "User-Agent: jclouds/1.0 urlfetch/1.4.3\n" +
+            "Expect: 100-continue\n" +
+            "Content-Type: text/plain\n" +
+            "Content-MD5: AAAAAAAAAAAAAAAAAAAAAA==\n");
       assertEquals(new String(gaeRequest.getPayload()), "hoot!");
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/0b89b1fd/providers/aws-s3/src/test/java/org/jclouds/aws/s3/AWSS3AsyncClientTest.java
----------------------------------------------------------------------
diff --git 
a/providers/aws-s3/src/test/java/org/jclouds/aws/s3/AWSS3AsyncClientTest.java 
b/providers/aws-s3/src/test/java/org/jclouds/aws/s3/AWSS3AsyncClientTest.java
index 71694bb..8b436d3 100644
--- 
a/providers/aws-s3/src/test/java/org/jclouds/aws/s3/AWSS3AsyncClientTest.java
+++ 
b/providers/aws-s3/src/test/java/org/jclouds/aws/s3/AWSS3AsyncClientTest.java
@@ -63,6 +63,7 @@ import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Lists;
 import com.google.common.reflect.Invokable;
 import com.google.inject.Module;
+
 // NOTE:without testName, this will not call @Before* and fail w/NPE during
 // surefire
 @Test(groups = "unit", testName = "AWSS3AsyncClientTest")
@@ -166,11 +167,13 @@ public class AWSS3AsyncClientTest extends 
S3AsyncClientTest<AWSS3AsyncClient> {
       Invokable<?, ?> method = method(AWSS3AsyncClient.class, 
"initiateMultipartUpload", String.class, ObjectMetadata.class,
             PutObjectOptions[].class);
       GeneratedHttpRequest request = processor.createRequest(method, 
ImmutableList.<Object> of("bucket", ObjectMetadataBuilder.create().key("foo")
-            .contentMD5(new byte[] { 1, 2, 3, 4 }).build()));
+            .contentMD5(new byte[16]).build()));
 
       assertRequestLineEquals(request, "POST https://bucket."; + url + 
"/foo?uploads HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Content-MD5: 
AQIDBA==\nContent-Type: binary/octet-stream\nHost: bucket."
-            + url + "\n");
+      assertNonPayloadHeadersEqual(request,
+            "Content-MD5: AAAAAAAAAAAAAAAAAAAAAA==\n" +
+            "Content-Type: binary/octet-stream\n" +
+            "Host: bucket." + url + "\n");
       assertPayloadEquals(request, null, null, false);
 
       // as this is a payload-related command, but with no payload, be careful
@@ -180,8 +183,11 @@ public class AWSS3AsyncClientTest extends 
S3AsyncClientTest<AWSS3AsyncClient> {
 
       assertRequestLineEquals(request, "POST https://bucket."; + url + 
"/foo?uploads HTTP/1.1");
       assertNonPayloadHeadersEqual(request,
-            "Authorization: AWS 
identity:Sp1FX4svL9P2u2bFJwroaYpSANo=\nContent-MD5: AQIDBA==\n"
-                  + "Content-Type: binary/octet-stream\nDate: 
2009-11-08T15:54:08.897Z\nHost: bucket." + url + "\n");
+            "Authorization: AWS identity:972m/Bqn2L5FIaB+wWDeY83mGvU=\n" +
+            "Content-MD5: AAAAAAAAAAAAAAAAAAAAAA==\n" +
+            "Content-Type: binary/octet-stream\n" +
+            "Date: 2009-11-08T15:54:08.897Z\n" +
+            "Host: bucket." + url + "\n");
       assertPayloadEquals(request, null, null, false);
 
       assertResponseParserClassEquals(method, request, 
UploadIdFromHttpResponseViaRegex.class);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/0b89b1fd/providers/aws-s3/src/test/java/org/jclouds/aws/s3/blobstore/AWSS3BlobSignerExpectTest.java
----------------------------------------------------------------------
diff --git 
a/providers/aws-s3/src/test/java/org/jclouds/aws/s3/blobstore/AWSS3BlobSignerExpectTest.java
 
b/providers/aws-s3/src/test/java/org/jclouds/aws/s3/blobstore/AWSS3BlobSignerExpectTest.java
index eb9f306..60649a2 100644
--- 
a/providers/aws-s3/src/test/java/org/jclouds/aws/s3/blobstore/AWSS3BlobSignerExpectTest.java
+++ 
b/providers/aws-s3/src/test/java/org/jclouds/aws/s3/blobstore/AWSS3BlobSignerExpectTest.java
@@ -82,7 +82,7 @@ public class AWSS3BlobSignerExpectTest extends 
S3BlobSignerExpectTest {
             .addHeader("Host", HOST)
             .addHeader("Expect", "100-continue")
             .addHeader("Date", "Thu, 05 Jun 2008 16:38:19 GMT")
-            .addHeader("Authorization", "AWS 
identity:j9Dy/lmmvlCKjA4lkqZenLxMkR4=").build();
+            .addHeader("Authorization", "AWS 
identity:zM2oT+71KcoOSxv1SU5L12UXnT8=").build();
    }
 
    @Override

http://git-wip-us.apache.org/repos/asf/jclouds/blob/0b89b1fd/providers/azureblob/src/test/java/org/jclouds/azureblob/blobstore/AzureBlobRequestSignerTest.java
----------------------------------------------------------------------
diff --git 
a/providers/azureblob/src/test/java/org/jclouds/azureblob/blobstore/AzureBlobRequestSignerTest.java
 
b/providers/azureblob/src/test/java/org/jclouds/azureblob/blobstore/AzureBlobRequestSignerTest.java
index 240a028..96ae9da 100644
--- 
a/providers/azureblob/src/test/java/org/jclouds/azureblob/blobstore/AzureBlobRequestSignerTest.java
+++ 
b/providers/azureblob/src/test/java/org/jclouds/azureblob/blobstore/AzureBlobRequestSignerTest.java
@@ -35,6 +35,7 @@ import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
 import com.google.common.base.Supplier;
+import com.google.common.hash.HashCode;
 import com.google.inject.Module;
 
 /**
@@ -80,11 +81,12 @@ public class AzureBlobRequestSignerTest extends 
BaseAsyncClientTest<AzureBlobAsy
 
    public void testSignPutBlob() throws ArrayIndexOutOfBoundsException, 
SecurityException, IllegalArgumentException,
             NoSuchMethodException, IOException {
+      HashCode hashCode = HashCode.fromBytes(new byte[16]);
       Blob blob = blobFactory.create(null);
       blob.getMetadata().setName("name");
       blob.setPayload("");
       blob.getPayload().getContentMetadata().setContentLength(2l);
-      blob.getPayload().getContentMetadata().setContentMD5(new byte[] { 0, 2, 
4, 8 });
+      blob.getPayload().getContentMetadata().setContentMD5(hashCode);
       blob.getPayload().getContentMetadata().setContentType("text/plain");
       blob.getPayload().getContentMetadata().setExpires(new Date(1000));
 
@@ -93,8 +95,12 @@ public class AzureBlobRequestSignerTest extends 
BaseAsyncClientTest<AzureBlobAsy
       assertRequestLineEquals(request, "PUT 
https://identity.blob.core.windows.net/container/name HTTP/1.1");
       assertNonPayloadHeadersEqual(
                request,
-               "Authorization: SharedKeyLite 
identity:ssvK6ZB8GMqRcp1lBpY9vIzbLKL9Goxh7wZ2YhfHNzQ=\nDate: Thu, 05 Jun 2008 
16:38:19 GMT\nExpect: 100-continue\nx-ms-blob-type: BlockBlob\nx-ms-version: 
2009-09-19\n");
-      assertContentHeadersEqual(request, "text/plain", null, null, null, 2L, 
new byte[] { 0, 2, 4, 8 }, new Date(1000));
+               "Authorization: SharedKeyLite 
identity:8kilG1mKxSWaKMLIQPI/aBlTFvaRRbmGOBqKaE+/R5A=\n" +
+               "Date: Thu, 05 Jun 2008 16:38:19 GMT\n" +
+               "Expect: 100-continue\n" +
+               "x-ms-blob-type: BlockBlob\n" +
+               "x-ms-version: 2009-09-19\n");
+      assertContentHeadersEqual(request, "text/plain", null, null, null, 2L, 
hashCode.asBytes(), new Date(1000));
 
       assertEquals(request.getFilters().size(), 0);
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/0b89b1fd/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobSignerExpectTest.java
----------------------------------------------------------------------
diff --git 
a/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobSignerExpectTest.java
 
b/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobSignerExpectTest.java
index 5aa225e..874fcf8 100644
--- 
a/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobSignerExpectTest.java
+++ 
b/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobSignerExpectTest.java
@@ -72,7 +72,7 @@ public class HPCloudObjectStorageBlobSignerExpectTest extends 
BaseBlobSignerExpe
    protected HttpRequest putBlob() {
       return HttpRequest.builder().method("PUT")
             
.endpoint("https://region-a.geo-1.objects.hpcloudsvc.com/v1/myTenantId/container/name";)
-            .addHeader("ETag", "00020408")
+            .addHeader("ETag", "00000000000000000000000000000000")
             .addHeader("Expect", "100-continue")
             .addHeader("X-Auth-Token", "myToken")
             .addHeader("X-Delete-At", "1")

Reply via email to