Repository: jclouds-labs-google
Updated Branches:
  refs/heads/master 6b5643c92 -> 37e0397d9


http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/37e0397d/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ProjectApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ProjectApiLiveTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ProjectApiLiveTest.java
index c5e4479..8aeb7de 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ProjectApiLiveTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ProjectApiLiveTest.java
@@ -19,12 +19,9 @@ package org.jclouds.googlecomputeengine.features;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertSame;
 import static org.testng.Assert.assertTrue;
 
 import org.jclouds.googlecomputeengine.domain.Metadata;
-import org.jclouds.googlecomputeengine.domain.Operation;
 import org.jclouds.googlecomputeengine.domain.Project;
 import 
org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTest;
 import org.testng.annotations.Test;
@@ -34,75 +31,39 @@ public class ProjectApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
    private static final String METADATA_ITEM_KEY = "projectLiveTestTestProp";
    private static final String METADATA_ITEM_VALUE = 
"projectLiveTestTestValue";
 
-   private ProjectApi projectApi() {
-      return api.getProjectApi();
-   }
-
    private Project project;
    private int initialMetadataSize;
    private String initialFingerprint;
 
    @Test(groups = "live")
-   public void testGetProjectWhenExists() {
-      this.project = projectApi().get(userProject.get());
+   public void getProject() {
+      project = api.project().get();
       assertNotNull(project);
       assertNotNull(project.id());
       assertNotNull(project.name());
    }
 
-   @Test(groups = "live")
-   public void testGetProjectWhenNotExists() {
-      Project project = projectApi().get("momma");
-      assertNull(project);
-   }
-
-   @Test(groups = "live", dependsOnMethods = "testGetProjectWhenExists")
+   @Test(groups = "live", dependsOnMethods = "getProject")
    public void addItemToMetadata() {
-      this.initialMetadataSize = project.commonInstanceMetadata().size();
-      this.initialFingerprint = 
this.project.commonInstanceMetadata().fingerprint();
-      assertOperationDoneSuccessfully(addItemToMetadata(projectApi(), 
userProject.get(), METADATA_ITEM_KEY,
-              METADATA_ITEM_VALUE));
-      this.project = projectApi().get(userProject.get());
+      initialMetadataSize = project.commonInstanceMetadata().size();
+      initialFingerprint = project.commonInstanceMetadata().fingerprint();
+      Metadata metadata = 
project.commonInstanceMetadata().put(METADATA_ITEM_KEY, METADATA_ITEM_VALUE);
+      
assertOperationDoneSuccessfully(api.project().setCommonInstanceMetadata(metadata));
+      project = api.project().get();
       assertNotNull(project);
-      
assertTrue(this.project.commonInstanceMetadata().containsKey(METADATA_ITEM_KEY),
-              this.project.toString());
-      
assertEquals(this.project.commonInstanceMetadata().get(METADATA_ITEM_KEY), 
METADATA_ITEM_VALUE);
-      assertNotNull(this.project.commonInstanceMetadata().fingerprint());
+      
assertTrue(project.commonInstanceMetadata().containsKey(METADATA_ITEM_KEY), 
project.toString());
+      assertEquals(project.commonInstanceMetadata().get(METADATA_ITEM_KEY), 
METADATA_ITEM_VALUE);
+      assertNotNull(project.commonInstanceMetadata().fingerprint());
    }
 
    @Test(groups = "live", dependsOnMethods = "addItemToMetadata")
    public void testDeleteItemFromMetadata() {
-      assertOperationDoneSuccessfully(deleteItemFromMetadata(projectApi(), 
userProject.get(), METADATA_ITEM_KEY));
-      this.project = projectApi().get(userProject.get());
+      Metadata metadata = 
project.commonInstanceMetadata().remove(METADATA_ITEM_KEY);
+      
assertOperationDoneSuccessfully(api.project().setCommonInstanceMetadata(metadata));
+      project = api.project().get();
       assertNotNull(project);
       
assertFalse(project.commonInstanceMetadata().containsKey(METADATA_ITEM_KEY));
-      assertSame(this.project.commonInstanceMetadata().size(), 
initialMetadataSize);
-      assertEquals(this.project.commonInstanceMetadata().fingerprint(), 
initialFingerprint);
-   }
-
-   /**
-    * Adds an item to the Project's metadata
-    * <p/>
-    * Beyond it's use here it is also used as a cheap way of generating 
Operations to both test the OperationApi and
-    * the pagination system.
-    */
-   public static Operation addItemToMetadata(ProjectApi projectApi, String 
projectName, String key, String value) {
-      Project project = projectApi.get(projectName);
-      assertNotNull(project);
-      Metadata metadata = project.commonInstanceMetadata().clone().put(key, 
value);
-      return projectApi.setCommonInstanceMetadata(projectName, metadata);
-   }
-
-   /**
-    * Deletes an item from the Project's metadata
-    * <p/>
-    * Beyond it's use here it is also used as a cheap way of generating 
Operation's to both test the OperationApi and
-    * the pagination system.
-    */
-   public static Operation deleteItemFromMetadata(ProjectApi projectApi, 
String projectName, String key) {
-      Project project = projectApi.get(projectName);
-      assertNotNull(project);
-      Metadata metadata = project.commonInstanceMetadata().clone().remove(key);
-      return projectApi.setCommonInstanceMetadata(projectName, metadata);
+      assertEquals(project.commonInstanceMetadata().size(), 
initialMetadataSize);
+      assertEquals(project.commonInstanceMetadata().fingerprint(), 
initialFingerprint);
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/37e0397d/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionApiExpectTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionApiExpectTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionApiExpectTest.java
index 07616df..1115afb 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionApiExpectTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionApiExpectTest.java
@@ -16,7 +16,7 @@
  */
 package org.jclouds.googlecomputeengine.features;
 
-import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
+import static 
org.jclouds.googlecomputeengine.config.GoogleComputeEngineScopes.COMPUTE_READONLY_SCOPE;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertNull;
@@ -52,39 +52,38 @@ public class RegionApiExpectTest extends 
BaseGoogleComputeEngineExpectTest<Googl
            .payload(staticPayloadFromResource("/region_list.json")).build();
 
    public void testGetRegionResponseIs2xx() throws Exception {
-      HttpResponse operationResponse = HttpResponse.builder().statusCode(200)
+      HttpResponse response = HttpResponse.builder().statusCode(200)
               .payload(payloadFromResource("/region_get.json")).build();
 
       RegionApi api = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, GET_REGION_REQ, 
operationResponse).getRegionApi("party");
+              TOKEN_RESPONSE, GET_REGION_REQ, response).regions();
 
       assertEquals(api.get("us-central1"), new ParseRegionTest().expected());
    }
 
    public void testGetRegionResponseIs4xx() throws Exception {
 
-      HttpResponse operationResponse = 
HttpResponse.builder().statusCode(404).build();
+      HttpResponse response = HttpResponse.builder().statusCode(404).build();
 
       RegionApi api = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, GET_REGION_REQ, 
operationResponse).getRegionApi("party");
+              TOKEN_RESPONSE, GET_REGION_REQ, response).regions();
 
       assertNull(api.get("us-central1"));
    }
 
-   public void testListRegionNoOptionsResponseIs2xx() throws Exception {
-
+   public void list() throws Exception {
       RegionApi api = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, LIST_REGIONS_REQ, 
LIST_REGIONS_RESPONSE).getRegionApi("party");
+              TOKEN_RESPONSE, LIST_REGIONS_REQ, 
LIST_REGIONS_RESPONSE).regions();
 
-      assertEquals(api.list().next().toString(), new 
ParseRegionListTest().expected().toString());
+      assertEquals(api.list().next(), new ParseRegionListTest().expected());
    }
 
-   public void testListRegionWithPaginationOptionsResponseIs4xx() {
-
-      HttpResponse operationResponse = 
HttpResponse.builder().statusCode(404).build();
+   public void listEmpty() {
+      HttpResponse response = HttpResponse.builder().statusCode(200)
+            .payload(payloadFromResource("/list_empty.json")).build();
 
       RegionApi api = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, LIST_REGIONS_REQ, 
operationResponse).getRegionApi("party");
+              TOKEN_RESPONSE, LIST_REGIONS_REQ, response).regions();
 
       assertFalse(api.list().hasNext());
    }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/37e0397d/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionApiLiveTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionApiLiveTest.java
index 35decbc..2afeb97 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionApiLiveTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionApiLiveTest.java
@@ -34,7 +34,7 @@ public class RegionApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
    private Region region;
 
    private RegionApi api() {
-      return api.getRegionApi(userProject.get());
+      return api.regions();
    }
 
    @Test(groups = "live")

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/37e0397d/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RouteApiExpectTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RouteApiExpectTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RouteApiExpectTest.java
index 6a5e658..4bb5dbe 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RouteApiExpectTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RouteApiExpectTest.java
@@ -16,8 +16,8 @@
  */
 package org.jclouds.googlecomputeengine.features;
 
-import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
-import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
+import static 
org.jclouds.googlecomputeengine.config.GoogleComputeEngineScopes.COMPUTE_READONLY_SCOPE;
+import static 
org.jclouds.googlecomputeengine.config.GoogleComputeEngineScopes.COMPUTE_SCOPE;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertFalse;
 import static org.testng.AssertJUnit.assertNull;
@@ -47,11 +47,11 @@ public class RouteApiExpectTest extends 
BaseGoogleComputeEngineExpectTest<Google
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
-      HttpResponse operationResponse = HttpResponse.builder().statusCode(200)
+      HttpResponse response = HttpResponse.builder().statusCode(200)
               .payload(payloadFromResource("/route_get.json")).build();
 
       RouteApi api = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, get, operationResponse).getRouteApi("party");
+              TOKEN_RESPONSE, get, response).routes();
 
       assertEquals(api.get("default-route-c99ebfbed0e1f375"),
               new ParseRouteTest().expected());
@@ -65,10 +65,10 @@ public class RouteApiExpectTest extends 
BaseGoogleComputeEngineExpectTest<Google
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
-      HttpResponse operationResponse = 
HttpResponse.builder().statusCode(404).build();
+      HttpResponse response = HttpResponse.builder().statusCode(404).build();
 
       RouteApi api = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, get, operationResponse).getRouteApi("party");
+              TOKEN_RESPONSE, get, response).routes();
 
       assertNull(api.get("default-route-c99ebfbed0e1f375"));
    }
@@ -88,7 +88,7 @@ public class RouteApiExpectTest extends 
BaseGoogleComputeEngineExpectTest<Google
 
       RouteApi api = requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
               TOKEN_RESPONSE, insert,
-              insertRouteResponse).getRouteApi("party");
+              insertRouteResponse).routes();
 
       assertEquals(api.createInNetwork("default-route-c99ebfbed0e1f375",
               URI.create(BASE_URL + "/party/global/networks/default"),
@@ -113,7 +113,7 @@ public class RouteApiExpectTest extends 
BaseGoogleComputeEngineExpectTest<Google
               .payload(payloadFromResource("/global_operation.json")).build();
 
       RouteApi api = requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
-              TOKEN_RESPONSE, delete, deleteResponse).getRouteApi("party");
+              TOKEN_RESPONSE, delete, deleteResponse).routes();
 
       assertEquals(api.delete("default-route-c99ebfbed0e1f375"),
               new ParseGlobalOperationTest().expected());
@@ -130,40 +130,34 @@ public class RouteApiExpectTest extends 
BaseGoogleComputeEngineExpectTest<Google
       HttpResponse deleteResponse = 
HttpResponse.builder().statusCode(404).build();
 
       RouteApi api = requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
-              TOKEN_RESPONSE, delete, deleteResponse).getRouteApi("party");
+              TOKEN_RESPONSE, delete, deleteResponse).routes();
 
       assertNull(api.delete("default-route-c99ebfbed0e1f375"));
    }
 
-   public void testListRoutesResponseIs2xx() {
-      HttpRequest list = HttpRequest
-              .builder()
-              .method("GET")
-              .endpoint(BASE_URL + "/party/global/routes")
-              .addHeader("Accept", "application/json")
-              .addHeader("Authorization", "Bearer " + TOKEN).build();
+   HttpRequest list = HttpRequest
+         .builder()
+         .method("GET")
+         .endpoint(BASE_URL + "/party/global/routes")
+         .addHeader("Accept", "application/json")
+         .addHeader("Authorization", "Bearer " + TOKEN).build();
 
-      HttpResponse operationResponse = HttpResponse.builder().statusCode(200)
+   public void list() {
+      HttpResponse response = HttpResponse.builder().statusCode(200)
               .payload(payloadFromResource("/route_list.json")).build();
 
       RouteApi api = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, list, operationResponse).getRouteApi("party");
+              TOKEN_RESPONSE, list, response).routes();
 
-      assertEquals(api.list().next().toString(), new 
ParseRouteListTest().expected().toString());
+      assertEquals(api.list().next(), new ParseRouteListTest().expected());
    }
 
-   public void testListRoutesResponseIs4xx() {
-      HttpRequest list = HttpRequest
-              .builder()
-              .method("GET")
-              .endpoint(BASE_URL + "/party/global/routes")
-              .addHeader("Accept", "application/json")
-              .addHeader("Authorization", "Bearer " + TOKEN).build();
-
-      HttpResponse operationResponse = 
HttpResponse.builder().statusCode(404).build();
+   public void listEmpty() {
+      HttpResponse response = HttpResponse.builder().statusCode(200)
+            .payload(payloadFromResource("/list_empty.json")).build();
 
       RouteApi api = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, list, operationResponse).getRouteApi("party");
+              TOKEN_RESPONSE, list, response).routes();
 
       assertFalse(api.list().hasNext());
    }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/37e0397d/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RouteApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RouteApiLiveTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RouteApiLiveTest.java
index c2631f2..71ccc59 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RouteApiLiveTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RouteApiLiveTest.java
@@ -38,21 +38,21 @@ public class RouteApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
    private static final String ROUTE_NETWORK_NAME = 
"route-api-live-test-network";
 
    private RouteApi api() {
-      return api.getRouteApi(userProject.get());
+      return api.routes();
    }
 
    @Test(groups = "live")
    public void testInsertRoute() {
-      
assertOperationDoneSuccessfully(api.getNetworkApi(userProject.get()).createInIPv4Range
+      assertOperationDoneSuccessfully(api.networks().createInIPv4Range
               (ROUTE_NETWORK_NAME, IPV4_RANGE));
       assertOperationDoneSuccessfully(api().createInNetwork(ROUTE_NAME,
-              getNetworkUrl(userProject.get(), ROUTE_NETWORK_NAME),
+              getNetworkUrl(ROUTE_NETWORK_NAME),
               new RouteOptions().addTag("footag")
                       .addTag("bartag")
                       .description("RouteApi Live Test")
                       .destRange(DEST_RANGE)
                       .priority(1000)
-                      .nextHopGateway(getGatewayUrl(userProject.get(), 
DEFAULT_GATEWAY_NAME))));
+                      .nextHopGateway(getGatewayUrl(DEFAULT_GATEWAY_NAME))));
    }
 
    @Test(groups = "live", dependsOnMethods = "testInsertRoute")
@@ -79,12 +79,12 @@ public class RouteApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
    @Test(groups = "live", dependsOnMethods = "testListRoute")
    public void testDeleteRoute() {
       assertOperationDoneSuccessfully(api().delete(ROUTE_NAME));
-      
assertOperationDoneSuccessfully(api.getNetworkApi(userProject.get()).delete(ROUTE_NETWORK_NAME));
+      
assertOperationDoneSuccessfully(api.networks().delete(ROUTE_NETWORK_NAME));
    }
 
    private void assertRouteEquals(Route result) {
       assertEquals(result.name(), ROUTE_NAME);
       assertEquals(result.destRange(), DEST_RANGE);
-      assertEquals(result.nextHopGateway(), getGatewayUrl(userProject.get(), 
DEFAULT_GATEWAY_NAME));
+      assertEquals(result.nextHopGateway(), 
getGatewayUrl(DEFAULT_GATEWAY_NAME));
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/37e0397d/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/SnapshotApiExpectTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/SnapshotApiExpectTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/SnapshotApiExpectTest.java
index 80cc006..ed5f13d 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/SnapshotApiExpectTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/SnapshotApiExpectTest.java
@@ -16,7 +16,7 @@
  */
 package org.jclouds.googlecomputeengine.features;
 
-import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
+import static 
org.jclouds.googlecomputeengine.config.GoogleComputeEngineScopes.COMPUTE_READONLY_SCOPE;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertNull;
@@ -52,42 +52,38 @@ public class SnapshotApiExpectTest extends 
BaseGoogleComputeEngineExpectTest<Goo
            .payload(staticPayloadFromResource("/snapshot_list.json")).build();
 
    public void testGetSnapshotResponseIs2xx() throws Exception {
-
-
-      HttpResponse operationResponse = HttpResponse.builder().statusCode(200)
+      HttpResponse response = HttpResponse.builder().statusCode(200)
               .payload(payloadFromResource("/snapshot_get.json")).build();
 
       SnapshotApi api = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, GET_SNAPSHOT_REQ, 
operationResponse).getSnapshotApi("party");
+              TOKEN_RESPONSE, GET_SNAPSHOT_REQ, response).snapshots();
 
       assertEquals(api.get("test-snap"),
               new ParseSnapshotTest().expected());
    }
 
    public void testGetSnapshotResponseIs4xx() throws Exception {
-
-      HttpResponse operationResponse = 
HttpResponse.builder().statusCode(404).build();
+      HttpResponse response = HttpResponse.builder().statusCode(404).build();
 
       SnapshotApi api = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, GET_SNAPSHOT_REQ, 
operationResponse).getSnapshotApi("party");
+              TOKEN_RESPONSE, GET_SNAPSHOT_REQ, response).snapshots();
 
       assertNull(api.get("test-snap"));
    }
 
-   public void testListSnapshotNoOptionsResponseIs2xx() throws Exception {
-
+   public void list() throws Exception {
       SnapshotApi api = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, LIST_SNAPSHOTS_REQ, 
LIST_SNAPSHOTS_RESPONSE).getSnapshotApi("party");
+              TOKEN_RESPONSE, LIST_SNAPSHOTS_REQ, 
LIST_SNAPSHOTS_RESPONSE).snapshots();
 
-      assertEquals(api.list().next().toString(), new 
ParseSnapshotListTest().expected().toString());
+      assertEquals(api.list().next(), new ParseSnapshotListTest().expected());
    }
 
-   public void testListSnapshotWithPaginationOptionsResponseIs4xx() {
-
-      HttpResponse operationResponse = 
HttpResponse.builder().statusCode(404).build();
+   public void listEmpty() {
+      HttpResponse response = HttpResponse.builder().statusCode(200)
+            .payload(payloadFromResource("/list_empty.json")).build();
 
       SnapshotApi api = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, LIST_SNAPSHOTS_REQ, 
operationResponse).getSnapshotApi("party");
+              TOKEN_RESPONSE, LIST_SNAPSHOTS_REQ, response).snapshots();
 
       assertFalse(api.list().hasNext());
    }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/37e0397d/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/SnapshotApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/SnapshotApiLiveTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/SnapshotApiLiveTest.java
index 61a2191..bd61b5c 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/SnapshotApiLiveTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/SnapshotApiLiveTest.java
@@ -35,11 +35,11 @@ public class SnapshotApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
 
    private Disk disk;
    private SnapshotApi api() {
-      return api.getSnapshotApi(userProject.get());
+      return api.snapshots();
    }
 
    private DiskApi diskApi() {
-      return api.getDiskApi(userProject.get(), DEFAULT_ZONE_NAME);
+      return api.disksInZone(DEFAULT_ZONE_NAME);
    }
 
    @Test(groups = "live")

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/37e0397d/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiExpectTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiExpectTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiExpectTest.java
index 5f92f2f..7a4bbbc 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiExpectTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiExpectTest.java
@@ -16,8 +16,8 @@
  */
 package org.jclouds.googlecomputeengine.features;
 
-import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
-import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
+import static 
org.jclouds.googlecomputeengine.config.GoogleComputeEngineScopes.COMPUTE_READONLY_SCOPE;
+import static 
org.jclouds.googlecomputeengine.config.GoogleComputeEngineScopes.COMPUTE_SCOPE;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertFalse;
 import static org.testng.AssertJUnit.assertNull;
@@ -29,7 +29,6 @@ import javax.ws.rs.core.MediaType;
 
 import org.jclouds.googlecomputeengine.GoogleComputeEngineApi;
 import 
org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineExpectTest;
-import org.jclouds.googlecomputeengine.options.ListOptions;
 import org.jclouds.googlecomputeengine.options.TargetPoolCreationOptions;
 import org.jclouds.googlecomputeengine.parse.ParseRegionOperationTest;
 import org.jclouds.googlecomputeengine.parse.ParseTargetPoolListTest;
@@ -60,11 +59,11 @@ public class TargetPoolApiExpectTest extends 
BaseGoogleComputeEngineExpectTest<G
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
-      HttpResponse operationResponse = HttpResponse.builder().statusCode(200)
+      HttpResponse response = HttpResponse.builder().statusCode(200)
               .payload(payloadFromResource("/targetpool_get.json")).build();
 
       TargetPoolApi api = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, get, 
operationResponse).getTargetPoolApi("party", "us-central1");
+              TOKEN_RESPONSE, get, 
response).targetPoolsInRegion("us-central1");
 
       assertEquals(api.get("test"), new ParseTargetPoolTest().expected());
    }
@@ -77,10 +76,10 @@ public class TargetPoolApiExpectTest extends 
BaseGoogleComputeEngineExpectTest<G
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
-      HttpResponse operationResponse = 
HttpResponse.builder().statusCode(404).build();
+      HttpResponse response = HttpResponse.builder().statusCode(404).build();
 
       TargetPoolApi api = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, get, 
operationResponse).getTargetPoolApi("party", "us-central1");
+              TOKEN_RESPONSE, get, 
response).targetPoolsInRegion("us-central1");
 
       assertNull(api.get("test"));
    }
@@ -100,7 +99,7 @@ public class TargetPoolApiExpectTest extends 
BaseGoogleComputeEngineExpectTest<G
 
       TargetPoolApi api = 
requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
               TOKEN_RESPONSE, insert,
-              insertTargetPoolResponse).getTargetPoolApi("party", 
"us-central1");
+              insertTargetPoolResponse).targetPoolsInRegion("us-central1");
       TargetPoolCreationOptions targetPoolCreationOptions = new 
TargetPoolCreationOptions();
       assertEquals(api.create("test", targetPoolCreationOptions), new 
ParseRegionOperationTest().expected());
    }
@@ -117,7 +116,7 @@ public class TargetPoolApiExpectTest extends 
BaseGoogleComputeEngineExpectTest<G
               .payload(payloadFromResource("/region_operation.json")).build();
 
       TargetPoolApi api = 
requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
-              TOKEN_RESPONSE, delete, 
deleteResponse).getTargetPoolApi("party", "us-central1");
+              TOKEN_RESPONSE, delete, 
deleteResponse).targetPoolsInRegion("us-central1");
 
       assertEquals(api.delete("test-targetPool"),
               new ParseRegionOperationTest().expected());
@@ -134,52 +133,45 @@ public class TargetPoolApiExpectTest extends 
BaseGoogleComputeEngineExpectTest<G
       HttpResponse deleteResponse = 
HttpResponse.builder().statusCode(404).build();
 
       TargetPoolApi api = 
requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
-              TOKEN_RESPONSE, delete, 
deleteResponse).getTargetPoolApi("party", "us-central1");
+              TOKEN_RESPONSE, delete, 
deleteResponse).targetPoolsInRegion("us-central1");
 
       assertNull(api.delete("test-targetPool"));
    }
 
-   public void testListTargetPoolsResponseIs2xx() {
-      HttpRequest list = HttpRequest
-              .builder()
-              .method("GET")
-              .endpoint(BASE_URL + "/party/regions/us-central1/targetPools")
-              .addHeader("Accept", "application/json")
-              .addHeader("Authorization", "Bearer " + TOKEN).build();
+   HttpRequest list = HttpRequest
+         .builder()
+         .method("GET")
+         .endpoint(BASE_URL + "/party/regions/us-central1/targetPools")
+         .addHeader("Accept", "application/json")
+         .addHeader("Authorization", "Bearer " + TOKEN).build();
 
-      HttpResponse operationResponse = HttpResponse.builder().statusCode(200)
+   public void list() {
+      HttpResponse response = HttpResponse.builder().statusCode(200)
               .payload(payloadFromResource("/targetpool_list.json")).build();
 
       TargetPoolApi api = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, list, 
operationResponse).getTargetPoolApi("party", "us-central1");
+              TOKEN_RESPONSE, list, 
response).targetPoolsInRegion("us-central1");
 
-      ListOptions options = new ListOptions();
-      assertEquals(api.list(options).next().toString(), new 
ParseTargetPoolListTest().expected().toString());
+      assertEquals(api.list().next(), new 
ParseTargetPoolListTest().expected());
    }
 
-   public void testListTargetPoolsResponseIs4xx() {
-      HttpRequest list = HttpRequest
-              .builder()
-              .method("GET")
-              .endpoint(BASE_URL + "/party/regions/us-central1/targetPools")
-              .addHeader("Accept", "application/json")
-              .addHeader("Authorization", "Bearer " + TOKEN).build();
-
-      HttpResponse operationResponse = 
HttpResponse.builder().statusCode(404).build();
+   public void listEmpty() {
+      HttpResponse response = HttpResponse.builder().statusCode(200)
+            .payload(payloadFromResource("/list_empty.json")).build();
 
       TargetPoolApi api = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, list, 
operationResponse).getTargetPoolApi("party", "us-central1");
+              TOKEN_RESPONSE, list, 
response).targetPoolsInRegion("us-central1");
 
       assertFalse(api.list().hasNext());
    }
 
    public void testAddInstanceResponseIs2xx() throws Exception {
       HttpRequest addInstance = makeGenericRequest("POST", "addInstance", 
"/targetpool_addinstance.json");
-      HttpResponse operationResponse = HttpResponse.builder().statusCode(200)
+      HttpResponse response = HttpResponse.builder().statusCode(200)
               .payload(payloadFromResource("/region_operation.json")).build();
 
       TargetPoolApi api = 
requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
-              TOKEN_RESPONSE, addInstance, 
operationResponse).getTargetPoolApi("party", "us-central1");
+              TOKEN_RESPONSE, addInstance, 
response).targetPoolsInRegion("us-central1");
 
       assertEquals(api.addInstance("test", INSTANCES),
               new ParseRegionOperationTest().expected());
@@ -188,10 +180,10 @@ public class TargetPoolApiExpectTest extends 
BaseGoogleComputeEngineExpectTest<G
    @Test(expectedExceptions = ResourceNotFoundException.class)
    public void testAddInstanceResponseIs4xx() throws Exception {
       HttpRequest addInstance = makeGenericRequest("POST", "addInstance", 
"/targetpool_addinstance.json");
-      HttpResponse operationResponse = 
HttpResponse.builder().statusCode(404).build();
+      HttpResponse response = HttpResponse.builder().statusCode(404).build();
 
       TargetPoolApi api = 
requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
-              TOKEN_RESPONSE, addInstance, 
operationResponse).getTargetPoolApi("party", "us-central1");
+              TOKEN_RESPONSE, addInstance, 
response).targetPoolsInRegion("us-central1");
 
       api.addInstance("test", INSTANCES);
    }
@@ -199,11 +191,11 @@ public class TargetPoolApiExpectTest extends 
BaseGoogleComputeEngineExpectTest<G
    public void testRemoveInstanceResponseIs2xx(){
       HttpRequest removeInstance = makeGenericRequest("POST", 
"removeInstance", "/targetpool_addinstance.json");
       
-      HttpResponse operationResponse = HttpResponse.builder().statusCode(200)
+      HttpResponse response = HttpResponse.builder().statusCode(200)
             .payload(payloadFromResource("/region_operation.json")).build();
 
       TargetPoolApi api = 
requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
-            TOKEN_RESPONSE, removeInstance, 
operationResponse).getTargetPoolApi("party", "us-central1");
+            TOKEN_RESPONSE, removeInstance, 
response).targetPoolsInRegion("us-central1");
 
       assertEquals(api.removeInstance("test", INSTANCES),
             new ParseRegionOperationTest().expected());
@@ -212,10 +204,10 @@ public class TargetPoolApiExpectTest extends 
BaseGoogleComputeEngineExpectTest<G
    @Test(expectedExceptions = ResourceNotFoundException.class)
    public void testRemoveInstanceResponseIs4xx() throws Exception {
       HttpRequest removeInstance = makeGenericRequest("POST", 
"removeInstance", "/targetpool_addinstance.json");
-      HttpResponse operationResponse = 
HttpResponse.builder().statusCode(404).build();
+      HttpResponse response = HttpResponse.builder().statusCode(404).build();
 
       TargetPoolApi api = 
requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
-              TOKEN_RESPONSE, removeInstance, 
operationResponse).getTargetPoolApi("party", "us-central1");
+              TOKEN_RESPONSE, removeInstance, 
response).targetPoolsInRegion("us-central1");
 
       api.removeInstance("test", INSTANCES);
    }
@@ -223,11 +215,11 @@ public class TargetPoolApiExpectTest extends 
BaseGoogleComputeEngineExpectTest<G
    public void testAddHealthCheckResponseIs2xx(){
       HttpRequest addHealthCheck = makeGenericRequest("POST", 
"addHealthCheck", "/targetpool_changehealthcheck.json");
       
-      HttpResponse operationResponse = HttpResponse.builder().statusCode(200)
+      HttpResponse response = HttpResponse.builder().statusCode(200)
             .payload(payloadFromResource("/region_operation.json")).build();
 
       TargetPoolApi api = 
requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
-            TOKEN_RESPONSE, addHealthCheck, 
operationResponse).getTargetPoolApi("party", "us-central1");
+            TOKEN_RESPONSE, addHealthCheck, 
response).targetPoolsInRegion("us-central1");
 
       assertEquals(api.addHealthCheck("test", HEALTH_CHECKS), new 
ParseRegionOperationTest().expected());
    }
@@ -235,10 +227,10 @@ public class TargetPoolApiExpectTest extends 
BaseGoogleComputeEngineExpectTest<G
    @Test(expectedExceptions = ResourceNotFoundException.class)
    public void testAddHealthCheckResponseIs4xx() throws Exception {
       HttpRequest addHealthCheck = makeGenericRequest("POST", 
"addHealthCheck", "/targetpool_changehealthcheck.json");
-      HttpResponse operationResponse = 
HttpResponse.builder().statusCode(404).build();
+      HttpResponse response = HttpResponse.builder().statusCode(404).build();
 
       TargetPoolApi api = 
requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
-              TOKEN_RESPONSE, addHealthCheck, 
operationResponse).getTargetPoolApi("party", "us-central1");
+              TOKEN_RESPONSE, addHealthCheck, 
response).targetPoolsInRegion("us-central1");
 
       api.addHealthCheck("test", HEALTH_CHECKS);
    }
@@ -246,11 +238,11 @@ public class TargetPoolApiExpectTest extends 
BaseGoogleComputeEngineExpectTest<G
    public void testRemoveHealthCheckResponseIs2xx(){
       HttpRequest removeHealthCheck = makeGenericRequest("POST", 
"removeHealthCheck", "/targetpool_changehealthcheck.json");
       
-      HttpResponse operationResponse = HttpResponse.builder().statusCode(200)
+      HttpResponse response = HttpResponse.builder().statusCode(200)
             .payload(payloadFromResource("/region_operation.json")).build();
 
       TargetPoolApi api = 
requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
-            TOKEN_RESPONSE, removeHealthCheck, 
operationResponse).getTargetPoolApi("party", "us-central1");
+            TOKEN_RESPONSE, removeHealthCheck, 
response).targetPoolsInRegion("us-central1");
 
       assertEquals(api.removeHealthCheck("test", HEALTH_CHECKS), new 
ParseRegionOperationTest().expected());
    }
@@ -258,10 +250,10 @@ public class TargetPoolApiExpectTest extends 
BaseGoogleComputeEngineExpectTest<G
    @Test(expectedExceptions = ResourceNotFoundException.class)
    public void testRemoveHealthCheckResponseIs4xx() throws Exception {
       HttpRequest removeHealthCheck = makeGenericRequest("POST", 
"removeHealthCheck", "/targetpool_changehealthcheck.json");
-      HttpResponse operationResponse = 
HttpResponse.builder().statusCode(404).build();
+      HttpResponse response = HttpResponse.builder().statusCode(404).build();
 
       TargetPoolApi api = 
requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
-              TOKEN_RESPONSE, removeHealthCheck, 
operationResponse).getTargetPoolApi("party", "us-central1");
+              TOKEN_RESPONSE, removeHealthCheck, 
response).targetPoolsInRegion("us-central1");
 
       api.removeHealthCheck("test", HEALTH_CHECKS);
    }
@@ -275,11 +267,11 @@ public class TargetPoolApiExpectTest extends 
BaseGoogleComputeEngineExpectTest<G
             .addHeader("Authorization", "Bearer " + TOKEN)
             
.payload(payloadFromResourceWithContentType("/targetpool_setbackup.json", 
MediaType.APPLICATION_JSON))
             .build();
-      HttpResponse operationResponse = HttpResponse.builder().statusCode(200)
+      HttpResponse response = HttpResponse.builder().statusCode(200)
             .payload(payloadFromResource("/region_operation.json")).build();
 
       TargetPoolApi api = 
requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
-            TOKEN_RESPONSE, SetBackup, 
operationResponse).getTargetPoolApi("party", "us-central1");
+            TOKEN_RESPONSE, SetBackup, 
response).targetPoolsInRegion("us-central1");
 
       assertEquals(api.setBackup("testpool", TARGET_POOL), new 
ParseRegionOperationTest().expected());
    }
@@ -294,11 +286,11 @@ public class TargetPoolApiExpectTest extends 
BaseGoogleComputeEngineExpectTest<G
             .addHeader("Authorization", "Bearer " + TOKEN)
             
.payload(payloadFromResourceWithContentType("/targetpool_setbackup.json", 
MediaType.APPLICATION_JSON))
             .build();
-      HttpResponse operationResponse = HttpResponse.builder().statusCode(200)
+      HttpResponse response = HttpResponse.builder().statusCode(200)
             .payload(payloadFromResource("/region_operation.json")).build();
 
       TargetPoolApi api = 
requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
-            TOKEN_RESPONSE, SetBackup, 
operationResponse).getTargetPoolApi("party", "us-central1");
+            TOKEN_RESPONSE, SetBackup, 
response).targetPoolsInRegion("us-central1");
 
       Float failoverRatio = Float.valueOf("0.5");
       assertEquals(api.setBackup("testpool", failoverRatio, TARGET_POOL), new 
ParseRegionOperationTest().expected());
@@ -314,10 +306,10 @@ public class TargetPoolApiExpectTest extends 
BaseGoogleComputeEngineExpectTest<G
             .addHeader("Authorization", "Bearer " + TOKEN)
             
.payload(payloadFromResourceWithContentType("/targetpool_setbackup.json", 
MediaType.APPLICATION_JSON))
             .build();
-      HttpResponse operationResponse = 
HttpResponse.builder().statusCode(404).build();
+      HttpResponse response = HttpResponse.builder().statusCode(404).build();
 
       TargetPoolApi api = 
requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
-            TOKEN_RESPONSE, SetBackup, 
operationResponse).getTargetPoolApi("party", "us-central1");
+            TOKEN_RESPONSE, SetBackup, 
response).targetPoolsInRegion("us-central1");
 
       api.setBackup("testpool", TARGET_POOL);
    }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/37e0397d/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiLiveTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiLiveTest.java
index 10d61ac..1683b88 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiLiveTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/TargetPoolApiLiveTest.java
@@ -16,7 +16,6 @@
  */
 package org.jclouds.googlecomputeengine.features;
 
-import static 
org.jclouds.googlecomputeengine.domain.NewInstance.Disk.newBootDisk;
 import static 
org.jclouds.googlecomputeengine.options.ListOptions.Builder.filter;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNotEquals;
@@ -62,15 +61,15 @@ public class TargetPoolApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
    private List<URI> httpHealthChecks;
 
    private TargetPoolApi api() {
-      return api.getTargetPoolApi(userProject.get(), DEFAULT_REGION_NAME);
+      return api.targetPoolsInRegion(DEFAULT_REGION_NAME);
    }
 
    @Test(groups = "live")
    public void testCreateInstanceAndHealthCheck(){
-      InstanceApi instanceApi = api.getInstanceApi(userProject.get(), 
DEFAULT_ZONE_NAME);
-      HttpHealthCheckApi httpHealthCheckApi = 
api.getHttpHealthCheckApi(userProject.get());
+      InstanceApi instanceApi = api.instancesInZone(DEFAULT_ZONE_NAME);
+      HttpHealthCheckApi httpHealthCheckApi = api.httpHeathChecks();
 
-      ListPage<Image> list = api.getImageApi("centos-cloud").list(filter("name 
eq centos.*")).next();
+      ListPage<Image> list = api.images().listInProject("centos-cloud", 
filter("name eq centos.*")).next();
       // Get an imageUri
       URI imageUri = FluentIterable.from(list)
             .filter(new Predicate<Image>() {
@@ -83,16 +82,16 @@ public class TargetPoolApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
             .first().get().selfLink();
 
       // Insert a network.
-      
assertOperationDoneSuccessfully(api.getNetworkApi(userProject.get()).createInIPv4Range(INSTANCE_NETWORK_NAME,
+      
assertOperationDoneSuccessfully(api.networks().createInIPv4Range(INSTANCE_NETWORK_NAME,
             IPV4_RANGE));
 
       // Create an instance.
       assertOperationDoneSuccessfully(
-            
instanceApi.create(NewInstance.create(getDefaultMachineTypeUrl(userProject.get()),
 // machineType
+            instanceApi.create(NewInstance.create( //
                   INSTANCE_NAME, // name
-                  getNetworkUrl(userProject.get(), INSTANCE_NETWORK_NAME), // 
network
-                  newBootDisk(imageUri), // disks
-                  null // description
+                  getDefaultMachineTypeUrl(), // machineType
+                  getNetworkUrl(INSTANCE_NETWORK_NAME), // network
+                  imageUri // disks
             )));
 
       Instance instance = instanceApi.get(INSTANCE_NAME);
@@ -227,12 +226,12 @@ public class TargetPoolApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
 
    @AfterClass(groups = { "integration", "live" })
    public void testCleanup(){
-      InstanceApi instanceApi = api.getInstanceApi(userProject.get(), 
DEFAULT_ZONE_NAME);
-      HttpHealthCheckApi httpHealthCheckApi = 
api.getHttpHealthCheckApi(userProject.get());
+      InstanceApi instanceApi = api.instancesInZone(DEFAULT_ZONE_NAME);
+      HttpHealthCheckApi httpHealthCheckApi = api.httpHeathChecks();
 
       try {
          waitOperationDone(instanceApi.delete(INSTANCE_NAME));
-         
waitOperationDone(api.getNetworkApi(userProject.get()).delete(INSTANCE_NETWORK_NAME));
+         waitOperationDone(api.networks().delete(INSTANCE_NETWORK_NAME));
          waitOperationDone(httpHealthCheckApi.delete(HEALTHCHECK_NAME));
       } catch (Exception e) {
          // we don't really care about any exception here, so just delete away.

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/37e0397d/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiExpectTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiExpectTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiExpectTest.java
index e94df95..f6521a8 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiExpectTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiExpectTest.java
@@ -16,7 +16,7 @@
  */
 package org.jclouds.googlecomputeengine.features;
 
-import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
+import static 
org.jclouds.googlecomputeengine.config.GoogleComputeEngineScopes.COMPUTE_READONLY_SCOPE;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertNull;
@@ -57,11 +57,11 @@ public class ZoneApiExpectTest extends 
BaseGoogleComputeEngineExpectTest<GoogleC
    public void testGetZoneResponseIs2xx() throws Exception {
 
 
-      HttpResponse operationResponse = HttpResponse.builder().statusCode(200)
+      HttpResponse response = HttpResponse.builder().statusCode(200)
               .payload(payloadFromResource("/zone_get.json")).build();
 
       ZoneApi api = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, GET_ZONE_REQ, 
operationResponse).getZoneApi("party");
+              TOKEN_RESPONSE, GET_ZONE_REQ, response).zones();
 
       assertEquals(api.get("us-central1-a"),
               new ParseZoneTest().expected());
@@ -69,28 +69,27 @@ public class ZoneApiExpectTest extends 
BaseGoogleComputeEngineExpectTest<GoogleC
 
    public void testGetZoneResponseIs4xx() throws Exception {
 
-      HttpResponse operationResponse = 
HttpResponse.builder().statusCode(404).build();
+      HttpResponse response = HttpResponse.builder().statusCode(404).build();
 
       ZoneApi api = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, GET_ZONE_REQ, 
operationResponse).getZoneApi("party");
+              TOKEN_RESPONSE, GET_ZONE_REQ, response).zones();
 
       assertNull(api.get("us-central1-a"));
    }
 
-   public void testListZoneNoOptionsResponseIs2xx() throws Exception {
-
+   public void list() throws Exception {
       ZoneApi api = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, LIST_ZONES_REQ, 
LIST_ZONES_RESPONSE).getZoneApi("party");
+              TOKEN_RESPONSE, LIST_ZONES_REQ, LIST_ZONES_RESPONSE).zones();
 
-      assertEquals(api.list().next().toString(), new 
ParseZoneListTest().expected().toString());
+      assertEquals(api.list().next(), new ParseZoneListTest().expected());
    }
 
-   public void testListZoneWithPaginationOptionsResponseIs4xx() {
-
-      HttpResponse operationResponse = 
HttpResponse.builder().statusCode(404).build();
+   public void listEmpty() {
+      HttpResponse response = HttpResponse.builder().statusCode(200)
+            .payload(payloadFromResource("/list_empty.json")).build();
 
       ZoneApi api = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, LIST_ZONES_REQ, 
operationResponse).getZoneApi("party");
+              TOKEN_RESPONSE, LIST_ZONES_REQ, response).zones();
 
       assertFalse(api.list().hasNext());
    }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/37e0397d/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiLiveTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiLiveTest.java
index c1224d0..fb5a4cb 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiLiveTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiLiveTest.java
@@ -34,7 +34,7 @@ public class ZoneApiLiveTest extends 
BaseGoogleComputeEngineApiLiveTest {
    private Zone zone;
 
    private ZoneApi api() {
-      return api.getZoneApi(userProject.get());
+      return api.zones();
    }
 
    @Test(groups = "live")

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/37e0397d/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/functions/internal/ToIteratorOfListPageExpectTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/functions/internal/ToIteratorOfListPageExpectTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/functions/internal/ToIteratorOfListPageExpectTest.java
index 5171c35..f3f9eb5 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/functions/internal/ToIteratorOfListPageExpectTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/functions/internal/ToIteratorOfListPageExpectTest.java
@@ -16,7 +16,7 @@
  */
 package org.jclouds.googlecomputeengine.functions.internal;
 
-import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
+import static 
org.jclouds.googlecomputeengine.config.GoogleComputeEngineScopes.COMPUTE_READONLY_SCOPE;
 import static 
org.jclouds.googlecomputeengine.options.ListOptions.Builder.maxResults;
 import static org.testng.Assert.assertEquals;
 
@@ -63,7 +63,7 @@ public class ToIteratorOfListPageExpectTest extends 
BaseGoogleComputeEngineExpec
               
.payload(payloadFromResource("/image_list_single_page.json")).build();
 
       ImageApi imageApi = 
requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, list, operationResponse).getImageApi("party");
+              TOKEN_RESPONSE, list, operationResponse).images();
 
       Iterator<ListPage<Image>> images = imageApi.list();
 
@@ -96,8 +96,7 @@ public class ToIteratorOfListPageExpectTest extends 
BaseGoogleComputeEngineExpec
             .payload(json.toJson(ListPage.create(items, null))).build();
 
       ImageApi imageApi = 
orderedRequestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, list1, list1Response, list2, list2Response, 
list3, list3Response)
-              .getImageApi("party");
+              TOKEN_RESPONSE, list1, list1Response, list2, list2Response, 
list3, list3Response).images();
 
       Iterator<ListPage<Image>> images = imageApi.list(maxResults(1));
 
@@ -135,7 +134,7 @@ public class ToIteratorOfListPageExpectTest extends 
BaseGoogleComputeEngineExpec
 
       AddressApi addressApi = 
orderedRequestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
             TOKEN_RESPONSE, list1, list1Response, list2, list2Response, list3, 
list3Response)
-            .getAddressApi("party", "us-central1");
+            .addressesInRegion("us-central1");
 
       Iterator<ListPage<Address>> addresses = addressApi.list(maxResults(1));
 
@@ -173,7 +172,7 @@ public class ToIteratorOfListPageExpectTest extends 
BaseGoogleComputeEngineExpec
 
       InstanceApi instanceApi = 
orderedRequestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
             TOKEN_RESPONSE, list1, list1Response, list2, list2Response, list3, 
list3Response)
-            .getInstanceApi("party", "us-central1-a");
+            .instancesInZone("us-central1-a");
 
       Iterator<ListPage<Instance>> instances = instanceApi.list(maxResults(1));
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/37e0397d/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiLiveTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiLiveTest.java
index 3c630b1..17f1405 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiLiveTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiLiveTest.java
@@ -18,7 +18,6 @@ package org.jclouds.googlecomputeengine.internal;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
-import static org.jclouds.oauth.v2.OAuthTestUtils.setCredential;
 import static org.testng.Assert.assertEquals;
 import static org.testng.AssertJUnit.assertTrue;
 
@@ -29,11 +28,9 @@ import java.util.logging.Logger;
 
 import org.jclouds.apis.BaseApiLiveTest;
 import org.jclouds.googlecomputeengine.GoogleComputeEngineApi;
-import org.jclouds.googlecomputeengine.GoogleComputeEngineProviderMetadata;
-import org.jclouds.googlecomputeengine.config.UserProject;
+import org.jclouds.googlecomputeengine.config.CurrentProject;
 import org.jclouds.googlecomputeengine.domain.Operation;
 import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.providers.ProviderMetadata;
 
 import com.google.common.base.Predicate;
 import com.google.common.base.Supplier;
@@ -46,7 +43,6 @@ import com.google.inject.TypeLiteral;
 
 public class BaseGoogleComputeEngineApiLiveTest extends 
BaseApiLiveTest<GoogleComputeEngineApi> {
 
-   protected static final String API_URL_PREFIX = 
"https://www.googleapis.com/compute/v1/projects/";;
    protected static final String ZONE_API_URL_SUFFIX = "/zones/";
    protected static final String DEFAULT_ZONE_NAME = "us-central1-a";
    protected static final String DEFAULT_REGION_NAME = "us-central1";
@@ -58,30 +54,23 @@ public class BaseGoogleComputeEngineApiLiveTest extends 
BaseApiLiveTest<GoogleCo
    protected static final String IMAGE_API_URL_SUFFIX = "/global/images/";
    protected static final String DISK_TYPE_API_URL_SUFFIX = "/diskTypes/";
 
-   protected Supplier<String> userProject;
    protected Predicate<AtomicReference<Operation>> operationDone;
+   protected URI projectUrl;
 
    public BaseGoogleComputeEngineApiLiveTest() {
       provider = "google-compute-engine";
    }
 
-   @Override
-   protected Properties setupProperties() {
-      Properties props = super.setupProperties();
-      setCredential(props, provider + ".credential");
-      return props;
+   @Override protected Properties setupProperties() {
+      return TestProperties.apply(super.setupProperties());
    }
 
-   @Override protected ProviderMetadata createProviderMetadata() {
-      return new GoogleComputeEngineProviderMetadata();
-   }
-
-   protected GoogleComputeEngineApi create(Properties props, Iterable<Module> 
modules) {
+   @Override protected GoogleComputeEngineApi create(Properties props, 
Iterable<Module> modules) {
       Injector injector = 
newBuilder().modules(modules).overrides(props).buildInjector();
-      userProject = injector.getInstance(Key.get(new 
TypeLiteral<Supplier<String>>() {
-      }, UserProject.class));
       operationDone = injector.getInstance(Key.get(new 
TypeLiteral<Predicate<AtomicReference<Operation>>>() {
       }));
+      projectUrl = injector.getInstance(Key.get(new 
TypeLiteral<Supplier<URI>>() {
+      }, CurrentProject.class)).get();
       return injector.getInstance(GoogleComputeEngineApi.class);
    }
 
@@ -101,41 +90,41 @@ public class BaseGoogleComputeEngineApiLiveTest extends 
BaseApiLiveTest<GoogleCo
       }
    }
 
-   protected URI getDiskTypeUrl(String project, String zone, String diskType){
-      return URI.create(API_URL_PREFIX + project + ZONE_API_URL_SUFFIX + zone 
+ DISK_TYPE_API_URL_SUFFIX + diskType);
+   protected URI getDiskTypeUrl(String zone, String diskType){
+      return URI.create(projectUrl + ZONE_API_URL_SUFFIX + zone + 
DISK_TYPE_API_URL_SUFFIX + diskType);
    }
 
-   protected URI getDefaultZoneUrl(String project) {
-      return getZoneUrl(project, DEFAULT_ZONE_NAME);
+   protected URI getDefaultZoneUrl() {
+      return getZoneUrl(DEFAULT_ZONE_NAME);
    }
 
-   protected URI getZoneUrl(String project, String zone) {
-      return URI.create(API_URL_PREFIX + project + ZONE_API_URL_SUFFIX + zone);
+   protected URI getZoneUrl(String zone) {
+      return URI.create(projectUrl + ZONE_API_URL_SUFFIX + zone);
    }
 
-   protected URI getNetworkUrl(String project, String network) {
-      return URI.create(API_URL_PREFIX + project + NETWORK_API_URL_SUFFIX + 
network);
+   protected URI getNetworkUrl(String network) {
+      return URI.create(projectUrl + NETWORK_API_URL_SUFFIX + network);
    }
 
-   protected URI getGatewayUrl(String project, String gateway) {
-      return URI.create(API_URL_PREFIX + project + GATEWAY_API_URL_SUFFIX + 
gateway);
+   protected URI getGatewayUrl(String gateway) {
+      return URI.create(projectUrl + GATEWAY_API_URL_SUFFIX + gateway);
    }
 
-   protected URI getImageUrl(String project, String image){
-      return URI.create(API_URL_PREFIX + project + IMAGE_API_URL_SUFFIX + 
image);
+   protected URI getImageUrl(String image){
+      return URI.create(projectUrl + IMAGE_API_URL_SUFFIX + image);
    }
 
-   protected URI getDefaultMachineTypeUrl(String project) {
-      return getMachineTypeUrl(project, DEFAULT_MACHINE_TYPE_NAME);
+   protected URI getDefaultMachineTypeUrl() {
+      return getMachineTypeUrl(DEFAULT_MACHINE_TYPE_NAME);
    }
 
-   protected URI getMachineTypeUrl(String project, String machineType) {
-      return URI.create(API_URL_PREFIX + project + ZONE_API_URL_SUFFIX
+   protected URI getMachineTypeUrl(String machineType) {
+      return URI.create(projectUrl + ZONE_API_URL_SUFFIX
               + DEFAULT_ZONE_NAME + MACHINE_TYPE_API_URL_SUFFIX + machineType);
    }
 
-   protected URI getDiskUrl(String project, String diskName) {
-      return URI.create(API_URL_PREFIX + project + ZONE_API_URL_SUFFIX + 
DEFAULT_ZONE_NAME + "/disks/" + diskName);
+   protected URI getDiskUrl(String diskName) {
+      return URI.create(projectUrl + ZONE_API_URL_SUFFIX + DEFAULT_ZONE_NAME + 
"/disks/" + diskName);
    }
 }
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/37e0397d/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiMockTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiMockTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiMockTest.java
index b94cee8..ab691e8 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiMockTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiMockTest.java
@@ -20,10 +20,11 @@ import static com.google.common.base.Charsets.UTF_8;
 import static com.google.common.base.Throwables.propagate;
 import static 
com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor;
 import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
-import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.GCE_IMAGE_PROJECTS;
+import static 
org.jclouds.googlecomputeengine.config.GoogleComputeEngineProperties.CREDENTIAL_TYPE;
+import static 
org.jclouds.googlecomputeengine.config.GoogleComputeEngineProperties.IMAGE_PROJECTS;
+import static 
org.jclouds.googlecomputeengine.config.GoogleComputeEngineProperties.PROJECT_NAME;
 import static org.jclouds.oauth.v2.OAuthConstants.NO_ALGORITHM;
 import static 
org.jclouds.oauth.v2.config.CredentialType.BEARER_TOKEN_CREDENTIALS;
-import static org.jclouds.oauth.v2.config.OAuthProperties.CREDENTIAL_TYPE;
 import static 
org.jclouds.oauth.v2.config.OAuthProperties.SIGNATURE_OR_MAC_ALGORITHM;
 import static org.jclouds.util.Strings2.toStringAndClose;
 import static org.testng.Assert.assertEquals;
@@ -55,9 +56,8 @@ import com.squareup.okhttp.mockwebserver.RecordedRequest;
  */
 public class BaseGoogleComputeEngineApiMockTest {
 
-   protected final String identity = "party";
-   protected final String credential = 
"1/8xbJqaOZXSUZbHLl5EOtu1pxz3fmmetKx9W8CV4t79M";
-   protected final String openSshKey = 
GoogleComputeEngineTestModule.INSTANCE.openSshKey;
+   protected final String identity = 
"761326798069-r5mljlln1rd4lrbhg75efgigp36m7...@developer.gserviceaccount.com";
+   protected final String credential = 
"1/8xbJqaOZXSUZbHLl5EOtu1pxz3fmmetKx9W8CV4t79M"; // Fake Bearer Token
 
    protected MockWebServer server;
 
@@ -69,14 +69,15 @@ public class BaseGoogleComputeEngineApiMockTest {
       return 
builder().buildView(ComputeServiceContext.class).getComputeService();
    }
 
-   private ContextBuilder builder() {
+   protected ContextBuilder builder() {
       Properties overrides = new Properties();
-      overrides.put(GCE_IMAGE_PROJECTS, "debian-cloud");
+      overrides.put(PROJECT_NAME, "party");
+      overrides.put(IMAGE_PROJECTS, "debian-cloud");
       overrides.put(CREDENTIAL_TYPE, BEARER_TOKEN_CREDENTIALS.toString());
       overrides.put(SIGNATURE_OR_MAC_ALGORITHM, NO_ALGORITHM); // TODO: this 
should be implied by the above.
       return ContextBuilder.newBuilder(new 
GoogleComputeEngineProviderMetadata())
             .credentials(identity, credential)
-            .endpoint(url("/"))
+            .endpoint(url(""))
             .overrides(overrides)
             .modules(modules);
    }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/37e0397d/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineExpectTest.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineExpectTest.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineExpectTest.java
index 2cc62f8..bf9bead 100644
--- 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineExpectTest.java
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineExpectTest.java
@@ -19,20 +19,20 @@ package org.jclouds.googlecomputeengine.internal;
 import static com.google.common.base.Charsets.UTF_8;
 import static com.google.common.base.Throwables.propagate;
 import static com.google.common.io.BaseEncoding.base64Url;
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+import static 
org.jclouds.googlecomputeengine.config.GoogleComputeEngineProperties.PROJECT_NAME;
+import static org.jclouds.oauth.v2.OAuthConstants.NO_ALGORITHM;
+import static 
org.jclouds.oauth.v2.config.OAuthProperties.SIGNATURE_OR_MAC_ALGORITHM;
 import static org.jclouds.util.Strings2.toStringAndClose;
 
 import java.io.IOException;
 import java.net.URI;
 import java.util.Properties;
 
-import javax.ws.rs.core.MediaType;
-
 import org.jclouds.googlecomputeengine.GoogleComputeEngineProviderMetadata;
 import org.jclouds.http.HttpRequest;
 import org.jclouds.http.HttpResponse;
 import org.jclouds.io.Payload;
-import org.jclouds.oauth.v2.OAuthConstants;
-import org.jclouds.oauth.v2.config.OAuthProperties;
 import org.jclouds.providers.ProviderMetadata;
 import org.jclouds.rest.internal.BaseRestApiExpectTest;
 
@@ -45,7 +45,7 @@ public class BaseGoogleComputeEngineExpectTest<T> extends 
BaseRestApiExpectTest<
    private static final String header = "{\"alg\":\"none\",\"typ\":\"JWT\"}";
 
    private static final String CLAIMS_TEMPLATE = "{" +
-           "\"iss\":\"party\"," +
+           "\"iss\":\"%s\"," +
            "\"scope\":\"%s\"," +
            "\"aud\":\"https://accounts.google.com/o/oauth2/token\","; +
            "\"exp\":3600," +
@@ -62,7 +62,7 @@ public class BaseGoogleComputeEngineExpectTest<T> extends 
BaseRestApiExpectTest<
 
    protected BaseGoogleComputeEngineExpectTest() {
       provider = "google-compute-engine";
-      identity = "party";
+      identity = 
"761326798069-r5mljlln1rd4lrbhg75efgigp36m7...@developer.gserviceaccount.com";
    }
 
    @Override protected ProviderMetadata createProviderMetadata(){
@@ -76,8 +76,9 @@ public class BaseGoogleComputeEngineExpectTest<T> extends 
BaseRestApiExpectTest<
    @Override
    protected Properties setupProperties() {
       Properties props = super.setupProperties();
+      props.put(PROJECT_NAME, "party");
       // use no sig algorithm for expect tests (means no credential is 
required either)
-      props.put(OAuthProperties.SIGNATURE_OR_MAC_ALGORITHM, 
OAuthConstants.NO_ALGORITHM);
+      props.put(SIGNATURE_OR_MAC_ALGORITHM, NO_ALGORITHM);
       return props;
    }
 
@@ -85,7 +86,7 @@ public class BaseGoogleComputeEngineExpectTest<T> extends 
BaseRestApiExpectTest<
    protected HttpRequestComparisonType compareHttpRequestAsType(HttpRequest 
input) {
       HttpRequestComparisonType reqType = HttpRequestComparisonType.DEFAULT;
       if (input.getPayload() != null) {
-         if 
(input.getPayload().getContentMetadata().getContentType().equals(MediaType.APPLICATION_JSON))
 {
+         if 
(input.getPayload().getContentMetadata().getContentType().equals(APPLICATION_JSON))
 {
             reqType = HttpRequestComparisonType.JSON;
          }
       }
@@ -93,7 +94,7 @@ public class BaseGoogleComputeEngineExpectTest<T> extends 
BaseRestApiExpectTest<
    }
 
    protected HttpRequest requestForScopes(String... scopes) {
-      String claims = String.format(CLAIMS_TEMPLATE, 
Joiner.on(",").join(scopes));
+      String claims = String.format(CLAIMS_TEMPLATE, identity, 
Joiner.on(",").join(scopes));
 
       String payload = 
"grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer&" +
               // Base64 Encoded Header
@@ -104,7 +105,7 @@ public class BaseGoogleComputeEngineExpectTest<T> extends 
BaseRestApiExpectTest<
       return HttpRequest.builder()
               .method("POST")
               
.endpoint(URI.create("https://accounts.google.com/o/oauth2/token";))
-              .addHeader("Accept", MediaType.APPLICATION_JSON)
+              .addHeader("Accept", APPLICATION_JSON)
               .payload(payloadFromStringWithContentType(payload, 
"application/x-www-form-urlencoded"))
               .build();
    }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/37e0397d/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/TestProperties.java
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/TestProperties.java
 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/TestProperties.java
new file mode 100644
index 0000000..a9a3efd
--- /dev/null
+++ 
b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/TestProperties.java
@@ -0,0 +1,58 @@
+/*
+ * 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.internal;
+
+import static 
org.jclouds.googlecomputeengine.config.GoogleComputeEngineProperties.CREDENTIAL_TYPE;
+import static 
org.jclouds.googlecomputeengine.config.GoogleComputeEngineProperties.PROJECT_NAME;
+import static org.jclouds.oauth.v2.OAuthConstants.NO_ALGORITHM;
+import static org.jclouds.oauth.v2.OAuthTestUtils.setCredential;
+import static 
org.jclouds.oauth.v2.config.CredentialType.BEARER_TOKEN_CREDENTIALS;
+import static 
org.jclouds.oauth.v2.config.OAuthProperties.SIGNATURE_OR_MAC_ALGORITHM;
+
+import java.util.Properties;
+
+import org.jclouds.oauth.v2.config.CredentialType;
+
+/** Changes to this mandate changes to pom.xml and README.md */
+public final class TestProperties {
+
+   public static Properties apply(Properties props) {
+      setIfTestSystemPropertyPresent(props, PROJECT_NAME);
+      setIfTestSystemPropertyPresent(props, CREDENTIAL_TYPE);
+      if (props.containsKey(CREDENTIAL_TYPE)) {
+         if (CredentialType.fromValue(props.getProperty(CREDENTIAL_TYPE)) == 
BEARER_TOKEN_CREDENTIALS) {
+            props.put(SIGNATURE_OR_MAC_ALGORITHM, NO_ALGORITHM); // TODO: this 
should be implied by the above.
+         } else {
+            setCredential(props, "google-compute-engine.credential");
+         }
+      }
+      return props;
+   }
+
+   // TODO: make BaseApiLiveTest.setIfTestSystemPropertyPresent static
+   private static String setIfTestSystemPropertyPresent(Properties overrides, 
String key) {
+      if (System.getProperties().containsKey("test." + key)) {
+         String val = System.getProperty("test." + key);
+         overrides.setProperty(key, val);
+         return val;
+      }
+      return null;
+   }
+
+   private TestProperties() {
+   }
+}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/37e0397d/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 1bad34e..a3dffdc 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
@@ -42,7 +42,7 @@ public class ParseProjectTest extends 
BaseGoogleComputeEngineParseTest<Project>
    public Project expected() {
       return Project.create( //
             "13024414184846275913", // id
-            URI.create(BASE_URL + "/party"), // selfLink
+            URI.create(BASE_URL + "/761326798069"), // selfLink
             "party", // name
             "", // description
             Metadata.create("efgh").put("propA", "valueA").put("propB", 
"valueB"), // commonInstanceMetadata

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/37e0397d/google-compute-engine/src/test/resources/instance_insert_simple.json
----------------------------------------------------------------------
diff --git 
a/google-compute-engine/src/test/resources/instance_insert_simple.json 
b/google-compute-engine/src/test/resources/instance_insert_simple.json
index 99e37f4..9a8266a 100644
--- a/google-compute-engine/src/test/resources/instance_insert_simple.json
+++ b/google-compute-engine/src/test/resources/instance_insert_simple.json
@@ -1 +1 @@
-{"machineType":"https://www.googleapis.com/compute/v1/projects/party/zones/us-central1-a/machineTypes/n1-standard-1","name":"test-1","networkInterfaces":[{"network":"https://www.googleapis.com/compute/v1/projects/party/global/networks/default","accessConfigs":["ONE_TO_ONE_NAT"]}],"disks":[{"type":"PERSISTENT","source":"https://www.googleapis.com/compute/v1/projects/party/zones/us-central1-a/disks/test","boot":true,"autoDelete":false}],"tags":{"items":[]},"metadata":{"items":[]}}
+{"name":"test-1","machineType":"https://www.googleapis.com/compute/v1/projects/party/zones/us-central1-a/machineTypes/n1-standard-1","networkInterfaces":[{"network":"https://www.googleapis.com/compute/v1/projects/party/global/networks/default","accessConfigs":["ONE_TO_ONE_NAT"]}],"disks":[{"type":"PERSISTENT","initializeParams":{"sourceImage":"https://www.googleapis.com/compute/v1/projects/party/global/images/centos-6-2-v20120326"},"boot":true,"autoDelete":true}],"tags":{"items":[]},"metadata":{"items":[]}}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/37e0397d/google-compute-engine/src/test/resources/list_empty.json
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/resources/list_empty.json 
b/google-compute-engine/src/test/resources/list_empty.json
new file mode 100644
index 0000000..2666058
--- /dev/null
+++ b/google-compute-engine/src/test/resources/list_empty.json
@@ -0,0 +1,5 @@
+{
+ "kind": "compute#forwardingRuleList",
+ "id": "projects/jclouds-dev/regions/asia-east1/forwardingRules",
+ "selfLink": 
"https://www.googleapis.com/compute/v1/projects/jclouds-dev/regions/asia-east1/forwardingRules";
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/37e0397d/google-compute-engine/src/test/resources/project.json
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/resources/project.json 
b/google-compute-engine/src/test/resources/project.json
index a49bf7d..2cb56f0 100644
--- a/google-compute-engine/src/test/resources/project.json
+++ b/google-compute-engine/src/test/resources/project.json
@@ -2,7 +2,7 @@
    "kind": "compute#project",
    "id": "13024414184846275913",
    "creationTimestamp": "2012-10-24T20:13:16.252",
-   "selfLink": "https://www.googleapis.com/compute/v1/projects/party";,
+   "selfLink": "https://www.googleapis.com/compute/v1/projects/761326798069";,
    "name": "party",
    "description": "",
    "commonInstanceMetadata": {

Reply via email to