http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/features/SnapshotApiLiveTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/features/SnapshotApiLiveTest.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/features/SnapshotApiLiveTest.java deleted file mode 100644 index 3f833a9..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/features/SnapshotApiLiveTest.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.googlecomputeengine.features; - -import static org.jclouds.googlecomputeengine.features.DiskApiLiveTest.TIME_WAIT; -import static org.testng.Assert.assertEquals; - -import java.util.List; - -import org.jclouds.collect.PagedIterable; -import org.jclouds.googlecomputeengine.domain.Disk; -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"; - private static final String SNAPSHOT_NAME = "snapshot-api-live-test-snapshot"; - - private Disk disk; - private SnapshotApi api() { - return api.getSnapshotApiForProject(userProject.get()); - } - - private DiskApi diskApi() { - return api.getDiskApiForProject(userProject.get()); - } - - @Test(groups = "live") - public void testCreateSnapshot() { - assertZoneOperationDoneSucessfully(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); - } - - @Test(groups = "live", dependsOnMethods = "testCreateSnapshot") - public void testGetSnapshot() { - Snapshot snapshot = api().get(SNAPSHOT_NAME); - - assertEquals(snapshot.getName(), SNAPSHOT_NAME); - assertSnapshotEquals(snapshot); - } - - @Test(groups = "live", dependsOnMethods = "testGetSnapshot") - public void testListSnapshot() { - - PagedIterable<Snapshot> snapshots = api().list(new ListOptions.Builder() - .filter("name eq " + SNAPSHOT_NAME)); - - List<Snapshot> snapshotsAsList = Lists.newArrayList(snapshots.concat()); - - assertEquals(snapshotsAsList.size(), 1); - - assertSnapshotEquals(Iterables.getOnlyElement(snapshotsAsList)); - } - - @Test(groups = "live", dependsOnMethods = "testListSnapshot") - public void testDeleteDisk() { - - assertZoneOperationDoneSucessfully(diskApi().deleteInZone(DEFAULT_ZONE_NAME, DISK_NAME), TIME_WAIT); - assertGlobalOperationDoneSucessfully(api().delete(SNAPSHOT_NAME), TIME_WAIT); - } - - private void assertSnapshotEquals(Snapshot result) { - assertEquals(result.getName(), SNAPSHOT_NAME); - assertEquals(result.getSourceDisk().orNull(), disk.getSelfLink()); - assertEquals(result.getSizeGb(), disk.getSizeGb()); - } - - -}
http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiExpectTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiExpectTest.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiExpectTest.java deleted file mode 100644 index 0a26bd6..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiExpectTest.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.googlecomputeengine.features; - -import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertTrue; - -import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiExpectTest; -import org.jclouds.googlecomputeengine.parse.ParseZoneListTest; -import org.jclouds.googlecomputeengine.parse.ParseZoneTest; -import org.jclouds.http.HttpRequest; -import org.jclouds.http.HttpResponse; -import org.testng.annotations.Test; - -@Test(groups = "unit") -public class ZoneApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { - - public static final String ZONES_URL_PREFIX = "https://www.googleapis.com/compute/v1/projects/myproject/zones"; - - public static final HttpRequest GET_ZONE_REQ = HttpRequest - .builder() - .method("GET") - .endpoint(ZONES_URL_PREFIX + "/us-central1-a") - .addHeader("Accept", "application/json") - .addHeader("Authorization", "Bearer " + TOKEN).build(); - - public static final HttpRequest LIST_ZONES_REQ = HttpRequest - .builder() - .method("GET") - .endpoint(ZONES_URL_PREFIX) - .addHeader("Accept", "application/json") - .addHeader("Authorization", "Bearer " + TOKEN).build(); - - public static final HttpResponse LIST_ZONES_SHORT_RESPONSE = HttpResponse.builder().statusCode(200) - .payload(staticPayloadFromResource("/zone_list_short.json")).build(); - - public static final HttpResponse LIST_ZONES_RESPONSE = HttpResponse.builder().statusCode(200) - .payload(staticPayloadFromResource("/zone_list.json")).build(); - - public void testGetZoneResponseIs2xx() throws Exception { - - - HttpResponse operationResponse = HttpResponse.builder().statusCode(200) - .payload(payloadFromResource("/zone_get.json")).build(); - - ZoneApi api = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), - TOKEN_RESPONSE, GET_ZONE_REQ, operationResponse).getZoneApiForProject("myproject"); - - assertEquals(api.get("us-central1-a"), - new ParseZoneTest().expected()); - } - - public void testGetZoneResponseIs4xx() throws Exception { - - HttpResponse operationResponse = HttpResponse.builder().statusCode(404).build(); - - ZoneApi api = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), - TOKEN_RESPONSE, GET_ZONE_REQ, operationResponse).getZoneApiForProject("myproject"); - - assertNull(api.get("us-central1-a")); - } - - public void testListZoneNoOptionsResponseIs2xx() throws Exception { - - ZoneApi api = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), - TOKEN_RESPONSE, LIST_ZONES_REQ, LIST_ZONES_RESPONSE).getZoneApiForProject("myproject"); - - assertEquals(api.listFirstPage().toString(), - new ParseZoneListTest().expected().toString()); - } - - public void testListZoneWithPaginationOptionsResponseIs4xx() { - - HttpResponse operationResponse = HttpResponse.builder().statusCode(404).build(); - - ZoneApi api = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), - TOKEN_RESPONSE, LIST_ZONES_REQ, operationResponse).getZoneApiForProject("myproject"); - - assertTrue(api.list().concat().isEmpty()); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiLiveTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiLiveTest.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiLiveTest.java deleted file mode 100644 index 934e93a..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/features/ZoneApiLiveTest.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.googlecomputeengine.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.Zone; -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 ZoneApiLiveTest extends BaseGoogleComputeEngineApiLiveTest { - - private Zone zone; - - private ZoneApi api() { - return api.getZoneApiForProject(userProject.get()); - } - - @Test(groups = "live") - public void testListZone() { - - PagedIterable<Zone> zones = api().list(new ListOptions.Builder() - .maxResults(1)); - - Iterator<IterableWithMarker<Zone>> pageIterator = zones.iterator(); - assertTrue(pageIterator.hasNext()); - - IterableWithMarker<Zone> singlePageIterator = pageIterator.next(); - List<Zone> zoneAsList = Lists.newArrayList(singlePageIterator); - - assertSame(zoneAsList.size(), 1); - - this.zone = Iterables.getOnlyElement(zoneAsList); - } - - - @Test(groups = "live", dependsOnMethods = "testListZone") - public void testGetZone() { - Zone zone = api().get(this.zone.getName()); - assertNotNull(zone); - assertZoneEquals(zone, this.zone); - } - - private void assertZoneEquals(Zone result, Zone expected) { - assertEquals(result.getName(), expected.getName()); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiExpectTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiExpectTest.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiExpectTest.java deleted file mode 100644 index fc23e1b..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiExpectTest.java +++ /dev/null @@ -1,193 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.googlecomputeengine.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.assertNull; -import static org.testng.Assert.assertTrue; - -import java.net.URI; - -import org.jclouds.date.internal.SimpleDateFormatDateService; -import org.jclouds.googlecomputeengine.domain.ListPage; -import org.jclouds.googlecomputeengine.domain.Operation; -import org.jclouds.googlecomputeengine.domain.Resource; -import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiExpectTest; -import org.jclouds.googlecomputeengine.options.ListOptions; -import org.jclouds.http.HttpRequest; -import org.jclouds.http.HttpResponse; -import org.testng.annotations.Test; - -@Test(groups = "unit") -public class ZoneOperationApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { - - private static final String OPERATIONS_URL_PREFIX = "https://www.googleapis" + - ".com/compute/v1/projects/myproject/zones/us-central1-a/operations"; - - public static final HttpRequest GET_ZONE_OPERATION_REQUEST = HttpRequest - .builder() - .method("GET") - .endpoint(OPERATIONS_URL_PREFIX + "/operation-1354084865060-4cf88735faeb8-bbbb12cb") - .addHeader("Accept", "application/json") - .addHeader("Authorization", "Bearer " + TOKEN).build(); - - public static final HttpResponse GET_ZONE_OPERATION_RESPONSE = HttpResponse.builder().statusCode(200) - .payload(staticPayloadFromResource("/zone_operation.json")).build(); - - private Operation expected() { - SimpleDateFormatDateService dateService = new SimpleDateFormatDateService(); - return Operation.builder().id("13053095055850848306") - .selfLink(URI.create("https://www.googleapis" + - ".com/compute/v1/projects/myproject/zones/us-central1-a/operations/operation-1354084865060-4cf88735faeb8" + - "-bbbb12cb")) - .name("operation-1354084865060-4cf88735faeb8-bbbb12cb") - .targetLink(URI.create("https://www.googleapis" + - ".com/compute/v1/projects/myproject/zones/us-central1-a/instances/instance-api-live-test-instance")) - .targetId("13053094017547040099") - .status(Operation.Status.DONE) - .user("[email protected]") - .progress(100) - .insertTime(dateService.iso8601DateParse("2012-11-28T06:41:05.060")) - .startTime(dateService.iso8601DateParse("2012-11-28T06:41:05.142")) - .endTime(dateService.iso8601DateParse("2012-11-28T06:41:06.142")) - .operationType("insert") - .zone(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a")) - .build(); - } - - private ListPage<Operation> expectedList() { - return ListPage.<Operation>builder() - .kind(Resource.Kind.OPERATION_LIST) - .id("projects/myproject/zones/us-central1-a/operations") - .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/operations")) - .addItem(expected()) - .build(); - } - - public void testGetOperationResponseIs2xx() throws Exception { - - ZoneOperationApi zoneOperationApi = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), - TOKEN_RESPONSE, GET_ZONE_OPERATION_REQUEST, GET_ZONE_OPERATION_RESPONSE).getZoneOperationApiForProject("myproject"); - - assertEquals(zoneOperationApi.getInZone("us-central1-a", "operation-1354084865060-4cf88735faeb8-bbbb12cb"), - expected()); - } - - public void testGetOperationResponseIs4xx() throws Exception { - - HttpResponse operationResponse = HttpResponse.builder().statusCode(404).build(); - - ZoneOperationApi zoneOperationApi = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), - TOKEN_RESPONSE, GET_ZONE_OPERATION_REQUEST, operationResponse).getZoneOperationApiForProject("myproject"); - - assertNull(zoneOperationApi.getInZone("us-central1-a", "operation-1354084865060-4cf88735faeb8-bbbb12cb")); - } - - public void testDeleteOperationResponseIs2xx() throws Exception { - HttpRequest delete = HttpRequest - .builder() - .method("DELETE") - .endpoint(OPERATIONS_URL_PREFIX + "/operation-1352178598164-4cdcc9d031510-4aa46279") - .addHeader("Authorization", "Bearer " + TOKEN).build(); - - HttpResponse operationResponse = HttpResponse.builder().statusCode(204).build(); - - ZoneOperationApi zoneOperationApi = requestsSendResponses(requestForScopes(COMPUTE_SCOPE), - TOKEN_RESPONSE, delete, operationResponse).getZoneOperationApiForProject("myproject"); - - zoneOperationApi.deleteInZone("us-central1-a", "operation-1352178598164-4cdcc9d031510-4aa46279"); - } - - public void testDeleteOperationResponseIs4xx() throws Exception { - HttpRequest delete = HttpRequest - .builder() - .method("DELETE") - .endpoint(OPERATIONS_URL_PREFIX + "/operation-1352178598164-4cdcc9d031510-4aa46279") - .addHeader("Authorization", "Bearer " + TOKEN).build(); - - HttpResponse operationResponse = HttpResponse.builder().statusCode(404).build(); - - ZoneOperationApi zoneOperationApi = requestsSendResponses(requestForScopes(COMPUTE_SCOPE), - TOKEN_RESPONSE, delete, operationResponse).getZoneOperationApiForProject("myproject"); - - zoneOperationApi.deleteInZone("us-central1-a", "operation-1352178598164-4cdcc9d031510-4aa46279"); - } - - public void testListOperationWithNoOptionsResponseIs2xx() { - HttpRequest get = HttpRequest - .builder() - .method("GET") - .endpoint(OPERATIONS_URL_PREFIX) - .addHeader("Accept", "application/json") - .addHeader("Authorization", "Bearer " + TOKEN).build(); - - HttpResponse operationResponse = HttpResponse.builder().statusCode(200) - .payload(payloadFromResource("/zone_operation_list.json")).build(); - - ZoneOperationApi zoneOperationApi = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), - TOKEN_RESPONSE, get, operationResponse).getZoneOperationApiForProject("myproject"); - - assertEquals(zoneOperationApi.listFirstPageInZone("us-central1-a").toString(), - expectedList().toString()); - } - - public void testListOperationWithPaginationOptionsResponseIs2xx() { - HttpRequest get = HttpRequest - .builder() - .method("GET") - .endpoint(OPERATIONS_URL_PREFIX + - "?pageToken=CglPUEVSQVRJT04SOzU5MDQyMTQ4Nzg1Mi5vcG" + - "VyYXRpb24tMTM1MjI0NDI1ODAzMC00Y2RkYmU2YTJkNmIwLWVkMzIyMzQz&" + - "filter=" + - "status%20eq%20done&" + - "maxResults=3") - .addHeader("Accept", "application/json") - .addHeader("Authorization", "Bearer " + TOKEN).build(); - - HttpResponse operationResponse = HttpResponse.builder().statusCode(200) - .payload(payloadFromResource("/zone_operation_list.json")).build(); - - ZoneOperationApi zoneOperationApi = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), - TOKEN_RESPONSE, get, operationResponse).getZoneOperationApiForProject("myproject"); - - assertEquals(zoneOperationApi.listAtMarkerInZone("us-central1-a", - "CglPUEVSQVRJT04SOzU5MDQyMTQ4Nzg1Mi5vcGVyYXRpb24tMTM1Mj" + - "I0NDI1ODAzMC00Y2RkYmU2YTJkNmIwLWVkMzIyMzQz", - new ListOptions.Builder().filter("status eq done").maxResults(3)).toString(), - expectedList().toString()); - } - - public void testListOperationWithPaginationOptionsResponseIs4xx() { - HttpRequest get = HttpRequest - .builder() - .method("GET") - .endpoint(OPERATIONS_URL_PREFIX) - .addHeader("Accept", "application/json") - .addHeader("Authorization", "Bearer " + TOKEN).build(); - - HttpResponse operationResponse = HttpResponse.builder().statusCode(404).build(); - - ZoneOperationApi zoneOperationApi = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), - TOKEN_RESPONSE, get, operationResponse).getZoneOperationApiForProject("myproject"); - - assertTrue(zoneOperationApi.listInZone("us-central1-a").concat().isEmpty()); - } - - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiLiveTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiLiveTest.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiLiveTest.java deleted file mode 100644 index 4d30272..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/features/ZoneOperationApiLiveTest.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.googlecomputeengine.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 org.jclouds.collect.IterableWithMarker; -import org.jclouds.collect.PagedIterable; -import org.jclouds.googlecomputeengine.domain.Operation; -import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTest; -import org.jclouds.googlecomputeengine.options.ListOptions; -import org.testng.annotations.Test; - -import com.google.common.base.Predicate; -import com.google.common.collect.Iterables; - -public class ZoneOperationApiLiveTest extends BaseGoogleComputeEngineApiLiveTest { - - private static final String DISK_NAME = "zone-operations-api-live-test-disk"; - private Operation addOperation; - private Operation deleteOperation; - - private ZoneOperationApi api() { - return api.getZoneOperationApiForProject(userProject.get()); - } - - private DiskApi diskApi() { - return api.getDiskApiForProject(userProject.get()); - } - - @Test(groups = "live") - public void testCreateOperations() { - //create 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.getName()); - 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() -// .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; - } - }); - } - - private void assertOperationEquals(Operation result, Operation expected) { - assertEquals(result.getName(), expected.getName()); - } - - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/functions/CreateNetworkIfNeededTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/functions/CreateNetworkIfNeededTest.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/functions/CreateNetworkIfNeededTest.java deleted file mode 100644 index 292f9d4..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/functions/CreateNetworkIfNeededTest.java +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.googlecomputeengine.functions; - -import static com.google.common.base.Optional.fromNullable; -import static org.easymock.EasyMock.createMock; -import static org.easymock.EasyMock.expect; -import static org.easymock.EasyMock.replay; -import static org.easymock.EasyMock.verify; -import static org.testng.Assert.assertEquals; - -import java.net.URI; - -import org.jclouds.googlecomputeengine.GoogleComputeEngineApi; -import org.jclouds.googlecomputeengine.domain.Network; -import org.jclouds.googlecomputeengine.domain.Operation; -import org.jclouds.googlecomputeengine.domain.internal.NetworkAndAddressRange; -import org.jclouds.googlecomputeengine.features.GlobalOperationApi; -import org.jclouds.googlecomputeengine.features.NetworkApi; -import org.jclouds.googlecomputeengine.predicates.GlobalOperationDonePredicate; -import org.jclouds.http.HttpResponse; -import org.testng.annotations.Test; - -import com.google.common.base.Supplier; - -public class CreateNetworkIfNeededTest { - - @Test - public void testApply() { - final GoogleComputeEngineApi api = createMock(GoogleComputeEngineApi.class); - final NetworkApi nwApi = createMock(NetworkApi.class); - final GlobalOperationApi globalApi = createMock(GlobalOperationApi.class); - - Network network = Network.builder().IPv4Range("0.0.0.0/0") - .id("abcd").name("this-network") - .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/global/networks/this-network")) - .build(); - - Operation createOp = createMock(Operation.class); - - final Supplier<String> userProject = new Supplier<String>() { - @Override - public String get() { - return "myproject"; - } - }; - - expect(api.getNetworkApiForProject(userProject.get())).andReturn(nwApi).atLeastOnce(); - expect(api.getGlobalOperationApiForProject(userProject.get())).andReturn(globalApi).atLeastOnce(); - - expect(nwApi.createInIPv4Range("this-network", "0.0.0.0/0")) - .andReturn(createOp); - expect(globalApi.get("create-op")).andReturn(createOp); - expect(nwApi.get("this-network")).andReturn(null); - expect(nwApi.get("this-network")).andReturn(network); - - expect(createOp.getName()).andReturn("create-op"); - expect(createOp.getStatus()).andReturn(Operation.Status.DONE); - expect(createOp.getHttpError()).andReturn(fromNullable((HttpResponse)null)); - replay(api, nwApi, createOp, globalApi); - - NetworkAndAddressRange input = new NetworkAndAddressRange("this-network", "0.0.0.0/0", null); - - GlobalOperationDonePredicate pred = new GlobalOperationDonePredicate(api, userProject); - - CreateNetworkIfNeeded creator = new CreateNetworkIfNeeded(api, userProject, pred, 100l, 100l); - - assertEquals(creator.apply(input), network); - - verify(api, nwApi, globalApi, createOp); - } - - @Test - public void testApplyWithGateway() { - final GoogleComputeEngineApi api = createMock(GoogleComputeEngineApi.class); - final NetworkApi nwApi = createMock(NetworkApi.class); - final GlobalOperationApi globalApi = createMock(GlobalOperationApi.class); - - Network network = Network.builder().IPv4Range("0.0.0.0/0") - .id("abcd").name("this-network").gatewayIPv4("1.2.3.4") - .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/global/networks/this-network")) - .build(); - - Operation createOp = createMock(Operation.class); - - final Supplier<String> userProject = new Supplier<String>() { - @Override - public String get() { - return "myproject"; - } - }; - - expect(api.getNetworkApiForProject(userProject.get())).andReturn(nwApi).atLeastOnce(); - expect(api.getGlobalOperationApiForProject(userProject.get())).andReturn(globalApi).atLeastOnce(); - - expect(nwApi.createInIPv4RangeWithGateway("this-network", "0.0.0.0/0", "1.2.3.4")) - .andReturn(createOp); - expect(globalApi.get("create-op")).andReturn(createOp); - expect(nwApi.get("this-network")).andReturn(null); - expect(nwApi.get("this-network")).andReturn(network); - - expect(createOp.getName()).andReturn("create-op"); - expect(createOp.getStatus()).andReturn(Operation.Status.DONE); - expect(createOp.getHttpError()).andReturn(fromNullable((HttpResponse)null)); - replay(api, nwApi, createOp, globalApi); - - NetworkAndAddressRange input = new NetworkAndAddressRange("this-network", "0.0.0.0/0", "1.2.3.4"); - - GlobalOperationDonePredicate pred = new GlobalOperationDonePredicate(api, userProject); - - CreateNetworkIfNeeded creator = new CreateNetworkIfNeeded(api, userProject, pred, 100l, 100l); - - assertEquals(creator.apply(input), network); - - verify(api, nwApi, globalApi, createOp); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/handlers/GoogleComputeEngineErrorHandlerTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/handlers/GoogleComputeEngineErrorHandlerTest.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/handlers/GoogleComputeEngineErrorHandlerTest.java deleted file mode 100644 index 1d88d5a..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/handlers/GoogleComputeEngineErrorHandlerTest.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.googlecomputeengine.handlers; - -import static org.easymock.EasyMock.createMock; -import static org.easymock.EasyMock.expect; -import static org.easymock.EasyMock.replay; -import static org.easymock.EasyMock.reportMatcher; -import static org.easymock.EasyMock.verify; - -import java.net.URI; - -import org.easymock.IArgumentMatcher; -import org.jclouds.http.HttpCommand; -import org.jclouds.http.HttpRequest; -import org.jclouds.http.HttpResponse; -import org.testng.annotations.Test; - -@Test(groups = "unit", testName = "GoogleComputeErrorHandlerTest") -public class GoogleComputeEngineErrorHandlerTest { - - @Test - public void test409MakesIllegalStateException() { - assertCodeMakes( - "POST", - URI.create("https://www.googleapis.com/compute/v1"), - 409, - "HTTP/1.1 409 Conflict", - "\"{\"code\":\"InvalidState\",\"message\":\"An incompatible transition has already been queued for this" + - " resource\"}\"", - IllegalStateException.class); - } - - private void assertCodeMakes(String method, URI uri, int statusCode, String message, String content, - Class<? extends Exception> expected) { - assertCodeMakes(method, uri, statusCode, message, "application/json", content, expected); - } - - private void assertCodeMakes(String method, URI uri, int statusCode, String message, String contentType, - String content, Class<? extends Exception> expected) { - - GoogleComputeEngineErrorHandler function = new GoogleComputeEngineErrorHandler(); - - HttpCommand command = createMock(HttpCommand.class); - HttpRequest request = HttpRequest.builder().method(method).endpoint(uri).build(); - HttpResponse response = HttpResponse.builder().statusCode(statusCode).message(message).payload(content).build(); - response.getPayload().getContentMetadata().setContentType(contentType); - - expect(command.getCurrentRequest()).andReturn(request).atLeastOnce(); - command.setException(classEq(expected)); - - replay(command); - - function.handleError(command, response); - - verify(command); - } - - public static Exception classEq(final Class<? extends Exception> in) { - reportMatcher(new IArgumentMatcher() { - - @Override - public void appendTo(StringBuffer buffer) { - buffer.append("classEq("); - buffer.append(in); - buffer.append(")"); - } - - @Override - public boolean matches(Object arg) { - return arg.getClass() == in; - } - - }); - return null; - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiExpectTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiExpectTest.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiExpectTest.java deleted file mode 100644 index 1766de8..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiExpectTest.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.googlecomputeengine.internal; - -import java.util.Properties; - -import org.jclouds.googlecomputeengine.GoogleComputeEngineApi; - -public class BaseGoogleComputeEngineApiExpectTest extends BaseGoogleComputeEngineExpectTest<GoogleComputeEngineApi> { - - @Override - protected Properties setupProperties() { - Properties properties = super.setupProperties(); - properties.put("google-compute-engine.identity", "myproject"); - return properties; - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiLiveTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiLiveTest.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiLiveTest.java deleted file mode 100644 index 2c018eb..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineApiLiveTest.java +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.googlecomputeengine.internal; - -import static java.util.concurrent.TimeUnit.SECONDS; -import static org.jclouds.util.Predicates2.retry; -import static org.testng.Assert.assertEquals; -import static org.testng.AssertJUnit.assertTrue; - -import java.net.URI; -import java.util.Properties; -import java.util.concurrent.atomic.AtomicReference; - -import org.jclouds.apis.BaseApiLiveTest; -import org.jclouds.googlecomputeengine.GoogleComputeEngineApi; -import org.jclouds.googlecomputeengine.config.UserProject; -import org.jclouds.googlecomputeengine.domain.Operation; - -import com.google.common.base.Predicate; -import com.google.common.base.Supplier; -import com.google.common.util.concurrent.Atomics; -import com.google.inject.Injector; -import com.google.inject.Key; -import com.google.inject.Module; -import com.google.inject.TypeLiteral; -import com.google.inject.name.Names; - - -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 REGION_API_URL_SUFFIX = "/region/"; - 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/"; - protected static final String DEFAULT_GATEWAY_NAME = "default-internet-gateway"; - - protected static final String GOOGLE_PROJECT = "google"; - - protected Supplier<String> userProject; - protected Predicate<AtomicReference<Operation>> globalOperationDonePredicate; - protected Predicate<AtomicReference<Operation>> regionOperationDonePredicate; - protected Predicate<AtomicReference<Operation>> zoneOperationDonePredicate; - - - public BaseGoogleComputeEngineApiLiveTest() { - provider = "google-compute-engine"; - } - - 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)); - globalOperationDonePredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<AtomicReference<Operation>>>() { - }, Names.named("global"))); - regionOperationDonePredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<AtomicReference<Operation>>>() { - }, Names.named("region"))); - zoneOperationDonePredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<AtomicReference<Operation>>>() { - }, Names.named("zone"))); - return injector.getInstance(GoogleComputeEngineApi.class); - } - - protected Operation assertGlobalOperationDoneSucessfully(Operation operation, long maxWaitSeconds) { - operation = waitGlobalOperationDone(operation, maxWaitSeconds); - assertEquals(operation.getStatus(), Operation.Status.DONE); - assertTrue(operation.getErrors().isEmpty()); - return operation; - } - - protected Operation waitGlobalOperationDone(Operation operation, long maxWaitSeconds) { - return waitOperationDone(globalOperationDonePredicate, operation, maxWaitSeconds); - } - - protected Operation assertRegionOperationDoneSucessfully(Operation operation, long maxWaitSeconds) { - operation = waitRegionOperationDone(operation, maxWaitSeconds); - assertEquals(operation.getStatus(), Operation.Status.DONE); - assertTrue(operation.getErrors().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); - assertEquals(operation.getStatus(), Operation.Status.DONE); - assertTrue(operation.getErrors().isEmpty()); - return operation; - } - - protected Operation waitZoneOperationDone(Operation operation, long maxWaitSeconds) { - return waitOperationDone(zoneOperationDonePredicate, operation, maxWaitSeconds); - } - - protected URI getDefaultZoneUrl(String project) { - return getZoneUrl(project, DEFAULT_ZONE_NAME); - } - - protected URI getZoneUrl(String project, String zone) { - 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); - } - - protected URI getGatewayUrl(String project, String gateway) { - return URI.create(API_URL_PREFIX + project + GATEWAY_API_URL_SUFFIX + gateway); - } - - protected URI getDefaultMachineTypeUrl(String project) { - return getMachineTypeUrl(project, DEFAULT_MACHINE_TYPE_NAME); - } - - protected URI getMachineTypeUrl(String project, String machineType) { - return URI.create(API_URL_PREFIX + project + 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 static Operation waitOperationDone(Predicate<AtomicReference<Operation>> operationDonePredicate, - Operation operation, long maxWaitSeconds) { - AtomicReference<Operation> operationReference = Atomics.newReference(operation); - retry(operationDonePredicate, maxWaitSeconds, 1, SECONDS).apply(operationReference); - return operationReference.get(); - } -} - http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineExpectTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineExpectTest.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineExpectTest.java deleted file mode 100644 index 47a4245..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineExpectTest.java +++ /dev/null @@ -1,195 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.googlecomputeengine.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 org.easymock.EasyMock.createMock; -import static org.easymock.EasyMock.expect; -import static org.easymock.EasyMock.expectLastCall; -import static org.easymock.EasyMock.replay; -import static org.jclouds.crypto.Pems.privateKeySpec; -import static org.jclouds.crypto.Pems.publicKeySpec; -import static org.jclouds.crypto.PemsTest.PRIVATE_KEY; -import static org.jclouds.crypto.PemsTest.PUBLIC_KEY; - -import java.io.IOException; -import java.net.URI; -import java.security.KeyFactory; -import java.security.KeyPair; -import java.security.KeyPairGenerator; -import java.security.NoSuchAlgorithmException; -import java.security.PrivateKey; -import java.security.PublicKey; -import java.security.SecureRandom; -import java.security.interfaces.RSAPublicKey; -import java.security.spec.InvalidKeySpecException; -import java.util.Properties; -import java.util.concurrent.atomic.AtomicInteger; - -import javax.ws.rs.core.MediaType; - -import org.jclouds.collect.PagedIterable; -import org.jclouds.collect.PagedIterables; -import org.jclouds.crypto.Crypto; -import org.jclouds.googlecomputeengine.domain.ListPage; -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.rest.internal.BaseRestApiExpectTest; -import org.jclouds.ssh.SshKeys; -import org.jclouds.util.Strings2; - -import com.google.common.base.Joiner; -import com.google.common.base.Supplier; -import com.google.common.base.Suppliers; -import com.google.common.io.ByteSource; -import com.google.inject.Binder; -import com.google.inject.Module; -import com.google.inject.TypeLiteral; - -public class BaseGoogleComputeEngineExpectTest<T> extends BaseRestApiExpectTest<T> { - - private static final String header = "{\"alg\":\"none\",\"typ\":\"JWT\"}"; - - private static final String CLAIMS_TEMPLATE = "{" + - "\"iss\":\"myproject\"," + - "\"scope\":\"%s\"," + - "\"aud\":\"https://accounts.google.com/o/oauth2/token\"," + - "\"exp\":3600," + - "\"iat\":0}"; - - protected static final String TOKEN = "1/8xbJqaOZXSUZbHLl5EOtu1pxz3fmmetKx9W8CV4t79M"; - - protected static final HttpResponse TOKEN_RESPONSE = HttpResponse.builder().statusCode(200).payload( - payloadFromString("{\n" + - " \"access_token\" : \"" + TOKEN + "\",\n" + - " \"token_type\" : \"Bearer\",\n" + - " \"expires_in\" : 3600\n" + - "}")).build(); - - protected String openSshKey; - - - public BaseGoogleComputeEngineExpectTest() { - provider = "google-compute-engine"; - } - - @Override - protected Module createModule() { - - - return new Module() { - @Override - public void configure(Binder binder) { - // Predicatable time - binder.bind(new TypeLiteral<Supplier<Long>>() {}).toInstance(Suppliers.ofInstance(0L)); - try { - KeyFactory keyfactory = KeyFactory.getInstance("RSA"); - PrivateKey privateKey = keyfactory.generatePrivate(privateKeySpec(ByteSource.wrap( - PRIVATE_KEY.getBytes(UTF_8)))); - PublicKey publicKey = keyfactory.generatePublic(publicKeySpec(ByteSource.wrap(PUBLIC_KEY.getBytes(UTF_8)))); - KeyPair keyPair = new KeyPair(publicKey, privateKey); - openSshKey = SshKeys.encodeAsOpenSSH(RSAPublicKey.class.cast(publicKey)); - final Crypto crypto = createMock(Crypto.class); - KeyPairGenerator rsaKeyPairGenerator = createMock(KeyPairGenerator.class); - final SecureRandom secureRandom = createMock(SecureRandom.class); - expect(crypto.rsaKeyPairGenerator()).andReturn(rsaKeyPairGenerator).anyTimes(); - rsaKeyPairGenerator.initialize(2048, secureRandom); - expectLastCall().anyTimes(); - expect(rsaKeyPairGenerator.genKeyPair()).andReturn(keyPair).anyTimes(); - replay(crypto, rsaKeyPairGenerator, secureRandom); - binder.bind(Crypto.class).toInstance(crypto); - binder.bind(SecureRandom.class).toInstance(secureRandom); - } catch (NoSuchAlgorithmException e) { - propagate(e); - } catch (InvalidKeySpecException e) { - propagate(e); - } catch (IOException e) { - propagate(e); - } - // predictable node names - final AtomicInteger suffix = new AtomicInteger(); - binder.bind(new TypeLiteral<Supplier<String>>() { - }).toInstance(new Supplier<String>() { - @Override - public String get() { - return suffix.getAndIncrement() + ""; - } - }); - } - }; - } - - @Override - protected Properties setupProperties() { - Properties props = super.setupProperties(); - // use no sig algorithm for expect tests (means no credential is required either) - props.put(OAuthProperties.SIGNATURE_OR_MAC_ALGORITHM, OAuthConstants.NO_ALGORITHM); - return props; - } - - @Override - protected HttpRequestComparisonType compareHttpRequestAsType(HttpRequest input) { - HttpRequestComparisonType reqType = HttpRequestComparisonType.DEFAULT; - if (input.getPayload() != null) { - if (input.getPayload().getContentMetadata().getContentType().equals(MediaType.APPLICATION_JSON)) { - reqType = HttpRequestComparisonType.JSON; - } - } - return reqType; - } - - protected HttpRequest requestForScopes(String... scopes) { - String claims = String.format(CLAIMS_TEMPLATE, Joiner.on(",").join(scopes)); - - String payload = "grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer&" + - // Base64 Encoded Header - "assertion=" + base64Url().omitPadding().encode(header.getBytes(UTF_8)) + "." + - // Base64 Encoded Claims - base64Url().omitPadding().encode(claims.getBytes(UTF_8)) + "."; - - return HttpRequest.builder() - .method("POST") - .endpoint(URI.create("https://accounts.google.com/o/oauth2/token")) - .addHeader("Accept", MediaType.APPLICATION_JSON) - .payload(payloadFromStringWithContentType(payload, "application/x-www-form-urlencoded")) - .build(); - } - - /** - * Parse tests don't apply @Transform so we need to apply the transformation to PagedIterable on the result of - * expected() - */ - protected <T> PagedIterable<T> toPagedIterable(ListPage<T> list) { - return PagedIterables.of(list); - } - - protected static Payload staticPayloadFromResource(String resource) { - try { - return payloadFromString(Strings2.toStringAndClose(BaseGoogleComputeEngineExpectTest.class.getResourceAsStream - (resource))); - } catch (IOException e) { - throw propagate(e); - } - } - - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineParseTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineParseTest.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineParseTest.java deleted file mode 100644 index aba1fc3..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineParseTest.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.googlecomputeengine.internal; - -import org.jclouds.googlecomputeengine.config.GoogleComputeEngineParserModule; -import org.jclouds.json.BaseItemParserTest; -import org.jclouds.json.config.GsonModule; - -import com.google.inject.Guice; -import com.google.inject.Injector; - -public abstract class BaseGoogleComputeEngineParseTest<T> extends BaseItemParserTest<T> { - - @Override - protected Injector injector() { - return Guice.createInjector(new GsonModule(), new GoogleComputeEngineParserModule()); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineServiceContextExpectTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineServiceContextExpectTest.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineServiceContextExpectTest.java deleted file mode 100644 index 1b65fc1..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineServiceContextExpectTest.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.googlecomputeengine.internal; - -import java.util.Properties; - -import org.jclouds.apis.ApiMetadata; -import org.jclouds.compute.ComputeServiceContext; -import org.jclouds.googlecomputeengine.GoogleComputeEngineApiMetadata; -import org.jclouds.http.HttpRequest; -import org.jclouds.http.HttpResponse; - -import com.google.common.base.Function; -import com.google.inject.Module; - -public abstract class BaseGoogleComputeEngineServiceContextExpectTest<T> extends BaseGoogleComputeEngineExpectTest<T> implements - Function<ComputeServiceContext, T> { - - - @Override - public T createClient(Function<HttpRequest, HttpResponse> fn, Module module, Properties props) { - return apply(createComputeServiceContext(fn, module, props)); - } - - private ComputeServiceContext createComputeServiceContext(Function<HttpRequest, HttpResponse> fn, Module module, - Properties props) { - return createInjector(fn, module, props).getInstance(ComputeServiceContext.class); - } - - @Override - protected ApiMetadata createApiMetadata() { - return new GoogleComputeEngineApiMetadata(); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineServiceExpectTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineServiceExpectTest.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineServiceExpectTest.java deleted file mode 100644 index 23fa49e..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/internal/BaseGoogleComputeEngineServiceExpectTest.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.googlecomputeengine.internal; - -import org.jclouds.compute.ComputeService; -import org.jclouds.compute.ComputeServiceContext; - -public class BaseGoogleComputeEngineServiceExpectTest extends BaseGoogleComputeEngineServiceContextExpectTest<ComputeService> { - - @Override - public ComputeService apply(ComputeServiceContext input) { - return input.getComputeService(); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseAddressListTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseAddressListTest.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseAddressListTest.java deleted file mode 100644 index 8140a18..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseAddressListTest.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.googlecomputeengine.parse; - -import java.net.URI; - -import javax.ws.rs.Consumes; -import javax.ws.rs.core.MediaType; - -import org.jclouds.date.internal.SimpleDateFormatDateService; -import org.jclouds.googlecomputeengine.domain.Address; -import org.jclouds.googlecomputeengine.domain.ListPage; -import org.jclouds.googlecomputeengine.domain.Resource.Kind; -import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableSet; - -@Test(groups = "unit") -public class ParseAddressListTest extends BaseGoogleComputeEngineParseTest<ListPage<Address>> { - - @Override - public String resource() { - return "/address_list.json"; - } - - @Override - @Consumes(MediaType.APPLICATION_JSON) - public ListPage<Address> expected() { - return ListPage.<Address>builder() - .kind(Kind.ADDRESS_LIST) - .id("projects/myproject/regions/us-central1/addresses") - .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/regions/us-central1/addresses")) - .items(ImmutableSet.of(new ParseAddressTest().expected(), - Address.builder() - .id("4881363978908129158") - .creationTimestamp(new SimpleDateFormatDateService().iso8601DateParse("2013-07-26T14:08:21.552-07:00")) - .status("RESERVED") - .region(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/regions/us-central1")) - .name("test-ip2") - .description("") - .address("173.255.118.115") - .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/regions/us-central1/addresses/test-ip2")) - .build()) - ).build(); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseAddressTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseAddressTest.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseAddressTest.java deleted file mode 100644 index dd3c3ed..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseAddressTest.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.googlecomputeengine.parse; - -import java.net.URI; - -import javax.ws.rs.Consumes; -import javax.ws.rs.core.MediaType; - -import org.jclouds.date.internal.SimpleDateFormatDateService; -import org.jclouds.googlecomputeengine.domain.Address; -import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest; -import org.testng.annotations.Test; - -@Test(groups = "unit") -public class ParseAddressTest extends BaseGoogleComputeEngineParseTest<Address> { - - @Override - public String resource() { - return "/address_get.json"; - } - - @Override - @Consumes(MediaType.APPLICATION_JSON) - public Address expected() { - return Address.builder() - .id("4439373783165447583") - .creationTimestamp(new SimpleDateFormatDateService().iso8601DateParse("2013-07-26T13:57:20.204-07:00")) - .status("RESERVED") - .region(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/regions/us-central1")) - .name("test-ip1") - .description("") - .address("173.255.115.190") - .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/regions/us-central1/addresses/test-ip1")) - .build(); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseDiskListTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseDiskListTest.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseDiskListTest.java deleted file mode 100644 index 4e0cd43..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseDiskListTest.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.googlecomputeengine.parse; - -import java.net.URI; - -import javax.ws.rs.Consumes; -import javax.ws.rs.core.MediaType; - -import org.jclouds.date.internal.SimpleDateFormatDateService; -import org.jclouds.googlecomputeengine.domain.Disk; -import org.jclouds.googlecomputeengine.domain.ListPage; -import org.jclouds.googlecomputeengine.domain.Resource; -import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableSet; - -@Test(groups = "unit") -public class ParseDiskListTest extends BaseGoogleComputeEngineParseTest<ListPage<Disk>> { - - @Override - public String resource() { - return "/disk_list.json"; - } - - @Override - @Consumes(MediaType.APPLICATION_JSON) - public ListPage<Disk> expected() { - return ListPage.<Disk>builder() - .kind(Resource.Kind.DISK_LIST) - .id("projects/myproject/zones/us-central1-a/disks") - .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks")) - .items(ImmutableSet.of(Disk.builder() - .id("13050421646334304115") - .creationTimestamp(new SimpleDateFormatDateService().iso8601DateParse("2012-11-25T01:38:48.306")) - .selfLink(URI.create("https://www.googleapis" + - ".com/compute/v1/projects/myproject/zones/us-central1-a/disks/testimage1")) - .name("testimage1") - .sizeGb(1) - .zone(URI.create("https://www.googleapis" + - ".com/compute/v1/projects/myproject/zones/us-central1-a")) - .status("READY") - .build()) - ).build(); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseDiskTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseDiskTest.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseDiskTest.java deleted file mode 100644 index fe4c2bc..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseDiskTest.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.googlecomputeengine.parse; - -import java.net.URI; - -import javax.ws.rs.Consumes; -import javax.ws.rs.core.MediaType; - -import org.jclouds.date.internal.SimpleDateFormatDateService; -import org.jclouds.googlecomputeengine.domain.Disk; -import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest; -import org.testng.annotations.Test; - -@Test(groups = "unit") -public class ParseDiskTest extends BaseGoogleComputeEngineParseTest<Disk> { - - @Override - public String resource() { - return "/disk_get.json"; - } - - @Override - @Consumes(MediaType.APPLICATION_JSON) - public Disk expected() { - return Disk.builder() - .id("13050421646334304115") - .creationTimestamp(new SimpleDateFormatDateService().iso8601DateParse("2012-11-25T01:38:48.306")) - .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks/testimage1")) - .name("testimage1") - .sizeGb(1) - .zone(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a")) - .status("READY") - .build(); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseFirewallListTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseFirewallListTest.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseFirewallListTest.java deleted file mode 100644 index a1fc159..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseFirewallListTest.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.googlecomputeengine.parse; - -import java.net.URI; - -import javax.ws.rs.Consumes; -import javax.ws.rs.core.MediaType; - -import org.jclouds.date.internal.SimpleDateFormatDateService; -import org.jclouds.googlecomputeengine.domain.Firewall; -import org.jclouds.googlecomputeengine.domain.ListPage; -import org.jclouds.googlecomputeengine.domain.Resource; -import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest; -import org.jclouds.net.domain.IpProtocol; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableSet; - -@Test(groups = "unit") -public class ParseFirewallListTest extends BaseGoogleComputeEngineParseTest<ListPage<Firewall>> { - - @Override - public String resource() { - return "/firewall_list.json"; - } - - @Override - @Consumes(MediaType.APPLICATION_JSON) - public ListPage<Firewall> expected() { - return ListPage.<Firewall>builder() - .kind(Resource.Kind.FIREWALL_LIST) - .id("projects/google/firewalls") - .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/google/global/firewalls")) - .items(ImmutableSet.of( - new ParseFirewallTest().expected() - , Firewall.builder() - .id("12862241067393040785") - .creationTimestamp(new SimpleDateFormatDateService().iso8601DateParse("2012-04-13T03:05:04.365")) - .selfLink(URI.create("https://www.googleapis" + - ".com/compute/v1/projects/google/global/firewalls/default-ssh")) - .name("default-ssh") - .description("SSH allowed from anywhere") - .network(URI.create("https://www.googleapis" + - ".com/compute/v1/projects/google/global/networks/default")) - .addSourceRange("0.0.0.0/0") - .addAllowed(Firewall.Rule.builder() - .IpProtocol(IpProtocol.TCP) - .addPort(22).build()) - .build() - )) - .build(); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseFirewallTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseFirewallTest.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseFirewallTest.java deleted file mode 100644 index 37fc794..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseFirewallTest.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.googlecomputeengine.parse; - -import java.net.URI; - -import javax.ws.rs.Consumes; -import javax.ws.rs.core.MediaType; - -import org.jclouds.date.internal.SimpleDateFormatDateService; -import org.jclouds.googlecomputeengine.domain.Firewall; -import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest; -import org.jclouds.net.domain.IpProtocol; -import org.testng.annotations.Test; - -@Test(groups = "unit") -public class ParseFirewallTest extends BaseGoogleComputeEngineParseTest<Firewall> { - - @Override - public String resource() { - return "/firewall_get.json"; - } - - @Override - @Consumes(MediaType.APPLICATION_JSON) - public Firewall expected() { - return Firewall.builder() - .id("12862241031274216284") - .creationTimestamp(new SimpleDateFormatDateService().iso8601DateParse("2012-04-13T03:05:02.855")) - .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/global/firewalls/jclouds-test")) - .name("jclouds-test") - .description("Internal traffic from default allowed") - .network(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/global/networks/jclouds-test")) - .addSourceRange("10.0.0.0/8") - .addAllowed(Firewall.Rule.builder() - .IpProtocol(IpProtocol.TCP) - .addPortRange(1, 65535).build()) - .addAllowed(Firewall.Rule.builder() - .IpProtocol(IpProtocol.UDP) - .addPortRange(1, 65535).build()) - .addAllowed(Firewall.Rule.builder() - .IpProtocol(IpProtocol.ICMP).build()) - .build(); - - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseImageListTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseImageListTest.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseImageListTest.java deleted file mode 100644 index 1a364f6..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/test/java/org/jclouds/googlecomputeengine/parse/ParseImageListTest.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.googlecomputeengine.parse; - -import java.net.URI; - -import javax.ws.rs.Consumes; -import javax.ws.rs.core.MediaType; - -import org.jclouds.date.internal.SimpleDateFormatDateService; -import org.jclouds.googlecomputeengine.domain.Deprecated; -import org.jclouds.googlecomputeengine.domain.Image; -import org.jclouds.googlecomputeengine.domain.ListPage; -import org.jclouds.googlecomputeengine.domain.Resource; -import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineParseTest; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableSet; - -@Test(groups = "unit") -public class ParseImageListTest extends BaseGoogleComputeEngineParseTest<ListPage<Image>> { - - @Override - public String resource() { - return "/image_list.json"; - } - - @Override - @Consumes(MediaType.APPLICATION_JSON) - public ListPage<Image> expected() { - return ListPage.<Image>builder() - .kind(Resource.Kind.IMAGE_LIST) - .id("projects/centos-cloud/global/images") - .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/centos-cloud/global/images")) - .items(ImmutableSet.of(Image.builder() - .id("12941197498378735318") - .creationTimestamp(new SimpleDateFormatDateService().iso8601DateParse("2012-07-16T22:16:13.468")) - .selfLink(URI.create("https://www.googleapis" + - ".com/compute/v1/projects/centos-cloud/global/images/centos-6-2-v20120326")) - .name("centos-6-2-v20120326") - .description("DEPRECATED. CentOS 6.2 image; Created Mon, 26 Mar 2012 21:19:09 +0000") - .sourceType("RAW") - .deprecated(Deprecated.builder() - .state("DEPRECATED") - .replacement(URI.create("https://www.googleapis.com/compute/v1/projects/centos-cloud/global/images/centos-6-v20130104")) - .build()) - .rawDisk( - Image.RawDisk.builder() - .source("") - .containerType("TAR") - .build() - ).build() - - )) - .build(); - } -}
