You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ad...@apache.org on 2014/11/04 00:21:24 UTC

[03/14] JCLOUDS-750 Convert GoogleComputeEngine to AutoValue + general cleanup.

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseImageListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseImageListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseImageListTest.java
index 0a95541..9c40040 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseImageListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseImageListTest.java
@@ -16,20 +16,17 @@
  */
 package org.jclouds.googlecomputeengine.parse;
 
-import java.net.URI;
-
 import javax.ws.rs.Consumes;
 import javax.ws.rs.core.MediaType;
 
-import org.jclouds.date.internal.SimpleDateFormatDateService;
-import org.jclouds.googlecomputeengine.domain.Deprecated;
 import org.jclouds.googlecomputeengine.domain.Image;
 import org.jclouds.googlecomputeengine.domain.ListPage;
-import org.jclouds.googlecomputeengine.domain.Resource;
 import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
 import org.testng.annotations.Test;
 
-@Test(groups = "unit")
+import com.google.common.collect.ImmutableList;
+
+@Test(groups = "unit", testName = "ParseImageListTest")
 public class ParseImageListTest extends BaseGoogleComputeEngineParseTest<ListPage<Image>> {
 
    @Override
@@ -37,29 +34,12 @@ public class ParseImageListTest extends BaseGoogleComputeEngineParseTest<ListPag
       return "/image_list.json";
    }
 
-   @Override
-   @Consumes(MediaType.APPLICATION_JSON)
+   @Override @Consumes(MediaType.APPLICATION_JSON)
    public ListPage<Image> expected() {
-      return ListPage.<Image>builder()
-              .kind(Resource.Kind.IMAGE_LIST)
-              .addItem(Image.builder()
-                      .id("12941197498378735318")
-                      .creationTimestamp(new SimpleDateFormatDateService().iso8601DateParse("2012-07-16T22:16:13.468"))
-                      .selfLink(URI.create("https://www.googleapis" +
-                              ".com/compute/v1/projects/centos-cloud/global/images/centos-6-2-v20120326"))
-                      .name("centos-6-2-v20120326")
-                      .description("DEPRECATED. CentOS 6.2 image; Created Mon, 26 Mar 2012 21:19:09 +0000")
-                      .sourceType("RAW")
-                      .deprecated(Deprecated.builder()
-                              .state("DEPRECATED")
-                              .replacement(URI.create("https://www.googleapis.com/compute/v1/projects/centos-cloud/global/images/centos-6-v20130104"))
-                              .build())
-                      .rawDisk(
-                              Image.RawDisk.builder()
-                                      .source("")
-                                      .containerType("TAR")
-                                      .build()
-                      ).build())
-              .build();
+      return ListPage.create( //
+            ImmutableList.of(new ParseImageTest().expected()), // items
+            null, // nextPageToken
+            null // prefixes
+      );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseImageTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseImageTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseImageTest.java
index 99cfd6f..27bb940 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseImageTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseImageTest.java
@@ -16,17 +16,19 @@
  */
 package org.jclouds.googlecomputeengine.parse;
 
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+import static org.jclouds.googlecomputeengine.domain.Image.RawDisk;
+
 import java.net.URI;
 
 import javax.ws.rs.Consumes;
-import javax.ws.rs.core.MediaType;
 
-import org.jclouds.date.internal.SimpleDateFormatDateService;
+import org.jclouds.googlecomputeengine.domain.Deprecated;
 import org.jclouds.googlecomputeengine.domain.Image;
 import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
 import org.testng.annotations.Test;
 
-@Test(groups = "unit")
+@Test(groups = "unit", testName = "ParseImageTest")
 public class ParseImageTest extends BaseGoogleComputeEngineParseTest<Image> {
 
    @Override
@@ -34,22 +36,21 @@ public class ParseImageTest extends BaseGoogleComputeEngineParseTest<Image> {
       return "/image_get.json";
    }
 
-   @Override
-   @Consumes(MediaType.APPLICATION_JSON)
+   @Override @Consumes(APPLICATION_JSON)
    public Image expected() {
-      return Image.builder()
-              .id("12941197498378735318")
-              .creationTimestamp(new SimpleDateFormatDateService().iso8601DateParse("2012-07-16T22:16:13.468"))
-              .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/centos-cloud/global/images/centos-6-2" +
-                      "-v20120326"))
-              .name("centos-6-2-v20120326")
-              .description("DEPRECATED. CentOS 6.2 image; Created Mon, 26 Mar 2012 21:19:09 +0000")
-              .sourceType("RAW")
-              .rawDisk(
-                      Image.RawDisk.builder()
-                              .source("")
-                              .containerType("TAR")
-                              .build()
-              ).build();
+      return Image.create( //
+            "12941197498378735318", // id
+            URI.create(BASE_URL + "/centos-cloud/global/images/centos-6-2-v20120326"), // selfLink
+            "centos-6-2-v20120326", // name
+            "DEPRECATED. CentOS 6.2 image; Created Mon, 26 Mar 2012 21:19:09 +0000", // description
+            "RAW", // sourceType
+            RawDisk.create(URI.create(""), "TAR", null), // rawDisk
+            Deprecated.create( // deprecated
+                  "DEPRECATED", // state
+                  URI.create(BASE_URL + "/centos-cloud/global/images/centos-6-v20130104"), // replacement
+                  null, // deprecated
+                  null, // obsolete
+                  null // deleted
+            ));
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseInstanceListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseInstanceListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseInstanceListTest.java
index 8aef3f0..2cc4697 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseInstanceListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseInstanceListTest.java
@@ -16,14 +16,18 @@
  */
 package org.jclouds.googlecomputeengine.parse;
 
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+
 import javax.ws.rs.Consumes;
-import javax.ws.rs.core.MediaType;
 
 import org.jclouds.googlecomputeengine.domain.Instance;
 import org.jclouds.googlecomputeengine.domain.ListPage;
-import org.jclouds.googlecomputeengine.domain.Resource;
 import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
+import org.testng.annotations.Test;
+
+import com.google.common.collect.ImmutableList;
 
+@Test(groups = "unit", testName = "ParseInstanceListTest")
 public class ParseInstanceListTest extends BaseGoogleComputeEngineParseTest<ListPage<Instance>> {
 
    @Override
@@ -31,12 +35,12 @@ public class ParseInstanceListTest extends BaseGoogleComputeEngineParseTest<List
       return "/instance_list.json";
    }
 
-   @Override
-   @Consumes(MediaType.APPLICATION_JSON)
+   @Override @Consumes(APPLICATION_JSON)
    public ListPage<Instance> expected() {
-      return ListPage.<Instance>builder()
-              .kind(Resource.Kind.INSTANCE_LIST)
-              .addItem(new ParseInstanceTest().expected())
-              .build();
+      return ListPage.create( //
+            ImmutableList.of(new ParseInstanceTest().expected()), // items
+            null, // nextPageToken
+            null // prefixes
+      );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseInstanceSerialOutputTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseInstanceSerialOutputTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseInstanceSerialOutputTest.java
index f44baa1..244f780 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseInstanceSerialOutputTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseInstanceSerialOutputTest.java
@@ -16,23 +16,24 @@
  */
 package org.jclouds.googlecomputeengine.parse;
 
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+import static org.jclouds.googlecomputeengine.domain.Instance.SerialPortOutput;
+
 import javax.ws.rs.Consumes;
-import javax.ws.rs.core.MediaType;
 
-import org.jclouds.googlecomputeengine.domain.Instance;
 import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
+import org.testng.annotations.Test;
 
-public class ParseInstanceSerialOutputTest extends BaseGoogleComputeEngineParseTest<Instance.SerialPortOutput> {
+@Test(groups = "unit", testName = "ParseInstanceSerialOutputTest")
+public class ParseInstanceSerialOutputTest extends BaseGoogleComputeEngineParseTest<SerialPortOutput> {
 
    @Override
    public String resource() {
       return "/instance_serial_port.json";
    }
 
-   @Override
-   @Consumes(MediaType.APPLICATION_JSON)
-   public Instance.SerialPortOutput expected() {
-      return Instance.SerialPortOutput.builder()
-              .contents("console output").build();
+   @Override @Consumes(APPLICATION_JSON)
+   public SerialPortOutput expected() {
+      return SerialPortOutput.create(null, "console output");
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseInstanceTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseInstanceTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseInstanceTest.java
index 5abdf6a..4a3a75f 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseInstanceTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseInstanceTest.java
@@ -16,18 +16,25 @@
  */
 package org.jclouds.googlecomputeengine.parse;
 
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+
 import java.net.URI;
 
 import javax.ws.rs.Consumes;
-import javax.ws.rs.core.MediaType;
 
-import org.jclouds.date.internal.SimpleDateFormatDateService;
 import org.jclouds.googlecomputeengine.domain.Instance;
+import org.jclouds.googlecomputeengine.domain.Instance.AttachedDisk;
+import org.jclouds.googlecomputeengine.domain.Instance.NetworkInterface;
+import org.jclouds.googlecomputeengine.domain.Instance.ServiceAccount;
 import org.jclouds.googlecomputeengine.domain.Metadata;
+import org.jclouds.googlecomputeengine.domain.Tags;
 import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
+import org.testng.annotations.Test;
 
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 
+@Test(groups = "unit", testName = "ParseInstanceTest")
 public class ParseInstanceTest extends BaseGoogleComputeEngineParseTest<Instance> {
 
    @Override
@@ -35,47 +42,38 @@ public class ParseInstanceTest extends BaseGoogleComputeEngineParseTest<Instance
       return "/instance_get.json";
    }
 
-   @Override
-   @Consumes(MediaType.APPLICATION_JSON)
+   @Override @Consumes(APPLICATION_JSON)
    public Instance expected() {
-      return Instance.builder()
-              .id("13051190678907570425")
-              .creationTimestamp(new SimpleDateFormatDateService().iso8601DateParse("2012-11-25T23:48:20.758"))
-              .selfLink(URI.create("https://www.googleapis" +
-                      ".com/compute/v1/projects/myproject/zones/us-central1-a/instances/test-0"))
-              .description("desc")
-              .name("test-0")
-              .machineType(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/n1" +
-                      "-standard-1"))
-              .status(Instance.Status.RUNNING)
-              .zone(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a"))
-              .addNetworkInterface(
-                      Instance.NetworkInterface.builder()
-                              .name("nic0")
-                              .networkIP("10.240.121.115")
-                              .network(URI.create("https://www.googleapis" +
-                                      ".com/compute/v1/projects/myproject/global/networks/default"))
-                              .build()
-              )
-              .addDisk(
-                      Instance.PersistentAttachedDisk.builder()
-                              .index(0)
-                              .mode(Instance.PersistentAttachedDisk.Mode.READ_WRITE)
-                              .deviceName("test")
-                              .source(URI.create("https://www.googleapis" +
-                                      ".com/compute/v1/projects/myproject/zones/us-central1-a/disks/test"))
-                              .boot(true)
-                              .build()
-              )
-              .tags(Instance.Tags.builder().fingerprint("abcd").addItem("aTag").build())
-              .metadata(Metadata.builder()
-                      .items(ImmutableMap.of("aKey", "aValue",
-                                             "jclouds-image",
-                                             "https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20140718",
-                                             "jclouds-delete-boot-disk", "true"))
-                      .fingerprint("efgh")
-                      .build())
-              .addServiceAccount(Instance.ServiceAccount.builder().email("default").addScopes("myscope").build())
-              .build();
+      return Instance.create( //
+            "13051190678907570425", // id
+            URI.create(BASE_URL + "/myproject/zones/us-central1-a/instances/test-0"), // selfLink
+            "test-0", // name
+            "desc", // description
+            Tags.create("abcd", ImmutableList.of("aTag", "Group-port-42")), // tags
+            URI.create(BASE_URL + "/myproject/zones/us-central1-a/machineTypes/n1-standard-1"), // machineType
+            Instance.Status.RUNNING, // status
+            null, // statusMessage
+            URI.create(BASE_URL + "/myproject/zones/us-central1-a"), // zone
+            ImmutableList.of(NetworkInterface.create( //
+                  "nic0", // name
+                  URI.create(BASE_URL + "/myproject/global/networks/default"), // network
+                  "10.240.121.115", // networkIP
+                  null // accessConfigs
+            )), // networkInterfaces
+            ImmutableList.of(AttachedDisk.create( //
+                  0, // index
+                  AttachedDisk.Type.PERSISTENT, // type
+                  AttachedDisk.Mode.READ_WRITE, // mode
+                  URI.create(BASE_URL + "/myproject/zones/us-central1-a/disks/test"), // source
+                  "test", // deviceName
+                  false, // autoDelete
+                  true// boot
+            )), // disks
+            Metadata.create("efgh", ImmutableMap.<String, String>builder() //
+                  .put("aKey", "aValue") //
+                  .put("jclouds-image", BASE_URL + "/debian-cloud/global/images/debian-7-wheezy-v20140718") //
+                  .put("jclouds-delete-boot-disk", "true").build()), // metadata
+            ImmutableList.of(ServiceAccount.create("default", ImmutableList.of("myscope"))) // serviceAccounts
+      );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeListTest.java
index 5ed9260..74d7fde 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeListTest.java
@@ -16,18 +16,20 @@
  */
 package org.jclouds.googlecomputeengine.parse;
 
-import static org.jclouds.googlecomputeengine.domain.Resource.Kind.MACHINE_TYPE_LIST;
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
 
 import java.net.URI;
 
 import javax.ws.rs.Consumes;
-import javax.ws.rs.core.MediaType;
 
-import org.jclouds.date.internal.SimpleDateFormatDateService;
 import org.jclouds.googlecomputeengine.domain.ListPage;
 import org.jclouds.googlecomputeengine.domain.MachineType;
 import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
+import org.testng.annotations.Test;
 
+import com.google.common.collect.ImmutableList;
+
+@Test(groups = "unit", testName = "ParseMachineTypeListTest")
 public class ParseMachineTypeListTest extends BaseGoogleComputeEngineParseTest<ListPage<MachineType>> {
 
    @Override
@@ -35,54 +37,51 @@ public class ParseMachineTypeListTest extends BaseGoogleComputeEngineParseTest<L
       return "/machinetype_list.json";
    }
 
-   @Override
-   @Consumes(MediaType.APPLICATION_JSON)
+   @Override @Consumes(APPLICATION_JSON)
    public ListPage<MachineType> expected() {
-      SimpleDateFormatDateService dateService = new SimpleDateFormatDateService();
-      return ListPage.<MachineType>builder()
-              .kind(MACHINE_TYPE_LIST)
-              .addItem(MachineType.builder()
-                      .id("4618642685664990776")
-                      .creationTimestamp(dateService.iso8601DateParse("2013-04-25T13:32:49.088-07:00"))
-                      .selfLink(URI.create("https://www.googleapis" +
-                              ".com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/f1-micro"))
-                      .zone("us-central1-a")
-                      .name("f1-micro")
-                      .description("1 vCPU (shared physical core) and 0.6 GB RAM")
-                      .guestCpus(1)
-                      .memoryMb(614)
-                      .maximumPersistentDisks(4)
-                      .maximumPersistentDisksSizeGb(3072)
-                      .build())
-              .addItem(MachineType.builder()
-                      .id("12907738072351752276")
-                      .creationTimestamp(dateService.iso8601DateParse("2012-06-07T20:48:14.670"))
-                      .selfLink(URI.create("https://www.googleapis" +
-                              ".com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/n1-standard-1"))
-                      .zone("us-central1-a")
-                      .name("n1-standard-1")
-                      .description("1 vCPU, 3.75 GB RAM, and a 10 GB ephemeral root disk")
-                      .guestCpus(1)
-                      .memoryMb(3840)
-                      .maximumPersistentDisks(16)
-                      .maximumPersistentDisksSizeGb(128)
-                      .build())
-              .addItem(MachineType.builder()
-                      .id("12908560709887590691")
-                      .creationTimestamp(dateService.iso8601DateParse("2012-06-07T20:51:19.936"))
-                      .selfLink(URI.create("https://www.googleapis" +
-                              ".com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/n1-standard-8-d"))
-                      .zone("us-central1-a")
-                      .name("n1-standard-8-d")
-                      .description("8 vCPUs, 30 GB RAM, a 10 GB ephemeral root disk, " +
-                              "and 2 extra 1770 GB ephemeral disks")
-                      .guestCpus(8)
-                      .memoryMb(30720)
-                      .addScratchDisk(1770)
-                      .addScratchDisk(1770)
-                      .maximumPersistentDisks(16)
-                      .maximumPersistentDisksSizeGb(1024)
-                      .build())
-              .build();
+      MachineType machineType1 = MachineType.create( //
+            "4618642685664990776", // id
+            URI.create(BASE_URL + "/myproject/zones/us-central1-a/machineTypes/f1-micro"), // selfLink
+            "f1-micro", // name
+            "1 vCPU (shared physical core) and 0.6 GB RAM", // description
+            1, // guestCpus
+            614, // memoryMb
+            null, // scratchDisks
+            4, // maximumPersistentDisks
+            3072, // maximumPersistentDisksSizeGb
+            "us-central1-a", // zone
+            null // deprecated
+      );
+      MachineType machineType2 = MachineType.create( //
+            "12907738072351752276", // id
+            URI.create(BASE_URL + "/myproject/zones/us-central1-a/machineTypes/n1-standard-1"), // selfLink
+            "n1-standard-1", // name
+            "1 vCPU, 3.75 GB RAM, and a 10 GB ephemeral root disk", // description
+            1, // guestCpus
+            3840, // memoryMb
+            null, // scratchDisks
+            16, // maximumPersistentDisks
+            128, // maximumPersistentDisksSizeGb
+            "us-central1-a", // zone
+            null // deprecated
+      );
+      MachineType machineType3 = MachineType.create( //
+            "12908560709887590691", // id
+            URI.create(BASE_URL + "/myproject/zones/us-central1-a/machineTypes/n1-standard-8-d"), // selfLink
+            "n1-standard-8-d", // name
+            "8 vCPUs, 30 GB RAM, a 10 GB ephemeral root disk, and 2 extra 1770 GB ephemeral disks", // description
+            8, // guestCpus
+            30720, // memoryMb
+            ImmutableList.of(MachineType.ScratchDisk.create(1770), MachineType.ScratchDisk.create(1770)), // scratchDisks
+            16, // maximumPersistentDisks
+            1024, // maximumPersistentDisksSizeGb
+            "us-central1-a", // zone
+            null // deprecated
+      );
+      return ListPage.create( //
+            ImmutableList.of(machineType1, machineType2, machineType3), // items
+            null, // nextPageToken
+            null // prefixes
+      );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeTest.java
index c1f1fad..d0f2a12 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMachineTypeTest.java
@@ -16,41 +16,41 @@
  */
 package org.jclouds.googlecomputeengine.parse;
 
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+import static org.jclouds.googlecomputeengine.domain.MachineType.ScratchDisk;
+
 import java.net.URI;
 
 import javax.ws.rs.Consumes;
-import javax.ws.rs.core.MediaType;
 
-import org.jclouds.date.internal.SimpleDateFormatDateService;
 import org.jclouds.googlecomputeengine.domain.MachineType;
 import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
+import org.testng.annotations.Test;
 
-public class ParseMachineTypeTest extends BaseGoogleComputeEngineParseTest<MachineType> {
+import com.google.common.collect.ImmutableList;
 
+@Test(groups = "unit", testName = "ParseMachineTypeTest")
+public class ParseMachineTypeTest extends BaseGoogleComputeEngineParseTest<MachineType> {
 
    @Override
    public String resource() {
       return "/machinetype.json";
    }
 
-   @Override
-   @Consumes(MediaType.APPLICATION_JSON)
+   @Override @Consumes(APPLICATION_JSON)
    public MachineType expected() {
-      SimpleDateFormatDateService dateService = new SimpleDateFormatDateService();
-      return MachineType.builder()
-              .id("12907738072351752276")
-              .creationTimestamp(dateService.iso8601DateParse("2012-06-07T20:48:14.670"))
-              .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/n1" +
-                      "-standard-1"))
-              .zone("us-central1-a")
-              .name("n1-standard-1")
-              .description("1 vCPU, 3.75 GB RAM, and a 10 GB ephemeral root disk")
-              .guestCpus(1)
-              .memoryMb(3840)
-              .addScratchDisk(1770)
-              .addScratchDisk(1770)
-              .maximumPersistentDisks(16)
-              .maximumPersistentDisksSizeGb(128)
-              .build();
+      return MachineType.create( //
+            "12907738072351752276", // id
+            URI.create(BASE_URL + "/myproject/zones/us-central1-a/machineTypes/n1-standard-1"), // selfLink
+            "n1-standard-1", // name
+            "1 vCPU, 3.75 GB RAM, and a 10 GB ephemeral root disk", // description
+            1, // guestCpus
+            3840, // memoryMb
+            ImmutableList.of(ScratchDisk.create(1770), ScratchDisk.create(1770)), // scratchDisks
+            16, // maximumPersistentDisks
+            128, // maximumPersistentDisksSizeGb
+            "us-central1-a", // zone
+            null // deprecated
+      );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMetadataTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMetadataTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMetadataTest.java
index 877bc31..362bbc2 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMetadataTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseMetadataTest.java
@@ -16,8 +16,9 @@
  */
 package org.jclouds.googlecomputeengine.parse;
 
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+
 import javax.ws.rs.Consumes;
-import javax.ws.rs.core.MediaType;
 
 import org.jclouds.googlecomputeengine.domain.Metadata;
 import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
@@ -25,7 +26,7 @@ import org.testng.annotations.Test;
 
 import com.google.common.collect.ImmutableMap;
 
-@Test(groups = "unit")
+@Test(groups = "unit", testName = "ParseMetadataTest")
 public class ParseMetadataTest extends BaseGoogleComputeEngineParseTest<Metadata> {
 
    @Override
@@ -33,13 +34,9 @@ public class ParseMetadataTest extends BaseGoogleComputeEngineParseTest<Metadata
       return "/metadata.json";
    }
 
-   @Override
-   @Consumes(MediaType.APPLICATION_JSON)
+   @Override @Consumes(APPLICATION_JSON)
    public Metadata expected() {
-      return new Metadata("efgh",
-              ImmutableMap.<String, String>builder()
-                      .put("propA", "valueA")
-                      .put("propB", "valueB")
-                      .build());
+      return Metadata.create("efgh",
+            ImmutableMap.<String, String>builder().put("propA", "valueA").put("propB", "valueB").build());
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseNetworkListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseNetworkListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseNetworkListTest.java
index 709da15..78b0f5e 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseNetworkListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseNetworkListTest.java
@@ -16,14 +16,18 @@
  */
 package org.jclouds.googlecomputeengine.parse;
 
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+
 import javax.ws.rs.Consumes;
-import javax.ws.rs.core.MediaType;
 
 import org.jclouds.googlecomputeengine.domain.ListPage;
 import org.jclouds.googlecomputeengine.domain.Network;
-import org.jclouds.googlecomputeengine.domain.Resource;
 import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
+import org.testng.annotations.Test;
+
+import com.google.common.collect.ImmutableList;
 
+@Test(groups = "unit", testName = "ParseNetworkListTest")
 public class ParseNetworkListTest extends BaseGoogleComputeEngineParseTest<ListPage<Network>> {
 
    @Override
@@ -31,12 +35,12 @@ public class ParseNetworkListTest extends BaseGoogleComputeEngineParseTest<ListP
       return "/network_list.json";
    }
 
-   @Override
-   @Consumes(MediaType.APPLICATION_JSON)
+   @Override @Consumes(APPLICATION_JSON)
    public ListPage<Network> expected() {
-      return ListPage.<Network>builder()
-              .kind(Resource.Kind.NETWORK_LIST)
-              .addItem(new ParseNetworkTest().expected())
-              .build();
+      return ListPage.create( //
+            ImmutableList.of(new ParseNetworkTest().expected()), // items
+            null, // nextPageToken
+            null // prefixes
+      );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseNetworkTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseNetworkTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseNetworkTest.java
index cd0fdcf..62214fa 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseNetworkTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseNetworkTest.java
@@ -16,15 +16,17 @@
  */
 package org.jclouds.googlecomputeengine.parse;
 
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+
 import java.net.URI;
 
 import javax.ws.rs.Consumes;
-import javax.ws.rs.core.MediaType;
 
-import org.jclouds.date.internal.SimpleDateFormatDateService;
 import org.jclouds.googlecomputeengine.domain.Network;
 import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
+import org.testng.annotations.Test;
 
+@Test(groups = "unit", testName = "ParseNetworkTest")
 public class ParseNetworkTest extends BaseGoogleComputeEngineParseTest<Network> {
 
    @Override
@@ -32,17 +34,15 @@ public class ParseNetworkTest extends BaseGoogleComputeEngineParseTest<Network>
       return "/network_get.json";
    }
 
-   @Override
-   @Consumes(MediaType.APPLICATION_JSON)
+   @Override @Consumes(APPLICATION_JSON)
    public Network expected() {
-      return Network.builder()
-              .id("13024414170909937976")
-              .creationTimestamp(new SimpleDateFormatDateService().iso8601DateParse("2012-10-24T20:13:19.967"))
-              .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/networks/jclouds-test"))
-              .name("default")
-              .description("Default network for the project")
-              .IPv4Range("10.0.0.0/8")
-              .gatewayIPv4("10.0.0.1")
-              .build();
+      return Network.create( //
+            "13024414170909937976", // id
+            URI.create(BASE_URL + "/myproject/networks/jclouds-test"), // selfLink
+            "default", // name
+            "Default network for the project", // description
+            "10.0.0.0/8", // rangeIPv4
+            "10.0.0.1" // gatewayIPv4
+      );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseOperationListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseOperationListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseOperationListTest.java
deleted file mode 100644
index 57425b3..0000000
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseOperationListTest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecomputeengine.parse;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.googlecomputeengine.domain.ListPage;
-import org.jclouds.googlecomputeengine.domain.Operation;
-import org.jclouds.googlecomputeengine.domain.Resource;
-import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
-
-public class ParseOperationListTest extends BaseGoogleComputeEngineParseTest<ListPage<Operation>> {
-
-   @Override
-   public String resource() {
-      return "/global_operation_list.json";
-   }
-
-   @Override
-   @Consumes(MediaType.APPLICATION_JSON)
-   public ListPage<Operation> expected() {
-      return ListPage.<Operation>builder()
-              .kind(Resource.Kind.OPERATION_LIST)
-              .addItem(new ParseOperationTest().expected())
-              .build();
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseOperationTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseOperationTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseOperationTest.java
index cb561bf..75a1d92 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseOperationTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseOperationTest.java
@@ -16,43 +16,47 @@
  */
 package org.jclouds.googlecomputeengine.parse;
 
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+
 import java.net.URI;
 
 import javax.ws.rs.Consumes;
-import javax.ws.rs.core.MediaType;
 
-import org.jclouds.date.internal.SimpleDateFormatDateService;
 import org.jclouds.googlecomputeengine.domain.Operation;
 import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
 import org.testng.annotations.Test;
 
-@Test(groups = "unit")
+@Test(groups = "unit", testName = "ParseOperationTest")
 public class ParseOperationTest extends BaseGoogleComputeEngineParseTest<Operation> {
 
    @Override
    public String resource() {
-      return "/global_operation.json";
+      return "/operation.json";
    }
 
-   @Override
-   @Consumes(MediaType.APPLICATION_JSON)
+   @Override @Consumes(APPLICATION_JSON)
    public Operation expected() {
-      SimpleDateFormatDateService dateService = new SimpleDateFormatDateService();
-      return Operation.builder().id("13053095055850848306")
-              .selfLink(URI.create("https://www.googleapis" +
-                      ".com/compute/v1/projects/myproject/global/operations/operation-1354084865060-4cf88735faeb8" +
-                      "-bbbb12cb"))
-              .name("operation-1354084865060-4cf88735faeb8-bbbb12cb")
-              .targetLink(URI.create("https://www.googleapis" +
-                      ".com/compute/v1/projects/myproject/global/firewalls/jclouds-test-delete"))
-              .targetId("13053094017547040099")
-              .status(Operation.Status.DONE)
-              .user("user@developer.gserviceaccount.com")
-              .progress(100)
-              .insertTime(dateService.iso8601DateParse("2012-11-28T06:41:05.060"))
-              .startTime(dateService.iso8601DateParse("2012-11-28T06:41:05.142"))
-              .endTime(dateService.iso8601DateParse("2012-11-28T06:41:06.142"))
-              .operationType("insert")
-              .build();
+      return Operation.create( //
+            "13053095055850848306", // id
+            URI.create(BASE_URL + "/myproject/zones/us-central1-a/operations/operation-1354084865060-4cf88735faeb8-bbbb12cb"),
+            "operation-1354084865060-4cf88735faeb8-bbbb12cb", // name
+            null, // description
+            URI.create(BASE_URL + "/myproject/zones/us-central1-a/instances/instance-api-live-test-instance"), // targetLink
+            "13053094017547040099", // targetId
+            null, // clientOperationId
+            Operation.Status.DONE, // status
+            null, // statusMessage
+            "user@developer.gserviceaccount.com", // user
+            100, // progress
+            parse("2012-11-28T06:41:05.060"), // insertTime
+            parse("2012-11-28T06:41:05.142"), // startTime
+            parse("2012-11-28T06:41:06.142"), // endTime
+            null, // httpErrorStatusCode
+            null, // httpErrorMessage
+            "insert", // operationType
+            null, // errors
+            URI.create(BASE_URL + "/myproject/regions/us-central1"), // region
+            URI.create(BASE_URL + "/myproject/zones/us-central1-a") // zone
+      );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseProjectTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseProjectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseProjectTest.java
index 3e549df..9a04ac0 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseProjectTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseProjectTest.java
@@ -16,20 +16,22 @@
  */
 package org.jclouds.googlecomputeengine.parse;
 
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+
 import java.net.URI;
-import java.util.Date;
 
 import javax.ws.rs.Consumes;
-import javax.ws.rs.core.MediaType;
 
 import org.jclouds.googlecomputeengine.domain.Metadata;
 import org.jclouds.googlecomputeengine.domain.Project;
+import org.jclouds.googlecomputeengine.domain.Quota;
 import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
 import org.testng.annotations.Test;
 
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 
-@Test(groups = "unit")
+@Test(groups = "unit", testName = "ParseProjectTest")
 public class ParseProjectTest extends BaseGoogleComputeEngineParseTest<Project> {
 
    @Override
@@ -37,31 +39,25 @@ public class ParseProjectTest extends BaseGoogleComputeEngineParseTest<Project>
       return "/project.json";
    }
 
-   @Override
-   @Consumes(MediaType.APPLICATION_JSON)
+   @Override @Consumes(APPLICATION_JSON)
    public Project expected() {
-      return Project.builder()
-              .id("13024414184846275913")
-              .creationTimestamp(new Date(Long.parseLong("1351109596252")))
-              .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject"))
-              .name("myproject")
-              .description("")
-              .commonInstanceMetadata(Metadata.builder()
-                      .items(ImmutableMap.<String, String>builder()
-                              .put("propA", "valueA")
-                              .put("propB", "valueB")
-                              .build())
-                      .fingerprint("efgh")
-                      .build())
-              .addQuota("INSTANCES", 0, 8)
-              .addQuota("CPUS", 0, 8)
-              .addQuota("EPHEMERAL_ADDRESSES", 0, 8)
-              .addQuota("DISKS", 0, 8)
-              .addQuota("DISKS_TOTAL_GB", 0, 100)
-              .addQuota("SNAPSHOTS", 0, 1000)
-              .addQuota("NETWORKS", 1, 5)
-              .addQuota("FIREWALLS", 2, 100)
-              .addQuota("IMAGES", 0, 100)
-              .build();
+      return Project.create( //
+            "13024414184846275913", // id
+            URI.create(BASE_URL + "/myproject"), // selfLink
+            "myproject", // name
+            "", // description
+            Metadata.create("efgh", ImmutableMap.of("propA", "valueA", "propB", "valueB")), // commonInstanceMetadata
+            ImmutableList.of( //
+                  Quota.create("INSTANCES", 0, 8), //
+                  Quota.create("CPUS", 0, 8), //
+                  Quota.create("EPHEMERAL_ADDRESSES", 0, 8), //
+                  Quota.create("DISKS", 0, 8), //
+                  Quota.create("DISKS_TOTAL_GB", 0, 100), //
+                  Quota.create("SNAPSHOTS", 0, 1000), //
+                  Quota.create("NETWORKS", 1, 5), //
+                  Quota.create("FIREWALLS", 2, 100), //
+                  Quota.create("IMAGES", 0, 100)), // quotas
+            null // externalIpAddresses
+      );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseQuotaTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseQuotaTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseQuotaTest.java
index 894dd0e..31c563b 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseQuotaTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseQuotaTest.java
@@ -16,14 +16,15 @@
  */
 package org.jclouds.googlecomputeengine.parse;
 
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+
 import javax.ws.rs.Consumes;
-import javax.ws.rs.core.MediaType;
 
 import org.jclouds.googlecomputeengine.domain.Quota;
 import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
 import org.testng.annotations.Test;
 
-@Test(groups = "unit")
+@Test(groups = "unit", testName = "ParseQuotaTest")
 public class ParseQuotaTest extends BaseGoogleComputeEngineParseTest<Quota> {
 
    @Override
@@ -31,9 +32,8 @@ public class ParseQuotaTest extends BaseGoogleComputeEngineParseTest<Quota> {
       return "/quota.json";
    }
 
-   @Override
-   @Consumes(MediaType.APPLICATION_JSON)
+   @Override @Consumes(APPLICATION_JSON)
    public Quota expected() {
-      return Quota.builder().metric("INSTANCES").usage(0.0).limit(8.0).build();
+      return Quota.create("INSTANCES", 0.0, 8.0);
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionListTest.java
index 9b077c2..b5e0bff 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionListTest.java
@@ -16,19 +16,21 @@
  */
 package org.jclouds.googlecomputeengine.parse;
 
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+
 import java.net.URI;
 
 import javax.ws.rs.Consumes;
-import javax.ws.rs.core.MediaType;
 
-import org.jclouds.date.internal.SimpleDateFormatDateService;
 import org.jclouds.googlecomputeengine.domain.ListPage;
+import org.jclouds.googlecomputeengine.domain.Quota;
 import org.jclouds.googlecomputeengine.domain.Region;
-import org.jclouds.googlecomputeengine.domain.Resource;
 import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
 import org.testng.annotations.Test;
 
-@Test(groups = "unit")
+import com.google.common.collect.ImmutableList;
+
+@Test(groups = "unit", testName = "ParseRegionListTest")
 public class ParseRegionListTest extends BaseGoogleComputeEngineParseTest<ListPage<Region>> {
 
    @Override
@@ -36,32 +38,31 @@ public class ParseRegionListTest extends BaseGoogleComputeEngineParseTest<ListPa
       return "/region_list.json";
    }
 
-   @Override
-   @Consumes(MediaType.APPLICATION_JSON)
+   @Override @Consumes(APPLICATION_JSON)
    public ListPage<Region> expected() {
-      return ListPage.<Region>builder()
-                     .kind(Resource.Kind.REGION_LIST)
-                     .addItem(new ParseRegionTest().expected())
-                     .addItem(Region.builder()
-                                    .id("6396763663251190992")
-                                    .creationTimestamp(new SimpleDateFormatDateService().iso8601DateParse
-                                            ("2013-07-08T14:40:37.939-07:00"))
-                                    .selfLink(URI.create("https://www.googleapis" +
-                                            ".com/compute/v1/projects/myproject/regions/us-central2"))
-                                    .name("us-central2")
-                                    .description("us-central2")
-                                    .status(Region.Status.UP)
-                                    .zone(URI.create("https://www.googleapis.com/compute/v1/zones/us-central2-a"))
-                                    .addQuota("INSTANCES", 0, 8)
-                                    .addQuota("CPUS", 0, 8)
-                                    .addQuota("EPHEMERAL_ADDRESSES", 0, 8)
-                                    .addQuota("DISKS", 0, 8)
-                                    .addQuota("DISKS_TOTAL_GB", 0, 100)
-                                    .addQuota("SNAPSHOTS", 0, 1000)
-                                    .addQuota("NETWORKS", 1, 5)
-                                    .addQuota("FIREWALLS", 2, 100)
-                                    .addQuota("IMAGES", 0, 100)
-                                    .build())
-                     .build();
+      Region region1 = new ParseRegionTest().expected();
+      Region region2 = Region.create( //
+            "6396763663251190992", // id
+            URI.create(BASE_URL + "/myproject/regions/us-central2"), // selfLink
+            "us-central2", // name
+            "us-central2", // description
+            Region.Status.UP, // status
+            ImmutableList.of(URI.create("https://www.googleapis.com/compute/v1/zones/us-central2-a")), // zones
+            ImmutableList.of( //
+                  Quota.create("INSTANCES", 0, 8), //
+                  Quota.create("CPUS", 0, 8), //
+                  Quota.create("EPHEMERAL_ADDRESSES", 0, 8), //
+                  Quota.create("DISKS", 0, 8), //
+                  Quota.create("DISKS_TOTAL_GB", 0, 100), //
+                  Quota.create("SNAPSHOTS", 0, 1000), //
+                  Quota.create("NETWORKS", 1, 5), //
+                  Quota.create("FIREWALLS", 2, 100), //
+                  Quota.create("IMAGES", 0, 100)) // quotas
+      );
+      return ListPage.create( //
+            ImmutableList.of(region1, region2), // items
+            null, // nextPageToken
+            null // prefixes
+      );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionOperationTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionOperationTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionOperationTest.java
index b0f59cf..dfb2111 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionOperationTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionOperationTest.java
@@ -16,16 +16,17 @@
  */
 package org.jclouds.googlecomputeengine.parse;
 
-import org.jclouds.date.internal.SimpleDateFormatDateService;
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+
+import java.net.URI;
+
+import javax.ws.rs.Consumes;
+
 import org.jclouds.googlecomputeengine.domain.Operation;
 import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
 import org.testng.annotations.Test;
 
-import javax.ws.rs.Consumes;
-import javax.ws.rs.core.MediaType;
-import java.net.URI;
-
-@Test(groups = "unit")
+@Test(groups = "unit", testName = "ParseRegionOperationTest")
 public class ParseRegionOperationTest extends BaseGoogleComputeEngineParseTest<Operation> {
 
    @Override
@@ -33,23 +34,30 @@ public class ParseRegionOperationTest extends BaseGoogleComputeEngineParseTest<O
       return "/region_operation.json";
    }
 
-   @Override
-   @Consumes(MediaType.APPLICATION_JSON)
+   @Override @Consumes(APPLICATION_JSON)
    public Operation expected() {
-      SimpleDateFormatDateService dateService = new SimpleDateFormatDateService();
-      return Operation.builder().id("13053095055850848306")
-              .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/regions/us-central1/operations/operation-1354084865060-4cf88735faeb8-bbbb12cb"))
-              .name("operation-1354084865060-4cf88735faeb8-bbbb12cb")
-              .targetLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/regions/us-central1/addresses/test-address"))
-              .targetId("13053094017547040099")
-              .status(Operation.Status.DONE)
-              .user("user@developer.gserviceaccount.com")
-              .progress(100)
-              .insertTime(dateService.iso8601DateParse("2012-11-28T06:41:05.060"))
-              .startTime(dateService.iso8601DateParse("2012-11-28T06:41:05.142"))
-              .endTime(dateService.iso8601DateParse("2012-11-28T06:41:06.142"))
-              .operationType("insert")
-              .region(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/regions/us-central1"))
-              .build();
+      return Operation.create( //
+            "13053095055850848306", // id
+            URI.create(BASE_URL
+                  + "/myproject/regions/us-central1/operations/operation-1354084865060-4cf88735faeb8-bbbb12cb"),
+            "operation-1354084865060-4cf88735faeb8-bbbb12cb", // name
+            null, // description
+            URI.create(BASE_URL + "/myproject/regions/us-central1/addresses/test-address"), // targetLink
+            "13053094017547040099", // targetId
+            null, // clientOperationId
+            Operation.Status.DONE, // status
+            null, // statusMessage
+            "user@developer.gserviceaccount.com", // user
+            100, // progress
+            parse("2012-11-28T06:41:05.060"), // insertTime
+            parse("2012-11-28T06:41:05.142"), // startTime
+            parse("2012-11-28T06:41:06.142"), // endTime
+            null, // httpErrorStatusCode
+            null, // httpErrorMessage
+            "insert", // operationType
+            null, // errors
+            URI.create(BASE_URL + "/myproject/regions/us-central1"), // region
+            null // zone
+      );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionTest.java
index fab9915..50a2340 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRegionTest.java
@@ -16,19 +16,20 @@
  */
 package org.jclouds.googlecomputeengine.parse;
 
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+
 import java.net.URI;
 
 import javax.ws.rs.Consumes;
-import javax.ws.rs.core.MediaType;
 
-import org.jclouds.date.internal.SimpleDateFormatDateService;
+import org.jclouds.googlecomputeengine.domain.Quota;
 import org.jclouds.googlecomputeengine.domain.Region;
 import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
 import org.testng.annotations.Test;
 
-import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.ImmutableList;
 
-@Test(groups = "unit")
+@Test(groups = "unit", testName = "ParseRegionTest")
 public class ParseRegionTest extends BaseGoogleComputeEngineParseTest<Region> {
 
    @Override
@@ -36,27 +37,27 @@ public class ParseRegionTest extends BaseGoogleComputeEngineParseTest<Region> {
       return "/region_get.json";
    }
 
-   @Override
-   @Consumes(MediaType.APPLICATION_JSON)
+   @Override @Consumes(APPLICATION_JSON)
    public Region expected() {
-      return Region.builder()
-              .id("12912210600542709766")
-              .creationTimestamp(new SimpleDateFormatDateService().iso8601DateParse("2013-07-08T14:40:37.939-07:00"))
-              .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/regions/us-central1"))
-              .name("us-central1")
-              .description("us-central1")
-              .status(Region.Status.UP)
-              .zones(ImmutableSet.of(URI.create("https://www.googleapis.com/compute/v1/zones/us-central1-a"),
-                      URI.create("https://www.googleapis.com/compute/v1/zones/us-central1-b")))
-              .addQuota("INSTANCES", 0, 8)
-              .addQuota("CPUS", 0, 8)
-              .addQuota("EPHEMERAL_ADDRESSES", 0, 8)
-              .addQuota("DISKS", 0, 8)
-              .addQuota("DISKS_TOTAL_GB", 0, 100)
-              .addQuota("SNAPSHOTS", 0, 1000)
-              .addQuota("NETWORKS", 1, 5)
-              .addQuota("FIREWALLS", 2, 100)
-              .addQuota("IMAGES", 0, 100)
-              .build();
+      return Region.create( //
+            "12912210600542709766", // id
+            URI.create(BASE_URL + "/myproject/regions/us-central1"), // selfLink
+            "us-central1", // name
+            "us-central1", // description
+            Region.Status.UP, // status
+            ImmutableList.of(//
+                  URI.create("https://www.googleapis.com/compute/v1/zones/us-central1-a"),
+                  URI.create("https://www.googleapis.com/compute/v1/zones/us-central1-b")), // zones
+            ImmutableList.of( //
+                  Quota.create("INSTANCES", 0, 8), //
+                  Quota.create("CPUS", 0, 8), //
+                  Quota.create("EPHEMERAL_ADDRESSES", 0, 8), //
+                  Quota.create("DISKS", 0, 8), //
+                  Quota.create("DISKS_TOTAL_GB", 0, 100), //
+                  Quota.create("SNAPSHOTS", 0, 1000), //
+                  Quota.create("NETWORKS", 1, 5), //
+                  Quota.create("FIREWALLS", 2, 100), //
+                  Quota.create("IMAGES", 0, 100)) // quotas
+      );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteListTest.java
index c4298a2..0f0fbb8 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteListTest.java
@@ -21,16 +21,14 @@ import java.net.URI;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.core.MediaType;
 
-import org.jclouds.date.internal.SimpleDateFormatDateService;
 import org.jclouds.googlecomputeengine.domain.ListPage;
-import org.jclouds.googlecomputeengine.domain.Resource.Kind;
 import org.jclouds.googlecomputeengine.domain.Route;
 import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
 import org.testng.annotations.Test;
 
 import com.google.common.collect.ImmutableList;
 
-@Test(groups = "unit")
+@Test(groups = "unit", testName = "ParseRouteListTest")
 public class ParseRouteListTest extends BaseGoogleComputeEngineParseTest<ListPage<Route>> {
 
    @Override
@@ -38,23 +36,28 @@ public class ParseRouteListTest extends BaseGoogleComputeEngineParseTest<ListPag
       return "/route_list.json";
    }
 
-   @Override
-   @Consumes(MediaType.APPLICATION_JSON)
+   @Override @Consumes(MediaType.APPLICATION_JSON)
    public ListPage<Route> expected() {
-      return ListPage.<Route>builder()
-              .kind(Kind.ROUTE_LIST)
-              .items(ImmutableList.of(new ParseRouteTest().expected(),
-                      Route.builder()
-                              .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/global/routes/default-route-fc92a41ecb5a8d17"))
-                              .id("507025480040058551")
-                              .creationTimestamp(new SimpleDateFormatDateService().iso8601DateParse("2013-07-08T14:40:38.502-07:00"))
-                              .name("default-route-fc92a41ecb5a8d17")
-                              .description("Default route to the Internet.")
-                              .network(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default"))
-                              .destRange("0.0.0.0/0")
-                              .priority(1000)
-                              .nextHopGateway(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/global/gateways/default-internet-gateway"))
-                              .build())
-              ).build();
+      Route route1 = new ParseRouteTest().expected();
+      Route route2 = Route.create( //
+            "507025480040058551", // id
+            URI.create(BASE_URL + "/myproject/global/routes/default-route-fc92a41ecb5a8d17"), // selfLink
+            "default-route-fc92a41ecb5a8d17", // name
+            "Default route to the Internet.", // description
+            URI.create(BASE_URL + "/myproject/global/networks/default"), // network
+            null, // tags
+            "0.0.0.0/0", // destRange
+            1000, // priority
+            null, // nextHopInstance
+            null, // nextHopIp
+            null, // nextHopNetwork
+            URI.create(BASE_URL + "/myproject/global/gateways/default-internet-gateway"), // nextHopGateway
+            null // warnings
+      );
+      return ListPage.create( //
+            ImmutableList.of(route1, route2), // items
+            null, // nextPageToken
+            null // prefixes
+      );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteTest.java
index 5ffd845..82d0e83 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseRouteTest.java
@@ -16,19 +16,19 @@
  */
 package org.jclouds.googlecomputeengine.parse;
 
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+
 import java.net.URI;
 
 import javax.ws.rs.Consumes;
-import javax.ws.rs.core.MediaType;
 
-import org.jclouds.date.internal.SimpleDateFormatDateService;
 import org.jclouds.googlecomputeengine.domain.Route;
 import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
 import org.testng.annotations.Test;
 
-import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.ImmutableList;
 
-@Test(groups = "unit")
+@Test(groups = "unit", testName = "ParseRouteTest")
 public class ParseRouteTest extends BaseGoogleComputeEngineParseTest<Route> {
 
    @Override
@@ -36,21 +36,22 @@ public class ParseRouteTest extends BaseGoogleComputeEngineParseTest<Route> {
       return "/route_get.json";
    }
 
-   @Override
-   @Consumes(MediaType.APPLICATION_JSON)
+   @Override @Consumes(APPLICATION_JSON)
    public Route expected() {
-      return Route.builder()
-              .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/global/routes/default-route-c99ebfbed0e1f375"))
-              .id("7241926205630356071")
-              .name("default-route-c99ebfbed0e1f375")
-              .creationTimestamp(new SimpleDateFormatDateService().iso8601DateParse("2013-07-08T14:40:38.502-07:00"))
-              .description("Default route to the virtual network.")
-              .network(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default"))
-              .destRange("10.240.0.0/16")
-              .priority(1000)
-              .nextHopNetwork(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default"))
-              .tags(ImmutableSet.of("fooTag", "barTag"))
-              .build();
-
+      return Route.create( //
+            "7241926205630356071", // id
+            URI.create(BASE_URL + "/myproject/global/routes/default-route-c99ebfbed0e1f375"), // selfLink
+            "default-route-c99ebfbed0e1f375", // name
+            "Default route to the virtual network.", // description
+            URI.create(BASE_URL + "/myproject/global/networks/default"), // network
+            ImmutableList.of("fooTag", "barTag"), // tags
+            "10.240.0.0/16", // destRange
+            1000, // priority
+            null, // nextHopInstance
+            null, // nextHopIp
+            URI.create(BASE_URL + "/myproject/global/networks/default"), // nextHopNetwork
+            null, // nextHopGateway
+            null // warnings
+      );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotListTest.java
index d704a44..6ed886b 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotListTest.java
@@ -16,19 +16,20 @@
  */
 package org.jclouds.googlecomputeengine.parse;
 
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+
 import java.net.URI;
 
 import javax.ws.rs.Consumes;
-import javax.ws.rs.core.MediaType;
 
-import org.jclouds.date.internal.SimpleDateFormatDateService;
 import org.jclouds.googlecomputeengine.domain.ListPage;
-import org.jclouds.googlecomputeengine.domain.Resource.Kind;
 import org.jclouds.googlecomputeengine.domain.Snapshot;
 import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
 import org.testng.annotations.Test;
 
-@Test(groups = "unit")
+import com.google.common.collect.ImmutableList;
+
+@Test(groups = "unit", testName = "ParseSnapshotListTest")
 public class ParseSnapshotListTest extends BaseGoogleComputeEngineParseTest<ListPage<Snapshot>> {
 
    @Override
@@ -36,26 +37,24 @@ public class ParseSnapshotListTest extends BaseGoogleComputeEngineParseTest<List
       return "/snapshot_list.json";
    }
 
-   @Override
-   @Consumes(MediaType.APPLICATION_JSON)
+   @Override @Consumes(APPLICATION_JSON)
    public ListPage<Snapshot> expected() {
-      return ListPage.<Snapshot>builder()
-              .kind(Kind.SNAPSHOT_LIST)
-              .addItem(new ParseSnapshotTest().expected())
-              .addItem(Snapshot.builder()
-                               .selfLink(URI.create("https://www.googleapis" +
-                                     ".com/compute/v1/projects/myproject/global/snapshots/test-snap2"))
-                               .id("13895715048576107883")
-                               .creationTimestamp(new SimpleDateFormatDateService().iso8601DateParse
-                                     ("2013-07-26T12:57:01.927-07:00"))
-                               .status("READY")
-                               .sizeGb(10)
-                               .sourceDisk(URI.create("https://www.googleapis.com/compute/v1/projects/myproject" +
-                                     "/zones/us-central1-a/disks/testimage1"))
-                               .name("test-snap2")
-                               .description("")
-                               .sourceDiskId("8243603669926824540")
-                               .build())
-              .build();
+      Snapshot snapshot1 = new ParseSnapshotTest().expected();
+      Snapshot snapshot2 = Snapshot.create( //
+            "13895715048576107883", // id
+            URI.create(BASE_URL + "/myproject/global/snapshots/test-snap2"), // selfLink
+            "test-snap2", // name
+            "", // description
+            10, // sizeGb
+            "READY", // status
+            URI.create(BASE_URL + "/myproject/zones/us-central1-a/disks/testimage1"), // sourceDisk
+            "8243603669926824540"// sourceDiskId
+      );
+      return ListPage.create( //
+            ImmutableList.of(snapshot1, snapshot2), // items
+            null, // nextPageToken
+            null // prefixes
+      );
    }
+
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotTest.java
index f3e7a01..f8af42e 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseSnapshotTest.java
@@ -16,17 +16,17 @@
  */
 package org.jclouds.googlecomputeengine.parse;
 
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+
 import java.net.URI;
 
 import javax.ws.rs.Consumes;
-import javax.ws.rs.core.MediaType;
 
-import org.jclouds.date.internal.SimpleDateFormatDateService;
 import org.jclouds.googlecomputeengine.domain.Snapshot;
 import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
 import org.testng.annotations.Test;
 
-@Test(groups = "unit")
+@Test(groups = "unit", testName = "ParseSnapshotTest")
 public class ParseSnapshotTest extends BaseGoogleComputeEngineParseTest<Snapshot> {
 
    @Override
@@ -34,19 +34,17 @@ public class ParseSnapshotTest extends BaseGoogleComputeEngineParseTest<Snapshot
       return "/snapshot_get.json";
    }
 
-   @Override
-   @Consumes(MediaType.APPLICATION_JSON)
+   @Override @Consumes(APPLICATION_JSON)
    public Snapshot expected() {
-      return Snapshot.builder()
-              .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/global/snapshots/test-snap"))
-              .id("9734455566806191190")
-              .creationTimestamp(new SimpleDateFormatDateService().iso8601DateParse("2013-07-26T12:54:23.173-07:00"))
-              .status("READY")
-              .sizeGb(10)
-              .sourceDisk(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks/testimage1"))
-              .name("test-snap")
-              .description("")
-              .sourceDiskId("8243603669926824540")
-              .build();
+      return Snapshot.create( //
+            "9734455566806191190", // id
+            URI.create(BASE_URL + "/myproject/global/snapshots/test-snap"), // selfLink
+            "test-snap", // name
+            "", // description
+            10, // sizeGb
+            "READY", // status
+            URI.create(BASE_URL + "/myproject/zones/us-central1-a/disks/testimage1"), // sourceDisk
+            "8243603669926824540"// sourceDiskId
+      );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetPoolListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetPoolListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetPoolListTest.java
index 5a2cb50..474fbde 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetPoolListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetPoolListTest.java
@@ -16,22 +16,18 @@
  */
 package org.jclouds.googlecomputeengine.parse;
 
-import com.google.common.collect.ImmutableSet;
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+
+import javax.ws.rs.Consumes;
 
-import org.jclouds.date.internal.SimpleDateFormatDateService;
 import org.jclouds.googlecomputeengine.domain.ListPage;
-import org.jclouds.googlecomputeengine.domain.Resource;
 import org.jclouds.googlecomputeengine.domain.TargetPool;
 import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
-import org.jclouds.googlecomputeengine.options.TargetPoolCreationOptions.SessionAffinityValue;
 import org.testng.annotations.Test;
 
-import javax.ws.rs.Consumes;
-import javax.ws.rs.core.MediaType;
+import com.google.common.collect.ImmutableList;
 
-import java.net.URI;
-
-@Test(groups = "unit")
+@Test(groups = "unit", testName = "ParseTargetPoolListTest")
 public class ParseTargetPoolListTest extends BaseGoogleComputeEngineParseTest<ListPage<TargetPool>> {
 
    @Override
@@ -39,19 +35,12 @@ public class ParseTargetPoolListTest extends BaseGoogleComputeEngineParseTest<Li
       return "/targetpool_list.json";
    }
 
-   @Override
-   @Consumes(MediaType.APPLICATION_JSON)
+   @Override @Consumes(APPLICATION_JSON)
    public ListPage<TargetPool> expected() {
-      return ListPage.<TargetPool>builder()
-              .kind(Resource.Kind.TARGET_POOL_LIST)
-              .items(ImmutableSet.of(TargetPool.builder()
-                      .id("5199309593612841404")
-                      .creationTimestamp(new SimpleDateFormatDateService().iso8601DateParse("2014-01-07T05:25:27.783-08:00"))
-                      .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/regions/us-central1/targetPools/test-targetpool"))
-                      .name("test-targetpool")
-                      .region(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/regions/us-central1"))
-                      .sessionAffinity(SessionAffinityValue.NONE)
-                      .build())
-              ).build();
+      return ListPage.create( //
+            ImmutableList.of(new ParseTargetPoolTest().expected()), // items
+            null, // nextPageToken
+            null // prefixes
+      );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetPoolTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetPoolTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetPoolTest.java
index 160d424..7f705a7 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetPoolTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseTargetPoolTest.java
@@ -16,18 +16,17 @@
  */
 package org.jclouds.googlecomputeengine.parse;
 
-import org.jclouds.date.internal.SimpleDateFormatDateService;
-import org.jclouds.googlecomputeengine.domain.TargetPool;
-import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
-import org.jclouds.googlecomputeengine.options.TargetPoolCreationOptions.SessionAffinityValue;
-import org.testng.annotations.Test;
+import java.net.URI;
 
 import javax.ws.rs.Consumes;
 import javax.ws.rs.core.MediaType;
 
-import java.net.URI;
+import org.jclouds.googlecomputeengine.domain.TargetPool;
+import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
+import org.jclouds.googlecomputeengine.options.TargetPoolCreationOptions.SessionAffinityValue;
+import org.testng.annotations.Test;
 
-@Test(groups = "unit")
+@Test(groups = "unit", testName = "ParseTargetPoolTest")
 public class ParseTargetPoolTest extends BaseGoogleComputeEngineParseTest<TargetPool> {
 
    @Override
@@ -35,16 +34,19 @@ public class ParseTargetPoolTest extends BaseGoogleComputeEngineParseTest<Target
       return "/targetpool_get.json";
    }
 
-   @Override
-   @Consumes(MediaType.APPLICATION_JSON)
+   @Override @Consumes(MediaType.APPLICATION_JSON)
    public TargetPool expected() {
-      return TargetPool.builder()
-              .id("5199309593612841404")
-              .creationTimestamp(new SimpleDateFormatDateService().iso8601DateParse("2014-01-07T05:25:27.783-08:00"))
-              .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/regions/us-central1/targetPools/test-targetpool"))
-              .name("test-targetpool")
-              .sessionAffinity(SessionAffinityValue.NONE)
-              .region(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/regions/us-central1"))
-              .build();
+      return TargetPool.create( //
+            "5199309593612841404", // id
+            URI.create(BASE_URL + "/myproject/regions/us-central1/targetPools/test-targetpool"), // selfLink
+            "test-targetpool", // name
+            null, // description
+            URI.create(BASE_URL + "/myproject/regions/us-central1"), // region
+            null, // healthChecks
+            null, // instances
+            SessionAffinityValue.NONE, // sessionAffinity
+            null, // failoverRatio
+            null // backupPool
+      );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneListTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneListTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneListTest.java
index 3e39293..90902c8 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneListTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneListTest.java
@@ -16,19 +16,20 @@
  */
 package org.jclouds.googlecomputeengine.parse;
 
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+
 import java.net.URI;
 
 import javax.ws.rs.Consumes;
-import javax.ws.rs.core.MediaType;
 
-import org.jclouds.date.internal.SimpleDateFormatDateService;
 import org.jclouds.googlecomputeengine.domain.ListPage;
-import org.jclouds.googlecomputeengine.domain.Resource;
 import org.jclouds.googlecomputeengine.domain.Zone;
 import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
 import org.testng.annotations.Test;
 
-@Test(groups = "unit")
+import com.google.common.collect.ImmutableList;
+
+@Test(groups = "unit", testName = "ParseZoneListTest")
 public class ParseZoneListTest extends BaseGoogleComputeEngineParseTest<ListPage<Zone>> {
 
    @Override
@@ -36,30 +37,28 @@ public class ParseZoneListTest extends BaseGoogleComputeEngineParseTest<ListPage
       return "/zone_list.json";
    }
 
-   @Override
-   @Consumes(MediaType.APPLICATION_JSON)
+   @Override @Consumes(APPLICATION_JSON)
    public ListPage<Zone> expected() {
-      return ListPage.<Zone>builder()
-                     .kind(Resource.Kind.ZONE_LIST)
-                     .addItem(new ParseZoneTest().expected())
-                     .addItem(Zone.builder()
-                                  .id("13024414164050619686")
-                                  .creationTimestamp(new SimpleDateFormatDateService().iso8601DateParse
-                                    ("2012-10-24T20:13:19.271"))
-                                  .selfLink(URI.create("https://www.googleapis" +
-                                    ".com/compute/v1/projects/myproject/zones/us-central1-b"))
-                                  .name("us-central1-b")
-                                  .description("us-central1-b")
-                                  .status(Zone.Status.UP)
-                                  .addMaintenanceWindow(Zone.MaintenanceWindow.builder()
-                                          .name("2013-02-17-planned-outage")
-                                          .description("maintenance zone")
-                                          .beginTime(new SimpleDateFormatDateService().iso8601DateParse
-                                                  ("2013-02-17T08:00:00.000"))
-                                          .endTime(new SimpleDateFormatDateService().iso8601DateParse
-                                                  ("2013-03-03T08:00:00.000"))
-                                          .build())
-                                  .build())
-                    .build();
+      Zone zone1 = new ParseZoneTest().expected();
+      Zone zone2 = Zone.create( //
+            "13024414164050619686", // id
+            URI.create(BASE_URL + "/myproject/zones/us-central1-b"), // selfLink
+            "us-central1-b", // name
+            "us-central1-b", // description
+            Zone.Status.UP, // status
+            ImmutableList.of( // maintenanceWindows
+                  Zone.MaintenanceWindow.create( //
+                        "2013-02-17-planned-outage", // name
+                        "maintenance zone", // description
+                        parse("2013-02-17T08:00:00.000"), // beginTime
+                        parse("2013-03-03T08:00:00.000") // endTime)
+                  )), //
+            null // availableMachineTypes
+      );
+      return ListPage.create( //
+            ImmutableList.of(zone1, zone2), // items
+            null, // nextPageToken
+            null // prefixes
+      );
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneOperationTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneOperationTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneOperationTest.java
new file mode 100644
index 0000000..0e5418d
--- /dev/null
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneOperationTest.java
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.googlecomputeengine.parse;
+
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+
+import java.net.URI;
+
+import javax.ws.rs.Consumes;
+
+import org.jclouds.googlecomputeengine.domain.Operation;
+import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
+import org.testng.annotations.Test;
+
+@Test(groups = "unit", testName = "ParseZoneOperationTest")
+public class ParseZoneOperationTest extends BaseGoogleComputeEngineParseTest<Operation> {
+
+   @Override
+   public String resource() {
+      return "/zone_operation.json";
+   }
+
+   @Override @Consumes(APPLICATION_JSON)
+   public Operation expected() {
+      return Operation.create( //
+            "13053095055850848306", // id
+            URI.create(BASE_URL + "/myproject/zones/us-central1-a/operations/operation-1354084865060-4cf88735faeb8-bbbb12cb"),
+            "operation-1354084865060-4cf88735faeb8-bbbb12cb", // name
+            null, // description
+            URI.create(BASE_URL + "/myproject/zones/us-central1-a/instances/instance-api-live-test-instance"),
+            "13053094017547040099", // targetId
+            null, // clientOperationId
+            Operation.Status.DONE, // status
+            null, // statusMessage
+            "user@developer.gserviceaccount.com", // user
+            100, // progress
+            parse("2012-11-28T06:41:05.060"), // insertTime
+            parse("2012-11-28T06:41:05.142"), // startTime
+            parse("2012-11-28T06:41:06.142"), // endTime
+            null, // httpErrorStatusCode
+            null, // httpErrorMessage
+            "insert", // operationType
+            null, // errors
+            null, // region
+            URI.create(BASE_URL + "/myproject/zones/us-central1-a") // zone
+      );
+   }
+}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/b41b0d04/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneTest.java
index 48cdbfc..2201039 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/parse/ParseZoneTest.java
@@ -16,17 +16,19 @@
  */
 package org.jclouds.googlecomputeengine.parse;
 
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+
 import java.net.URI;
 
 import javax.ws.rs.Consumes;
-import javax.ws.rs.core.MediaType;
 
-import org.jclouds.date.internal.SimpleDateFormatDateService;
 import org.jclouds.googlecomputeengine.domain.Zone;
 import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest;
 import org.testng.annotations.Test;
 
-@Test(groups = "unit")
+import com.google.common.collect.ImmutableList;
+
+@Test(groups = "unit", testName = "ParseZoneTest")
 public class ParseZoneTest extends BaseGoogleComputeEngineParseTest<Zone> {
 
    @Override
@@ -34,22 +36,22 @@ public class ParseZoneTest extends BaseGoogleComputeEngineParseTest<Zone> {
       return "/zone_get.json";
    }
 
-   @Override
-   @Consumes(MediaType.APPLICATION_JSON)
+   @Override @Consumes(APPLICATION_JSON)
    public Zone expected() {
-      return Zone.builder()
-              .id("13020128040171887099")
-              .creationTimestamp(new SimpleDateFormatDateService().iso8601DateParse("2012-10-19T16:42:54.131"))
-              .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a"))
-              .name("us-central1-a")
-              .description("us-central1-a")
-              .status(Zone.Status.DOWN)
-              .addMaintenanceWindow(Zone.MaintenanceWindow.builder()
-                      .name("2012-11-10-planned-outage")
-                      .description("maintenance zone")
-                      .beginTime(new SimpleDateFormatDateService().iso8601DateParse("2012-11-10T20:00:00.000"))
-                      .endTime(new SimpleDateFormatDateService().iso8601DateParse("2012-12-02T20:00:00.000"))
-                      .build())
-              .build();
+      return Zone.create( //
+            "13020128040171887099", // id
+            URI.create(BASE_URL + "/myproject/zones/us-central1-a"), // selfLink
+            "us-central1-a", // name
+            "us-central1-a", // description
+            Zone.Status.DOWN, // status
+            ImmutableList.of( // maintenanceWindows
+                  Zone.MaintenanceWindow.create( //
+                        "2012-11-10-planned-outage", // name
+                        "maintenance zone", // description
+                        parse("2012-11-10T20:00:00.000"), // beginTime
+                        parse("2012-12-02T20:00:00.000") // endTime)
+                  )), //
+            null // availableMachineTypes
+      );
    }
 }