JCLOUDS-457: Multiple fixes

This commit addresses some problems found in the code:

- Now VaultMetadata returns a copy of the creation date instead
of their own instance.

- Added a checkNotNull for PaginatedVaultCollection iterable.

- Added a test for listVaults with an empty list of vaults.
This commit is contained in:
Roman C. Coedo 2014-06-27 09:28:36 +02:00 committed by Andrew Gaul
parent 2c713d2b35
commit 59a43f8c2e
4 changed files with 20 additions and 3 deletions

View File

@ -16,6 +16,8 @@
*/ */
package org.jclouds.glacier.domain; package org.jclouds.glacier.domain;
import static com.google.common.base.Preconditions.checkNotNull;
import java.beans.ConstructorProperties; import java.beans.ConstructorProperties;
import java.util.Iterator; import java.util.Iterator;
@ -37,7 +39,7 @@ public class PaginatedVaultCollection extends IterableWithMarker<VaultMetadata>
@ConstructorProperties({ "VaultList", "Marker" }) @ConstructorProperties({ "VaultList", "Marker" })
public PaginatedVaultCollection(Iterable<VaultMetadata> vaults, String marker) { public PaginatedVaultCollection(Iterable<VaultMetadata> vaults, String marker) {
this.vaults = vaults; this.vaults = checkNotNull(vaults, "vaults");
this.marker = marker; this.marker = marker;
} }

View File

@ -51,7 +51,7 @@ public class VaultMetadata implements Comparable<VaultMetadata> {
long numberOfArchives, long sizeInBytes) { long numberOfArchives, long sizeInBytes) {
this.vaultName = checkNotNull(vaultName, "vaultName"); this.vaultName = checkNotNull(vaultName, "vaultName");
this.vaultARN = checkNotNull(vaultARN, "vaultARN"); this.vaultARN = checkNotNull(vaultARN, "vaultARN");
this.creationDate = checkNotNull(creationDate, "creationDate"); this.creationDate = (Date) checkNotNull(creationDate, "creationDate").clone();
this.lastInventoryDate = lastInventoryDate; this.lastInventoryDate = lastInventoryDate;
this.numberOfArchives = numberOfArchives; this.numberOfArchives = numberOfArchives;
this.sizeInBytes = sizeInBytes; this.sizeInBytes = sizeInBytes;
@ -66,7 +66,7 @@ public class VaultMetadata implements Comparable<VaultMetadata> {
} }
public Date getCreationDate() { public Date getCreationDate() {
return creationDate; return (Date) creationDate.clone();
} }
public Date getLastInventoryDate() { public Date getLastInventoryDate() {

View File

@ -185,6 +185,17 @@ public class GlacierClientMockTest {
assertEquals(server.takeRequest().getRequestLine(), "GET /-/vaults " + HTTP); assertEquals(server.takeRequest().getRequestLine(), "GET /-/vaults " + HTTP);
} }
@Test
public void testListVaultsWithEmptyList() throws InterruptedException, IOException {
MockResponse mr = buildBaseResponse(200);
mr.addHeader(HttpHeaders.CONTENT_TYPE, MediaType.JSON_UTF_8);
mr.setBody(getResponseBody("/json/listVaultsWithEmptyListResponseBody.json"));
mr.addHeader(HttpHeaders.CONTENT_LENGTH, mr.getBody().length);
server.enqueue(mr);
assertTrue(client.listVaults().isEmpty());
}
@Test @Test
public void testListVaultsWithQueryParams() throws InterruptedException, IOException { public void testListVaultsWithQueryParams() throws InterruptedException, IOException {
MockResponse mr = buildBaseResponse(200); MockResponse mr = buildBaseResponse(200);

View File

@ -0,0 +1,4 @@
{
"Marker": null,
"VaultList": []
}