Repository: jclouds-labs-google Updated Branches: refs/heads/master a9ea2adfd -> 7427ba238
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiExpectTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiExpectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiExpectTest.java index 0e1a2f8..1a4f127 100644 --- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiExpectTest.java +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiExpectTest.java @@ -19,8 +19,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.testng.Assert.assertEquals; +import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertTrue; import org.jclouds.googlecomputeengine.domain.ListPage; import org.jclouds.googlecomputeengine.domain.Operation; @@ -120,8 +120,7 @@ public class RegionOperationApiExpectTest extends BaseGoogleComputeEngineApiExpe RegionOperationApi regionOperationApi = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), TOKEN_RESPONSE, get, operationResponse).getRegionOperationApi("myproject"); - assertEquals(regionOperationApi.listFirstPageInRegion("us-central1").toString(), - expectedList().toString()); + assertEquals(regionOperationApi.listInRegion("us-central1").next().toString(), expectedList().toString()); } public void testListOperationWithPaginationOptionsResponseIs2xx() { @@ -162,6 +161,6 @@ public class RegionOperationApiExpectTest extends BaseGoogleComputeEngineApiExpe RegionOperationApi regionOperationApi = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), TOKEN_RESPONSE, get, operationResponse).getRegionOperationApi("myproject"); - assertTrue(regionOperationApi.listInRegion("us-central1").concat().isEmpty()); + assertFalse(regionOperationApi.listInRegion("us-central1").hasNext()); } } http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiLiveTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiLiveTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiLiveTest.java index 4031254..66c1041 100644 --- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiLiveTest.java +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/RegionOperationApiLiveTest.java @@ -19,71 +19,48 @@ package org.jclouds.googlecomputeengine.features; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; -import java.util.concurrent.atomic.AtomicInteger; +import java.util.Iterator; -import org.jclouds.collect.IterableWithMarker; -import org.jclouds.collect.PagedIterable; +import org.jclouds.googlecomputeengine.domain.ListPage; import org.jclouds.googlecomputeengine.domain.Operation; import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTest; import org.jclouds.googlecomputeengine.options.ListOptions; +import org.testng.SkipException; import org.testng.annotations.Test; -import com.google.common.base.Predicate; -import com.google.common.collect.Iterables; - +@Test(groups = "live", testName = "RegionOperationApiLiveTest") public class RegionOperationApiLiveTest extends BaseGoogleComputeEngineApiLiveTest { - private static final String ADDRESS_NAME = "region-operations-api-live-test-address"; - private Operation addOperation; - private Operation deleteOperation; + private Operation operation; private RegionOperationApi api() { return api.getRegionOperationApi(userProject.get()); } - private AddressApi addressApi() { - return api.getAddressApi(userProject.get()); - } - - @Test(groups = "live") - public void testCreateOperations() { - //insert some operations by adding and deleting metadata items - // this will make sure there is stuff to listFirstPage - addOperation = assertRegionOperationDoneSucessfully(addressApi().createInRegion(DEFAULT_REGION_NAME, - ADDRESS_NAME), 20); - deleteOperation = assertRegionOperationDoneSucessfully(addressApi().deleteInRegion(DEFAULT_REGION_NAME, - ADDRESS_NAME), 20); - - assertNotNull(addOperation); - assertNotNull(deleteOperation); - } - - @Test(groups = "live", dependsOnMethods = "testCreateOperations") - public void testGetOperation() { - Operation operation = api().getInRegion(DEFAULT_REGION_NAME, addOperation.name()); - assertNotNull(operation); - assertOperationEquals(operation, this.addOperation); - } - - @Test(groups = "live", dependsOnMethods = "testCreateOperations") public void testListOperationsWithFiltersAndPagination() { - PagedIterable<Operation> operations = api().listInRegion(DEFAULT_REGION_NAME, new ListOptions.Builder() -// .filter("operationType eq insert") - .maxResults(1)); + Iterator<ListPage<Operation>> operations = api().listInRegion(DEFAULT_REGION_NAME, new ListOptions.Builder() + // .filter("operationType eq insert") + .maxResults(1)); // make sure that in spite of having only one result per page we get at least two results - final AtomicInteger counter = new AtomicInteger(); - operations.firstMatch(new Predicate<IterableWithMarker<Operation>>() { - @Override public boolean apply(IterableWithMarker<Operation> input) { - counter.addAndGet(Iterables.size(input)); - return counter.get() == 2; + int count = 0; + for (; count < 2 && operations.hasNext(); ) { + ListPage<Operation> result = operations.next(); + if (result.isEmpty()) { + operation = result.get(0); + count++; } - }); + } + if (count < 2) { + throw new SkipException("Not enough operations in " + DEFAULT_REGION_NAME); + } + assertEquals(count, 2); } - private void assertOperationEquals(Operation result, Operation expected) { - assertEquals(result.name(), expected.name()); + @Test(groups = "live", dependsOnMethods = "testListOperationsWithFiltersAndPagination") + public void testGetOperation() { + Operation result = api().getInRegion(DEFAULT_REGION_NAME, operation.name()); + assertNotNull(result); + assertEquals(result.name(), operation.name()); // Checking state besides name can lead to flaky test. } - - } http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/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 c1a34f0..b835bb8 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 @@ -19,7 +19,7 @@ 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.testng.Assert.assertEquals; -import static org.testng.Assert.assertTrue; +import static org.testng.Assert.assertFalse; import static org.testng.AssertJUnit.assertNull; import java.net.URI; @@ -148,8 +148,7 @@ public class RouteApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { RouteApi api = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), TOKEN_RESPONSE, list, operationResponse).getRouteApi("myproject"); - assertEquals(api.listFirstPage().toString(), - new ParseRouteListTest().expected().toString()); + assertEquals(api.list().next().toString(), new ParseRouteListTest().expected().toString()); } public void testListRoutesResponseIs4xx() { @@ -165,6 +164,6 @@ public class RouteApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { RouteApi api = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), TOKEN_RESPONSE, list, operationResponse).getRouteApi("myproject"); - assertTrue(api.list().concat().isEmpty()); + assertFalse(api.list().hasNext()); } } http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/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 1e45789..2cbaf64 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 @@ -19,18 +19,16 @@ package org.jclouds.googlecomputeengine.features; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; +import java.util.Iterator; import java.util.List; -import org.jclouds.collect.PagedIterable; +import org.jclouds.googlecomputeengine.domain.ListPage; import org.jclouds.googlecomputeengine.domain.Route; import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTest; import org.jclouds.googlecomputeengine.options.ListOptions; import org.jclouds.googlecomputeengine.options.RouteOptions; import org.testng.annotations.Test; -import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; - @Test(groups = "live", testName = "RouteApiLiveTest") public class RouteApiLiveTest extends BaseGoogleComputeEngineApiLiveTest { @@ -70,15 +68,14 @@ public class RouteApiLiveTest extends BaseGoogleComputeEngineApiLiveTest { @Test(groups = "live", dependsOnMethods = "testGetRoute") public void testListRoute() { - PagedIterable<Route> routes = api().list(new ListOptions() + Iterator<ListPage<Route>> routes = api().list(new ListOptions() .filter("name eq " + ROUTE_NAME)); - List<Route> routesAsList = Lists.newArrayList(routes.concat()); + List<Route> routesAsList = routes.next(); assertEquals(routesAsList.size(), 1); - assertRouteEquals(Iterables.getOnlyElement(routesAsList)); - + assertRouteEquals(routesAsList.get(0)); } @Test(groups = "live", dependsOnMethods = "testListRoute") http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/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 4a44ba2..efd77b7 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 @@ -18,8 +18,8 @@ package org.jclouds.googlecomputeengine.features; import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE; import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertTrue; import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiExpectTest; import org.jclouds.googlecomputeengine.parse.ParseSnapshotListTest; @@ -78,8 +78,7 @@ public class SnapshotApiExpectTest extends BaseGoogleComputeEngineApiExpectTest SnapshotApi api = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), TOKEN_RESPONSE, LIST_SNAPSHOTS_REQ, LIST_SNAPSHOTS_RESPONSE).getSnapshotApi("myproject"); - assertEquals(api.listFirstPage().toString(), - new ParseSnapshotListTest().expected().toString()); + assertEquals(api.list().next().toString(), new ParseSnapshotListTest().expected().toString()); } public void testListSnapshotWithPaginationOptionsResponseIs4xx() { @@ -89,6 +88,6 @@ public class SnapshotApiExpectTest extends BaseGoogleComputeEngineApiExpectTest SnapshotApi api = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), TOKEN_RESPONSE, LIST_SNAPSHOTS_REQ, operationResponse).getSnapshotApi("myproject"); - assertTrue(api.list().concat().isEmpty()); + assertFalse(api.list().hasNext()); } } http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/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 c8e3d9b..f38a7ea 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 @@ -19,18 +19,16 @@ package org.jclouds.googlecomputeengine.features; import static org.jclouds.googlecomputeengine.features.DiskApiLiveTest.TIME_WAIT; import static org.testng.Assert.assertEquals; +import java.util.Iterator; import java.util.List; -import org.jclouds.collect.PagedIterable; import org.jclouds.googlecomputeengine.domain.Disk; +import org.jclouds.googlecomputeengine.domain.ListPage; import org.jclouds.googlecomputeengine.domain.Snapshot; import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTest; import org.jclouds.googlecomputeengine.options.ListOptions; import org.testng.annotations.Test; -import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; - public class SnapshotApiLiveTest extends BaseGoogleComputeEngineApiLiveTest { private static final String DISK_NAME = "snapshot-api-live-test-disk"; @@ -47,11 +45,11 @@ public class SnapshotApiLiveTest extends BaseGoogleComputeEngineApiLiveTest { @Test(groups = "live") public void testCreateSnapshot() { - assertZoneOperationDoneSucessfully(diskApi().createInZone(DISK_NAME, 1, DEFAULT_ZONE_NAME), TIME_WAIT); + assertZoneOperationDoneSuccessfully(diskApi().createInZone(DISK_NAME, 1, DEFAULT_ZONE_NAME), TIME_WAIT); disk = diskApi().getInZone(DEFAULT_ZONE_NAME, DISK_NAME); - assertZoneOperationDoneSucessfully(diskApi().createSnapshotInZone(DEFAULT_ZONE_NAME, DISK_NAME, SNAPSHOT_NAME), - TIME_WAIT); + assertZoneOperationDoneSuccessfully(diskApi().createSnapshotInZone(DEFAULT_ZONE_NAME, DISK_NAME, SNAPSHOT_NAME), + TIME_WAIT); } @Test(groups = "live", dependsOnMethods = "testCreateSnapshot") @@ -65,20 +63,20 @@ public class SnapshotApiLiveTest extends BaseGoogleComputeEngineApiLiveTest { @Test(groups = "live", dependsOnMethods = "testGetSnapshot") public void testListSnapshot() { - PagedIterable<Snapshot> snapshots = api().list(new ListOptions.Builder() + Iterator<ListPage<Snapshot>> snapshots = api().list(new ListOptions.Builder() .filter("name eq " + SNAPSHOT_NAME)); - List<Snapshot> snapshotsAsList = Lists.newArrayList(snapshots.concat()); + List<Snapshot> snapshotsAsList = snapshots.next(); assertEquals(snapshotsAsList.size(), 1); - assertSnapshotEquals(Iterables.getOnlyElement(snapshotsAsList)); + assertSnapshotEquals(snapshotsAsList.get(0)); } @Test(groups = "live", dependsOnMethods = "testListSnapshot") public void testDeleteDisk() { - assertZoneOperationDoneSucessfully(diskApi().deleteInZone(DEFAULT_ZONE_NAME, DISK_NAME), TIME_WAIT); + assertZoneOperationDoneSuccessfully(diskApi().deleteInZone(DEFAULT_ZONE_NAME, DISK_NAME), TIME_WAIT); assertGlobalOperationDoneSucessfully(api().delete(SNAPSHOT_NAME), TIME_WAIT); } http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/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 aa8aad7..631ca4a 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 @@ -19,7 +19,7 @@ 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.testng.Assert.assertEquals; -import static org.testng.Assert.assertTrue; +import static org.testng.Assert.assertFalse; import static org.testng.AssertJUnit.assertNull; import java.net.URI; @@ -171,7 +171,7 @@ public class TargetPoolApiExpectTest extends BaseGoogleComputeEngineApiExpectTes TargetPoolApi api = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), TOKEN_RESPONSE, list, operationResponse).getTargetPoolApi("myproject", "us-central1"); - assertTrue(api.list().concat().isEmpty()); + assertFalse(api.list().hasNext()); } public void testAddInstanceResponseIs2xx() throws Exception { http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/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 124d062..172a153 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 @@ -40,6 +40,7 @@ import org.testng.annotations.AfterClass; import org.testng.annotations.Test; import com.google.common.base.Predicate; +import com.google.common.collect.FluentIterable; import com.google.common.collect.Iterables; public class TargetPoolApiLiveTest extends BaseGoogleComputeEngineApiLiveTest { @@ -72,10 +73,10 @@ public class TargetPoolApiLiveTest extends BaseGoogleComputeEngineApiLiveTest { InstanceApi instanceApi = api.getInstanceApi(userProject.get()); HttpHealthCheckApi httpHealthCheckApi = api.getHttpHealthCheckApi(userProject.get()); + ListPage<Image> list = api.getImageApi("centos-cloud").list(new ListOptions.Builder().filter("name eq centos.*")) + .next(); // Get an imageUri - URI imageUri = api.getImageApi("centos-cloud") - .list(new ListOptions.Builder().filter("name eq centos.*")) - .concat() + URI imageUri = FluentIterable.from(list) .filter(new Predicate<Image>() { @Override public boolean apply(Image input) { @@ -103,15 +104,13 @@ public class TargetPoolApiLiveTest extends BaseGoogleComputeEngineApiLiveTest { // Create a disk. DiskCreationOptions diskCreationOptions = new DiskCreationOptions().sourceImage(instanceTemplate.image()); - assertZoneOperationDoneSucessfully(api.getDiskApi(userProject.get()) - .createInZone(BOOT_DISK_NAME, DEFAULT_DISK_SIZE_GB, DEFAULT_ZONE_NAME, diskCreationOptions), - TIME_WAIT_LONG); + assertZoneOperationDoneSuccessfully(api.getDiskApi(userProject.get()) + .createInZone(BOOT_DISK_NAME, DEFAULT_DISK_SIZE_GB, DEFAULT_ZONE_NAME, diskCreationOptions), + TIME_WAIT_LONG); // Create an instance. - assertZoneOperationDoneSucessfully(instanceApi.createInZone(INSTANCE_NAME, - DEFAULT_ZONE_NAME, - instanceTemplate), - TIME_WAIT_LONG); + assertZoneOperationDoneSuccessfully(instanceApi.createInZone(INSTANCE_NAME, DEFAULT_ZONE_NAME, instanceTemplate), + TIME_WAIT_LONG); Instance instance = instanceApi.getInZone(DEFAULT_ZONE_NAME, INSTANCE_NAME); instances = new ArrayList<URI>(); instances.add(instance.selfLink()); http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/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 4091678..1fa2db9 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 @@ -18,8 +18,8 @@ package org.jclouds.googlecomputeengine.features; import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE; import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertTrue; import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiExpectTest; import org.jclouds.googlecomputeengine.parse.ParseZoneListTest; @@ -81,8 +81,7 @@ public class ZoneApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { ZoneApi api = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), TOKEN_RESPONSE, LIST_ZONES_REQ, LIST_ZONES_RESPONSE).getZoneApi("myproject"); - assertEquals(api.listFirstPage().toString(), - new ParseZoneListTest().expected().toString()); + assertEquals(api.list().next().toString(), new ParseZoneListTest().expected().toString()); } public void testListZoneWithPaginationOptionsResponseIs4xx() { @@ -92,6 +91,6 @@ public class ZoneApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { ZoneApi api = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), TOKEN_RESPONSE, LIST_ZONES_REQ, operationResponse).getZoneApi("myproject"); - assertTrue(api.list().concat().isEmpty()); + assertFalse(api.list().hasNext()); } } http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/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 fb7d0ee..f4c885e 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 @@ -18,21 +18,17 @@ package org.jclouds.googlecomputeengine.features; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertSame; import static org.testng.Assert.assertTrue; import java.util.Iterator; import java.util.List; -import org.jclouds.collect.IterableWithMarker; -import org.jclouds.collect.PagedIterable; +import org.jclouds.googlecomputeengine.domain.ListPage; import org.jclouds.googlecomputeengine.domain.Zone; import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTest; import org.jclouds.googlecomputeengine.options.ListOptions; import org.testng.annotations.Test; -import com.google.common.collect.Iterables; - public class ZoneApiLiveTest extends BaseGoogleComputeEngineApiLiveTest { private Zone zone; @@ -44,18 +40,14 @@ public class ZoneApiLiveTest extends BaseGoogleComputeEngineApiLiveTest { @Test(groups = "live") public void testListZone() { - PagedIterable<Zone> zones = api().list(new ListOptions.Builder() - .maxResults(1)); - - Iterator<IterableWithMarker<Zone>> pageIterator = zones.iterator(); + Iterator<ListPage<Zone>> pageIterator = api().list(new ListOptions.Builder().maxResults(1)); assertTrue(pageIterator.hasNext()); - IterableWithMarker<Zone> singlePageIterator = pageIterator.next(); - List<Zone> zoneAsList = singlePageIterator.toList(); + List<Zone> zoneAsList = pageIterator.next(); - assertSame(zoneAsList.size(), 1); + assertEquals(zoneAsList.size(), 1); - this.zone = Iterables.getOnlyElement(zoneAsList); + this.zone = zoneAsList.get(0); } http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiExpectTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiExpectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiExpectTest.java index 4be46c3..4d542ce 100644 --- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiExpectTest.java +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiExpectTest.java @@ -19,8 +19,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.testng.Assert.assertEquals; +import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertTrue; import org.jclouds.googlecomputeengine.domain.ListPage; import org.jclouds.googlecomputeengine.domain.Operation; @@ -118,7 +118,7 @@ public class ZoneOperationApiExpectTest extends BaseGoogleComputeEngineApiExpect ZoneOperationApi zoneOperationApi = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), TOKEN_RESPONSE, get, operationResponse).getZoneOperationApi("myproject"); - assertEquals(zoneOperationApi.listFirstPageInZone("us-central1-a").toString(), + assertEquals(zoneOperationApi.listInZone("us-central1-a").next().toString(), expectedList().toString()); } @@ -158,9 +158,8 @@ public class ZoneOperationApiExpectTest extends BaseGoogleComputeEngineApiExpect HttpResponse operationResponse = HttpResponse.builder().statusCode(404).build(); - ZoneOperationApi zoneOperationApi = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), - TOKEN_RESPONSE, get, operationResponse).getZoneOperationApi("myproject"); + ZoneOperationApi zoneOperationApi = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), TOKEN_RESPONSE, get, operationResponse).getZoneOperationApi("myproject"); - assertTrue(zoneOperationApi.listInZone("us-central1-a").concat().isEmpty()); + assertFalse(zoneOperationApi.listInZone("us-central1-a").hasNext()); } } http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiLiveTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiLiveTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiLiveTest.java index 542bbf3..aafea3d 100644 --- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiLiveTest.java +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiLiveTest.java @@ -16,73 +16,51 @@ */ package org.jclouds.googlecomputeengine.features; -import static org.jclouds.googlecomputeengine.features.DiskApiLiveTest.TIME_WAIT; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; -import java.util.concurrent.atomic.AtomicInteger; +import java.util.Iterator; -import org.jclouds.collect.IterableWithMarker; -import org.jclouds.collect.PagedIterable; +import org.jclouds.googlecomputeengine.domain.ListPage; import org.jclouds.googlecomputeengine.domain.Operation; import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTest; import org.jclouds.googlecomputeengine.options.ListOptions; +import org.testng.SkipException; import org.testng.annotations.Test; -import com.google.common.base.Predicate; -import com.google.common.collect.Iterables; - +@Test(groups = "live", testName = "ZoneOperationApiLiveTest") public class ZoneOperationApiLiveTest extends BaseGoogleComputeEngineApiLiveTest { - private static final String DISK_NAME = "zone-operations-api-live-test-disk"; - private Operation addOperation; - private Operation deleteOperation; + private Operation operation; private ZoneOperationApi api() { return api.getZoneOperationApi(userProject.get()); } - private DiskApi diskApi() { - return api.getDiskApi(userProject.get()); - } - - @Test(groups = "live") - public void testCreateOperations() { - //insert some operations by creating and deleting a disk - // this will make sure there is stuff to listFirstPage - addOperation = assertZoneOperationDoneSucessfully(diskApi().createInZone(DISK_NAME, 1, DEFAULT_ZONE_NAME), TIME_WAIT); - deleteOperation = assertZoneOperationDoneSucessfully(diskApi().deleteInZone(DEFAULT_ZONE_NAME, DISK_NAME), TIME_WAIT); - - assertNotNull(addOperation); - assertNotNull(deleteOperation); - } - - @Test(groups = "live", dependsOnMethods = "testCreateOperations") - public void testGetOperation() { - Operation operation = api().getInZone(DEFAULT_ZONE_NAME, addOperation.name()); - assertNotNull(operation); - assertOperationEquals(operation, this.addOperation); - } - - @Test(groups = "live", dependsOnMethods = "testCreateOperations") public void testListOperationsWithFiltersAndPagination() { - PagedIterable<Operation> operations = api().listInZone(DEFAULT_ZONE_NAME, new ListOptions.Builder() + Iterator<ListPage<Operation>> operations = api().listInZone(DEFAULT_ZONE_NAME, new ListOptions.Builder() // .filter("operationType eq insert") .maxResults(1)); // make sure that in spite of having only one result per page we get at least two results - final AtomicInteger counter = new AtomicInteger(); - operations.firstMatch(new Predicate<IterableWithMarker<Operation>>() { - @Override public boolean apply(IterableWithMarker<Operation> input) { - counter.addAndGet(Iterables.size(input)); - return counter.get() == 2; + int count = 0; + for (; count < 2 && operations.hasNext(); ) { + ListPage<Operation> result = operations.next(); + if (result.isEmpty()) { + operation = result.get(0); + count++; } - }); + } + if (count < 2) { + throw new SkipException("Not enough operations in " + DEFAULT_ZONE_NAME); + } + assertEquals(count, 2); } - private void assertOperationEquals(Operation result, Operation expected) { - assertEquals(result.name(), expected.name()); + @Test(groups = "live", dependsOnMethods = "testListOperationsWithFiltersAndPagination") + public void testGetOperation() { + Operation result = api().getInZone(DEFAULT_ZONE_NAME, operation.name()); + assertNotNull(result); + assertEquals(result.name(), operation.name()); // Checking state besides name can lead to flaky test. } - - } http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/7427ba23/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 c5780b1..1a19bcf 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 @@ -30,6 +30,7 @@ import org.jclouds.apis.BaseApiLiveTest; import org.jclouds.googlecomputeengine.GoogleComputeEngineApi; import org.jclouds.googlecomputeengine.config.UserProject; import org.jclouds.googlecomputeengine.domain.Operation; +import org.jclouds.javax.annotation.Nullable; import com.google.common.base.Predicate; import com.google.common.base.Supplier; @@ -48,7 +49,6 @@ public class BaseGoogleComputeEngineApiLiveTest extends BaseApiLiveTest<GoogleCo protected static final String DEFAULT_ZONE_NAME = "us-central1-a"; protected static final String DEFAULT_REGION_NAME = "us-central1"; protected static final String NETWORK_API_URL_SUFFIX = "/global/networks/"; - protected static final String DEFAULT_NETWORK_NAME = "live-test-network"; protected static final String MACHINE_TYPE_API_URL_SUFFIX = "/machineTypes/"; protected static final String DEFAULT_MACHINE_TYPE_NAME = "n1-standard-1"; protected static final String GATEWAY_API_URL_SUFFIX = "/global/gateways/"; @@ -85,37 +85,30 @@ public class BaseGoogleComputeEngineApiLiveTest extends BaseApiLiveTest<GoogleCo return injector.getInstance(GoogleComputeEngineApi.class); } - protected Operation assertGlobalOperationDoneSucessfully(Operation operation, long maxWaitSeconds) { - operation = waitGlobalOperationDone(operation, maxWaitSeconds); + protected void assertGlobalOperationDoneSucessfully(Operation operation, long maxWaitSeconds) { + operation = waitOperationDone(globalOperationDonePredicate, operation, maxWaitSeconds); assertEquals(operation.status(), Operation.Status.DONE); assertTrue(operation.errors().isEmpty()); - return operation; } - protected Operation waitGlobalOperationDone(Operation operation, long maxWaitSeconds) { - return waitOperationDone(globalOperationDonePredicate, operation, maxWaitSeconds); + protected void waitGlobalOperationDone(Operation operation, long maxWaitSeconds) { + waitOperationDone(globalOperationDonePredicate, operation, maxWaitSeconds); } - protected Operation assertRegionOperationDoneSucessfully(Operation operation, long maxWaitSeconds) { - operation = waitRegionOperationDone(operation, maxWaitSeconds); + protected void assertRegionOperationDoneSucessfully(Operation operation, long maxWaitSeconds) { + operation = waitOperationDone(regionOperationDonePredicate, operation, maxWaitSeconds); assertEquals(operation.status(), Operation.Status.DONE); assertTrue(operation.errors().isEmpty()); - return operation; } - protected Operation waitRegionOperationDone(Operation operation, long maxWaitSeconds) { - return waitOperationDone(regionOperationDonePredicate, operation, maxWaitSeconds); - } - - protected Operation assertZoneOperationDoneSucessfully(Operation operation, long maxWaitSeconds) { - operation = waitZoneOperationDone(operation, maxWaitSeconds); + protected void assertZoneOperationDoneSuccessfully(@Nullable Operation operation, long maxWaitSeconds) { + operation = waitOperationDone(zoneOperationDonePredicate, operation, maxWaitSeconds); assertEquals(operation.status(), Operation.Status.DONE); assertTrue(operation.errors().isEmpty()); - return operation; } - protected Operation waitZoneOperationDone(Operation operation, long maxWaitSeconds) { - return waitOperationDone(zoneOperationDonePredicate, operation, maxWaitSeconds); + protected void waitZoneOperationDone(@Nullable Operation operation, long maxWaitSeconds) { + waitOperationDone(zoneOperationDonePredicate, operation, maxWaitSeconds); } protected URI getDiskTypeUrl(String project, String zone, String diskType){ @@ -130,10 +123,6 @@ public class BaseGoogleComputeEngineApiLiveTest extends BaseApiLiveTest<GoogleCo return URI.create(API_URL_PREFIX + project + ZONE_API_URL_SUFFIX + zone); } - protected URI getDefaultNetworkUrl(String project) { - return getNetworkUrl(project, DEFAULT_NETWORK_NAME); - } - protected URI getNetworkUrl(String project, String network) { return URI.create(API_URL_PREFIX + project + NETWORK_API_URL_SUFFIX + network); } @@ -156,12 +145,14 @@ public class BaseGoogleComputeEngineApiLiveTest extends BaseApiLiveTest<GoogleCo } protected URI getDiskUrl(String project, String diskName) { - return URI.create(API_URL_PREFIX + project + ZONE_API_URL_SUFFIX - + DEFAULT_ZONE_NAME + "/disks/" + diskName); + return URI.create(API_URL_PREFIX + project + ZONE_API_URL_SUFFIX + DEFAULT_ZONE_NAME + "/disks/" + diskName); } - protected static Operation waitOperationDone(Predicate<AtomicReference<Operation>> operationDonePredicate, - Operation operation, long maxWaitSeconds) { + private static Operation waitOperationDone(Predicate<AtomicReference<Operation>> operationDonePredicate, + @Nullable Operation operation, long maxWaitSeconds) { + if (operation == null) { // Null can mean a delete op didn't need to occur. + return null; + } AtomicReference<Operation> operationReference = Atomics.newReference(operation); retry(operationDonePredicate, maxWaitSeconds, 1, SECONDS).apply(operationReference); return operationReference.get();
