http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d147afdc/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/options/UrlMapOptions.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/options/UrlMapOptions.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/options/UrlMapOptions.java index 3175ac7..b47aaf9 100644 --- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/options/UrlMapOptions.java +++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/options/UrlMapOptions.java @@ -16,199 +16,158 @@ */ package org.jclouds.googlecomputeengine.options; -import static com.google.common.base.Objects.equal; -import static com.google.common.base.Objects.toStringHelper; -import static com.google.common.base.Preconditions.checkNotNull; - import java.net.URI; -import java.util.Set; +import java.util.List; -import org.jclouds.googlecomputeengine.domain.UrlMap; import org.jclouds.googlecomputeengine.domain.UrlMap.HostRule; import org.jclouds.googlecomputeengine.domain.UrlMap.PathMatcher; import org.jclouds.googlecomputeengine.domain.UrlMap.UrlMapTest; +import org.jclouds.javax.annotation.Nullable; -import com.google.common.base.Objects; -import com.google.common.collect.ImmutableSet; +import com.google.common.collect.ImmutableList; -/** - * Options to create an urlMap. - * - * @see UrlMap - */ -public class UrlMapOptions extends ResourceOptions { - - private ImmutableSet.Builder<HostRule> hostRules = ImmutableSet.builder(); - private ImmutableSet.Builder<PathMatcher> pathMatchers = ImmutableSet.builder(); - private ImmutableSet.Builder<UrlMapTest> urlMapTests = ImmutableSet.builder(); +public class UrlMapOptions { + + private String name; + @Nullable private String description; + private List<HostRule> hostRules; + private List<PathMatcher> pathMatchers; + private List<UrlMapTest> tests; private URI defaultService; private String fingerprint; /** - ** - * {@inheritDoc} + * Name of the UrlMap resource. + * @return name, provided by the client. + */ + public String getName(){ + return name; + } + + /** + * @see UrlMapOptions#getName() */ - @Override public UrlMapOptions name(String name) { this.name = name; return this; } /** - ** - * {@inheritDoc} + * An optional textual description of the UrlMap. + * @return description, provided by the client. + */ + public String getDescription(){ + return description; + } + + /** + * @see UrlMapOptions#getDescription() */ - @Override public UrlMapOptions description(String description) { this.description = description; return this; } - + /** - * @see org.jclouds.googlecomputeengine.domain.UrlMap#getHostRules() + * Rules for matching and directing incoming hosts. */ - public UrlMapOptions addHostRule(HostRule hostRule) { - this.hostRules.add(checkNotNull(hostRule)); + public List<HostRule> getHostRules() { + return hostRules; + } + + /** + * @see UrlMapOptions#getHostRules() + */ + public UrlMapOptions hostRules(List<HostRule> hostRules) { + this.hostRules = hostRules; return this; } /** - * @see org.jclouds.googlecomputeengine.domain.UrlMap#getHostRules() + * @see UrlMapOptions#getHostRules() */ - public UrlMapOptions hostRules(Set<HostRule> hostRules) { - this.hostRules = ImmutableSet.builder(); - this.hostRules.addAll(hostRules); + public UrlMapOptions hostRule(HostRule hostRule){ + this.hostRules = ImmutableList.of(hostRule); return this; } - + /** - * @see org.jclouds.googlecomputeengine.domain.UrlMap#getHostRules() + * The list of named PathMatchers to use against the URL. */ - public Set<HostRule> getHostRules() { - return hostRules.build(); + public List<PathMatcher> getPathMatchers() { + return pathMatchers; } - + /** - * @see org.jclouds.googlecomputeengine.domain.UrlMap#getPathMatchers() + * @see UrlMapOptions#getPathMatchers() */ - public UrlMapOptions addPathMatcher(PathMatcher pathMatcher) { - this.pathMatchers.add(checkNotNull(pathMatcher)); + public UrlMapOptions pathMatcher(PathMatcher pathMatcher) { + this.pathMatchers = ImmutableList.of(pathMatcher); return this; } /** - * @see org.jclouds.googlecomputeengine.domain.UrlMap#getPathMatchers() + * @see UrlMapOptions#getPathMatchers() */ - public UrlMapOptions pathMatchers(Set<PathMatcher> pathMatchers) { - this.pathMatchers = ImmutableSet.builder(); - this.pathMatchers.addAll(pathMatchers); + public UrlMapOptions pathMatchers(List<PathMatcher> pathMatchers) { + this.pathMatchers = pathMatchers; return this; } - + /** - * @see org.jclouds.googlecomputeengine.domain.UrlMap#getPathMatchers() + * The list of expected URL mappings. Request to update this + * UrlMap will succeed only all of the test cases pass. */ - public Set<PathMatcher> getPathMatchers() { - return pathMatchers.build(); + public List<UrlMapTest> getTests() { + return tests; } - + /** - * @see org.jclouds.googlecomputeengine.domain.UrlMap#getTests() + * @see UrlMapOptions#getTests() */ - public UrlMapOptions addTest(UrlMapTest urlMapTest) { - this.urlMapTests.add(checkNotNull(urlMapTest)); + public UrlMapOptions test(UrlMapTest urlMapTest) { + this.tests = ImmutableList.of(urlMapTest); return this; } /** - * @see org.jclouds.googlecomputeengine.domain.UrlMap#getTests() + * @see UrlMapOptions#getTests() */ - public UrlMapOptions urlMapTests(Set<UrlMapTest> urlMapTests) { - this.urlMapTests = ImmutableSet.builder(); - this.urlMapTests.addAll(urlMapTests); + public UrlMapOptions urlMapTests(List<UrlMapTest> urlMapTests) { + this.tests = urlMapTests; return this; } - + /** - * @see org.jclouds.googlecomputeengine.domain.UrlMap#getTests() + * The URL of the BackendService resource if none of the hostRules match. */ - public Set<UrlMapTest> getTests() { - return urlMapTests.build(); + public URI getDefaultService() { + return defaultService; } - + /** - * @see org.jclouds.googlecomputeengine.domain.UrlMap#getDefaultService() + * @see UrlMapOptions#getDefaultService() */ public UrlMapOptions defaultService(URI defaultService) { this.defaultService = defaultService; return this; } - + /** - * @see org.jclouds.googlecomputeengine.domain.UrlMap#getDefaultService() + * Fingerprint of this resource. A hash of the contents stored in this object. + * This field is used in optimistic locking. This field will be ignored when + * inserting a UrlMap. An up-to-date fingerprint must be provided in order to + * update the UrlMap. */ - public URI getDefaultService() { - return defaultService; + public String getFingerprint() { + return fingerprint; } - + /** - * @see org.jclouds.googlecomputeengine.domain.UrlMap#getFingerprint() + * @see UrlMapOptions#getFingerprint() */ public UrlMapOptions fingerprint(String fingerprint) { this.fingerprint = fingerprint; return this; } - - /** - * @see org.jclouds.googlecomputeengine.domain.UrlMap#getFingerprint() - */ - public String getFingerprint() { - return fingerprint; - } - - /** - * {@inheritDoc} - */ - @Override - public int hashCode() { - return Objects.hashCode(name, hostRules, pathMatchers, urlMapTests, - defaultService); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean equals(Object obj) { - if (this == obj) return true; - if (obj == null || getClass() != obj.getClass()) return false; - UrlMapOptions that = UrlMapOptions.class.cast(obj); - return equal(this.name, that.name) - && equal(this.hostRules, that.hostRules) - && equal(this.pathMatchers, that.pathMatchers) - && equal(this.urlMapTests, that.urlMapTests) - && equal(this.defaultService, that.defaultService); - } - - /** - ** - * {@inheritDoc} - */ - protected Objects.ToStringHelper string() { - return toStringHelper(this) - .omitNullValues() - .add("hostRules", hostRules.build()) - .add("pathMatchers", pathMatchers.build()) - .add("tests", urlMapTests.build()) - .add("defaultService", defaultService) - .add("fingerprint", fingerprint); - } - - /** - * {@inheritDoc} - */ - @Override - public String toString() { - return string().toString(); - } }
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d147afdc/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/BackendServiceApiExpectTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/BackendServiceApiExpectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/BackendServiceApiExpectTest.java index 80b8d13..2e03495 100644 --- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/BackendServiceApiExpectTest.java +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/BackendServiceApiExpectTest.java @@ -16,18 +16,17 @@ */ package org.jclouds.googlecomputeengine.features; -import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE; -import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE; +import static javax.ws.rs.core.MediaType.APPLICATION_JSON; 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.io.IOException; import java.net.URI; +import java.util.List; -import javax.ws.rs.core.MediaType; - -import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiExpectTest; +import org.jclouds.googlecomputeengine.GoogleComputeEngineApi; +import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineExpectTest; import org.jclouds.googlecomputeengine.options.BackendServiceOptions; import org.jclouds.googlecomputeengine.parse.ParseBackendServiceGetHealthTest; import org.jclouds.googlecomputeengine.parse.ParseBackendServiceListTest; @@ -37,17 +36,19 @@ import org.jclouds.http.HttpRequest; import org.jclouds.http.HttpResponse; import org.testng.annotations.Test; +import com.google.common.collect.ImmutableList; + @Test(groups = "unit") -public class BackendServiceApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { - +public class BackendServiceApiExpectTest extends BaseGoogleComputeEngineExpectTest<GoogleComputeEngineApi> { + private static final String ENDPOINT_BASE = "https://www.googleapis.com/" - + "compute/v1/projects/myproject/global/backendServices"; - + + "compute/v1/projects/party/global/backendServices"; + private org.jclouds.http.HttpRequest.Builder<? extends HttpRequest.Builder<?>> getBasicRequest() { return HttpRequest.builder().addHeader("Accept", "application/json") .addHeader("Authorization", "Bearer " + TOKEN); } - + private HttpResponse createResponse(String payloadFile) { return HttpResponse.builder().statusCode(200) .payload(payloadFromResource(payloadFile)) @@ -61,7 +62,7 @@ public class BackendServiceApiExpectTest extends BaseGoogleComputeEngineApiExpec HttpResponse response = createResponse("/backend_service_get.json"); BackendServiceApi api = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), TOKEN_RESPONSE, request, response) - .getBackendServiceApiForProject("myproject"); + .backendServices(); assertEquals(api.get("jclouds-test"), new ParseBackendServiceTest().expected()); } @@ -75,7 +76,7 @@ public class BackendServiceApiExpectTest extends BaseGoogleComputeEngineApiExpec BackendServiceApi api = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), TOKEN_RESPONSE, request, response) - .getBackendServiceApiForProject("myproject"); + .backendServices(); assertNull(api.get("jclouds-test")); } @@ -84,20 +85,20 @@ public class BackendServiceApiExpectTest extends BaseGoogleComputeEngineApiExpec HttpRequest request = getBasicRequest().method("POST") .endpoint(ENDPOINT_BASE) .payload(payloadFromResourceWithContentType("/backend_service_insert.json", - MediaType.APPLICATION_JSON)) + APPLICATION_JSON)) .build(); HttpResponse response = createResponse("/operation.json"); BackendServiceApi api = requestsSendResponses(requestForScopes(COMPUTE_SCOPE), - TOKEN_RESPONSE, request, response).getBackendServiceApiForProject("myproject"); + TOKEN_RESPONSE, request, response).backendServices(); - URI hc = URI.create("https://www.googleapis.com/compute/v1/projects/" - + "myproject/global/httpHealthChecks/jclouds-test"); - assertEquals(api.create("jclouds-test", new BackendServiceOptions().name("jclouds-test") + List<URI> healthChecks = ImmutableList.of(URI.create("https://www.googleapis.com/compute/v1/projects/" + + "myproject/global/httpHealthChecks/jclouds-test")); + assertEquals(api.create( new BackendServiceOptions().name("jclouds-test") .protocol("HTTP") .port(80) .timeoutSec(30) - .addHealthCheck(hc)), + .healthChecks(healthChecks)), new ParseOperationTest().expected()); } @@ -106,20 +107,20 @@ public class BackendServiceApiExpectTest extends BaseGoogleComputeEngineApiExpec HttpRequest request = getBasicRequest().method("PUT") .endpoint(ENDPOINT_BASE + "/jclouds-test") .payload(payloadFromResourceWithContentType("/backend_service_insert.json", - MediaType.APPLICATION_JSON)) + APPLICATION_JSON)) .build(); HttpResponse response = createResponse("/operation.json"); BackendServiceApi api = requestsSendResponses(requestForScopes(COMPUTE_SCOPE), - TOKEN_RESPONSE, request, response).getBackendServiceApiForProject("myproject"); + TOKEN_RESPONSE, request, response).backendServices(); - URI hc = URI.create("https://www.googleapis.com/compute/v1/projects/" - + "myproject/global/httpHealthChecks/jclouds-test"); + List<URI> healthChecks = ImmutableList.of(URI.create("https://www.googleapis.com/compute/v1/projects/" + + "myproject/global/httpHealthChecks/jclouds-test")); assertEquals(api.update("jclouds-test", new BackendServiceOptions().name("jclouds-test") .protocol("HTTP") .port(80) .timeoutSec(30) - .addHealthCheck(hc)), + .healthChecks(healthChecks)), new ParseOperationTest().expected()); } @@ -127,20 +128,20 @@ public class BackendServiceApiExpectTest extends BaseGoogleComputeEngineApiExpec HttpRequest request = getBasicRequest().method("PATCH") .endpoint(ENDPOINT_BASE + "/jclouds-test") .payload(payloadFromResourceWithContentType("/backend_service_insert.json", - MediaType.APPLICATION_JSON)) + APPLICATION_JSON)) .build(); HttpResponse response = createResponse("/operation.json"); BackendServiceApi api = requestsSendResponses(requestForScopes(COMPUTE_SCOPE), - TOKEN_RESPONSE, request, response).getBackendServiceApiForProject("myproject"); + TOKEN_RESPONSE, request, response).backendServices(); - URI hc = URI.create("https://www.googleapis.com/compute/v1/projects/" - + "myproject/global/httpHealthChecks/jclouds-test"); + List<URI> healthChecks = ImmutableList.of(URI.create("https://www.googleapis.com/compute/v1/projects/" + + "myproject/global/httpHealthChecks/jclouds-test")); assertEquals(api.patch("jclouds-test", new BackendServiceOptions().name("jclouds-test") .protocol("HTTP") .port(80) .timeoutSec(30) - .addHealthCheck(hc)), + .healthChecks(healthChecks)), new ParseOperationTest().expected()); } @@ -151,7 +152,7 @@ public class BackendServiceApiExpectTest extends BaseGoogleComputeEngineApiExpec HttpResponse response = createResponse("/operation.json"); BackendServiceApi api = requestsSendResponses(requestForScopes(COMPUTE_SCOPE), - TOKEN_RESPONSE, request, response).getBackendServiceApiForProject("myproject"); + TOKEN_RESPONSE, request, response).backendServices(); assertEquals(api.delete("jclouds-test"), new ParseOperationTest().expected()); } @@ -164,7 +165,7 @@ public class BackendServiceApiExpectTest extends BaseGoogleComputeEngineApiExpec HttpResponse response = HttpResponse.builder().statusCode(404).build(); BackendServiceApi api = requestsSendResponses(requestForScopes(COMPUTE_SCOPE), - TOKEN_RESPONSE, request, response).getBackendServiceApiForProject("myproject"); + TOKEN_RESPONSE, request, response).backendServices(); assertNull(api.delete("jclouds-test")); } @@ -176,25 +177,28 @@ public class BackendServiceApiExpectTest extends BaseGoogleComputeEngineApiExpec HttpResponse response = createResponse("/backend_service_list.json"); BackendServiceApi api = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), - TOKEN_RESPONSE, request, response).getBackendServiceApiForProject("myproject"); + TOKEN_RESPONSE, request, response).backendServices(); - assertEquals(api.listFirstPage().toString(), - new ParseBackendServiceListTest().expected().toString()); + assertEquals(api.list().next(), new ParseBackendServiceListTest().expected()); } - public void testListBackendServiceResponseIs4xx() { - HttpRequest request = getBasicRequest().method("GET") - .endpoint(ENDPOINT_BASE) - .build(); + public void listEmpty() { + HttpRequest list = HttpRequest + .builder() + .method("GET") + .endpoint(BASE_URL + "/party/global/backendServices") + .addHeader("Accept", "application/json") + .addHeader("Authorization", "Bearer " + TOKEN).build(); - HttpResponse response = HttpResponse.builder().statusCode(404).build(); + HttpResponse response = HttpResponse.builder().statusCode(200) + .payload(payloadFromResource("/list_empty.json")).build(); BackendServiceApi api = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), - TOKEN_RESPONSE, request, response).getBackendServiceApiForProject("myproject"); + TOKEN_RESPONSE, list, response).backendServices(); - assertTrue(api.list().concat().isEmpty()); + assertFalse(api.list().hasNext()); } - + public void testGetHealthResponseIs2xx() throws IOException { HttpRequest request = getBasicRequest().method("POST") .endpoint(ENDPOINT_BASE @@ -204,7 +208,7 @@ public class BackendServiceApiExpectTest extends BaseGoogleComputeEngineApiExpec HttpResponse response = createResponse("/backend_service_get_health.json"); BackendServiceApi api = requestsSendResponses(requestForScopes(COMPUTE_SCOPE), - TOKEN_RESPONSE, request, response).getBackendServiceApiForProject("myproject"); + TOKEN_RESPONSE, request, response).backendServices(); URI group = URI.create("https://www.googleapis.com/resourceviews/v1beta1/" + "projects/myproject/zones/us-central1-a/" http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d147afdc/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/BackendServiceApiLiveTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/BackendServiceApiLiveTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/BackendServiceApiLiveTest.java index e4f99c0..c5eeee6 100644 --- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/BackendServiceApiLiveTest.java +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/BackendServiceApiLiveTest.java @@ -17,136 +17,116 @@ package org.jclouds.googlecomputeengine.features; import static com.google.common.collect.Iterables.getOnlyElement; +import static org.jclouds.googlecomputeengine.options.ListOptions.Builder.filter; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import java.net.URI; -import java.util.HashSet; +import java.util.Iterator; import java.util.List; -import org.jclouds.collect.PagedIterable; import org.jclouds.googlecomputeengine.domain.BackendService; -import org.jclouds.googlecomputeengine.domain.BackendService.Backend; -import org.jclouds.googlecomputeengine.domain.BackendServiceGroupHealth; +import org.jclouds.googlecloud.domain.ListPage; import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTest; import org.jclouds.googlecomputeengine.options.BackendServiceOptions; -import org.jclouds.googlecomputeengine.options.ListOptions; import org.testng.annotations.Test; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Lists; +import com.google.common.collect.ImmutableList; public class BackendServiceApiLiveTest extends BaseGoogleComputeEngineApiLiveTest { private static final String BACKEND_SERVICE_NAME = "backend-service-api-live-test-backend-service"; private static final String BACKEND_SERVICE_HEALTH_CHECK_NAME = "backend-service-api-live-test-health-check"; - private static final String BACKEND_SERVICE_RESOURCE_VIEW_NAME = "backend-service-api-live-test-resource-view"; - private static final int TIME_WAIT = 30; private BackendServiceApi api() { - return api.getBackendServiceApiForProject(userProject.get()); + return api.backendServices(); } @Test(groups = "live") public void testInsertBackendService() { - // TODO: (ashmrtnz) create health check here once it is merged into this project - HashSet<URI> healthChecks = new HashSet<URI>(); - healthChecks.add(getHealthCheckUrl(userProject.get(), BACKEND_SERVICE_HEALTH_CHECK_NAME)); + assertOperationDoneSuccessfully(api.httpHeathChecks().insert(BACKEND_SERVICE_HEALTH_CHECK_NAME)); + + List<URI> healthChecks = ImmutableList.of(getHealthCheckUrl(BACKEND_SERVICE_HEALTH_CHECK_NAME)); BackendServiceOptions b = new BackendServiceOptions().name(BACKEND_SERVICE_NAME).healthChecks(healthChecks); - assertGlobalOperationDoneSucessfully(api().create(BACKEND_SERVICE_NAME, b), TIME_WAIT); + assertOperationDoneSuccessfully(api().create(b)); } - + @Test(groups = "live", dependsOnMethods = "testInsertBackendService") public void testGetBackendService() { BackendService service = api().get(BACKEND_SERVICE_NAME); assertNotNull(service); assertBackendServiceEquals(service); } - + @Test(groups = "live", dependsOnMethods = "testGetBackendService") public void testPatchBackendService() { - String fingerprint = api().get(BACKEND_SERVICE_NAME).getFingerprint().get(); + String fingerprint = api().get(BACKEND_SERVICE_NAME).fingerprint(); BackendServiceOptions backendService = new BackendServiceOptions() .name(BACKEND_SERVICE_NAME) - .healthChecks(ImmutableSet.of(getHealthCheckUrl(userProject.get(), BACKEND_SERVICE_HEALTH_CHECK_NAME))) + .healthChecks(ImmutableList.of(getHealthCheckUrl(BACKEND_SERVICE_HEALTH_CHECK_NAME))) .timeoutSec(10) .fingerprint(fingerprint); - assertGlobalOperationDoneSucessfully(api().update(BACKEND_SERVICE_NAME, backendService), TIME_WAIT); + assertOperationDoneSuccessfully(api().update(BACKEND_SERVICE_NAME, backendService)); assertBackendServiceEquals(api().get(BACKEND_SERVICE_NAME), backendService); } - + @Test(groups = "live", dependsOnMethods = "testPatchBackendService") public void testUpdateBackendService() { - api.getResourceViewApiForProject(userProject.get()).createInZone(DEFAULT_ZONE_NAME, - BACKEND_SERVICE_RESOURCE_VIEW_NAME); - String fingerprint = api().get(BACKEND_SERVICE_NAME).getFingerprint().get(); - Backend backend = Backend.builder() - .group(getResourceViewInZoneUrl(userProject.get(), - BACKEND_SERVICE_RESOURCE_VIEW_NAME)) - .build(); + String fingerprint = api().get(BACKEND_SERVICE_NAME).fingerprint(); + BackendServiceOptions backendService = new BackendServiceOptions() .name(BACKEND_SERVICE_NAME) - .healthChecks(ImmutableSet.of(getHealthCheckUrl(userProject.get(), - BACKEND_SERVICE_HEALTH_CHECK_NAME))) + .healthChecks(ImmutableList.of(getHealthCheckUrl(BACKEND_SERVICE_HEALTH_CHECK_NAME))) .timeoutSec(45) .port(8080) - .addBackend(backend) .fingerprint(fingerprint); - assertGlobalOperationDoneSucessfully(api().update(BACKEND_SERVICE_NAME, - backendService), - TIME_WAIT); + assertOperationDoneSuccessfully(api().update(BACKEND_SERVICE_NAME, backendService)); assertBackendServiceEquals(api().get(BACKEND_SERVICE_NAME), backendService); } @Test(groups = "live", dependsOnMethods = "testUpdateBackendService") public void testListBackendService() { - PagedIterable<BackendService> backendServices = api().list(new ListOptions.Builder() - .filter("name eq " + BACKEND_SERVICE_NAME)); + Iterator<ListPage<BackendService>> backendServices = api().list(filter("name eq " + BACKEND_SERVICE_NAME)); - List<BackendService> backendServicesAsList = Lists.newArrayList(backendServices.concat()); + List<BackendService> backendServicesAsList = backendServices.next(); assertEquals(backendServicesAsList.size(), 1); } - + + /* @Test(groups = "live", dependsOnMethods = "testListBackendService") public void testGetHealthBackendService() { - // Check to see that the health check returned is empty because it can - // take several minutes to create all the resources needed and wait for - // the health check to return a health status. - assertGroupHealthEquals(api().getHealth(BACKEND_SERVICE_NAME, - getResourceViewInZoneUrl(userProject.get(), - BACKEND_SERVICE_RESOURCE_VIEW_NAME))); + // TODO: Once resourceViews are merged into the project. Test this actually works. } + */ - @Test(groups = "live", dependsOnMethods = "testGetHealthBackendService") + @Test(groups = "live", dependsOnMethods = "testListBackendService") public void testDeleteBackendService() { - assertGlobalOperationDoneSucessfully(api().delete(BACKEND_SERVICE_NAME), TIME_WAIT); - api.getResourceViewApiForProject(userProject.get()).deleteInZone(DEFAULT_ZONE_NAME, - BACKEND_SERVICE_RESOURCE_VIEW_NAME); + assertOperationDoneSuccessfully(api().delete(BACKEND_SERVICE_NAME)); + + assertOperationDoneSuccessfully(api.httpHeathChecks().delete(BACKEND_SERVICE_HEALTH_CHECK_NAME)); + } private void assertBackendServiceEquals(BackendService result) { - assertEquals(result.getName(), BACKEND_SERVICE_NAME); - assertEquals(getOnlyElement(result.getHealthChecks()), - getHealthCheckUrl(userProject.get(), BACKEND_SERVICE_HEALTH_CHECK_NAME)); + assertEquals(result.name(), BACKEND_SERVICE_NAME); + assertEquals(getOnlyElement(result.healthChecks()), + getHealthCheckUrl(BACKEND_SERVICE_HEALTH_CHECK_NAME)); } - + private void assertBackendServiceEquals(BackendService result, BackendServiceOptions expected) { - assertEquals(result.getName(), expected.getName()); - assertEquals(result.getHealthChecks(), expected.getHealthChecks()); + assertEquals(result.name(), expected.getName()); + assertEquals(result.healthChecks(), expected.getHealthChecks()); if (expected.getTimeoutSec() != null) { - assertEquals(result.getTimeoutSec().get(), expected.getTimeoutSec()); + org.testng.Assert.assertEquals(result.timeoutSec(), expected.getTimeoutSec().intValue()); } if (expected.getPort() != null) { - assertEquals(result.getPort().get(), expected.getPort()); + org.testng.Assert.assertEquals(result.port(), expected.getPort().intValue()); } } - - private void assertGroupHealthEquals(BackendServiceGroupHealth result) { - assert result.getHealthStatuses().size() == 0; - } + } http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d147afdc/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ForwardingRuleApiLiveTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ForwardingRuleApiLiveTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ForwardingRuleApiLiveTest.java index a9c7660..257c4bc 100644 --- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ForwardingRuleApiLiveTest.java +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ForwardingRuleApiLiveTest.java @@ -19,7 +19,6 @@ package org.jclouds.googlecomputeengine.features; import static org.jclouds.googlecomputeengine.options.ListOptions.Builder.filter; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertTrue; import org.jclouds.googlecloud.domain.ListPage; import org.jclouds.googlecomputeengine.domain.Address; @@ -28,23 +27,11 @@ import org.jclouds.googlecomputeengine.domain.TargetPool; import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTest; import org.jclouds.googlecomputeengine.options.ForwardingRuleCreationOptions; import org.jclouds.googlecomputeengine.options.TargetPoolCreationOptions; -import org.jclouds.googlecomputeengine.options.BackendServiceOptions; -import org.jclouds.googlecomputeengine.options.ForwardingRuleOptions; -import org.jclouds.googlecomputeengine.options.ListOptions; -import org.jclouds.googlecomputeengine.options.UrlMapOptions; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -import java.net.URI; -import java.util.HashSet; -import java.util.List; - -import org.jclouds.collect.PagedIterable; - -import com.google.common.collect.Lists; - public class ForwardingRuleApiLiveTest extends BaseGoogleComputeEngineApiLiveTest { private static final String FORWARDING_RULE_NAME = "forwarding-rule-api-live-test"; @@ -133,119 +120,4 @@ public class ForwardingRuleApiLiveTest extends BaseGoogleComputeEngineApiLiveTes assertOperationDoneSuccessfully(api().delete(FORWARDING_RULE_NAME)); } - - private static final String GLOBAL_FORWARDING_RULE_NAME = "global-forwarding-rule-api-live-test-forwarding-rule"; - private static final String GLOBAL_FORWARDING_RULE_TARGET_HTTP_PROXY_NAME = "global-" - + "forwarding-rule-api-live-test-target-http-proxy"; - private static final String GLOBAL_FORWARDING_RULE_URL_MAP_NAME = "global-" - + "forwarding-rule-api-live-test-url-map"; - private static final String GLOBAL_FORWARDING_RULE_BACKEND_SERVICE_NAME = "global-" - + "forwarding-rule-api-live-test-backend-service"; - private static final String GLOBAL_FORWARDING_RULE_HEALTH_CHECK_NAME = "global-" - + "forwarding-rule-api-live-test-health-check"; - private static final String PORT_RANGE = "80"; - - private ForwardingRuleApi api() { - return api.getForwardingRuleApiForProject(userProject.get()); - } - - @Test(groups = "live") - public void testInsertGlobalForwardingRule() { - String project = userProject.get(); - - // TODO: (ashmrtnz) create httpHealthCheck here once it is merged into project - HashSet<URI> healthChecks = new HashSet<URI>(); - healthChecks.add(getHealthCheckUrl(project, GLOBAL_FORWARDING_RULE_HEALTH_CHECK_NAME)); - BackendServiceOptions b = new BackendServiceOptions().name(GLOBAL_FORWARDING_RULE_BACKEND_SERVICE_NAME) - .healthChecks(healthChecks); - assertGlobalOperationDoneSucessfully(api.getBackendServiceApiForProject(project) - .create(GLOBAL_FORWARDING_RULE_BACKEND_SERVICE_NAME, b), TIME_WAIT); - - UrlMapOptions map = new UrlMapOptions().name(GLOBAL_FORWARDING_RULE_URL_MAP_NAME) - .description("simple url map") - .defaultService(getBackendServiceUrl(project, - GLOBAL_FORWARDING_RULE_BACKEND_SERVICE_NAME)); - assertGlobalOperationDoneSucessfully(api.getUrlMapApiForProject(project) - .create(GLOBAL_FORWARDING_RULE_URL_MAP_NAME, - map), - TIME_WAIT); - assertGlobalOperationDoneSucessfully(api.getTargetHttpProxyApiForProject(project) - .create(GLOBAL_FORWARDING_RULE_TARGET_HTTP_PROXY_NAME, - getUrlMapUrl(project, GLOBAL_FORWARDING_RULE_URL_MAP_NAME)), - TIME_WAIT); - assertGlobalOperationDoneSucessfully( - api().create(GLOBAL_FORWARDING_RULE_NAME, - new ForwardingRuleOptions().target(getTargetHttpProxyUrl(userProject.get(), - GLOBAL_FORWARDING_RULE_TARGET_HTTP_PROXY_NAME)) - .portRange(PORT_RANGE)), - TIME_WAIT); - } - - @Test(groups = "live", dependsOnMethods = "testInsertGlobalForwardingRule") - public void testGetGlobalForwardingRule() { - ForwardingRule forwardingRule = api().get(GLOBAL_FORWARDING_RULE_NAME); - assertNotNull(forwardingRule); - ForwardingRuleOptions expected = new ForwardingRuleOptions() - .target(getTargetHttpProxyUrl(userProject.get(), - GLOBAL_FORWARDING_RULE_TARGET_HTTP_PROXY_NAME)) - .portRange("80-80") - .ipProtocol("TCP") - .name(GLOBAL_FORWARDING_RULE_NAME); - assertGlobalForwardingRuleEquals(forwardingRule, expected); - } - - @Test(groups = "live", dependsOnMethods = "testGetGlobalForwardingRule") - public void testSetGlobalForwardingRuleTarget() { - assertGlobalOperationDoneSucessfully(api.getTargetHttpProxyApiForProject(userProject.get()) - .create(GLOBAL_FORWARDING_RULE_TARGET_HTTP_PROXY_NAME + "-2", - getUrlMapUrl(userProject.get(), - GLOBAL_FORWARDING_RULE_URL_MAP_NAME)), - TIME_WAIT); - assertGlobalOperationDoneSucessfully(api().setTarget(GLOBAL_FORWARDING_RULE_NAME, - getTargetHttpProxyUrl(userProject.get(), - GLOBAL_FORWARDING_RULE_TARGET_HTTP_PROXY_NAME + "-2")), - TIME_WAIT); - } - - @Test(groups = "live", dependsOnMethods = "testSetGlobalForwardingRuleTarget") - public void testListGlobalForwardingRule() { - - PagedIterable<ForwardingRule> forwardingRules = api().list(new ListOptions.Builder() - .filter("name eq " + GLOBAL_FORWARDING_RULE_NAME)); - - List<ForwardingRule> forwardingRulesAsList = Lists.newArrayList(forwardingRules.concat()); - - assertEquals(forwardingRulesAsList.size(), 1); - - } - - @Test(groups = "live", dependsOnMethods = "testListGlobalForwardingRule") - public void testDeleteGlobalForwardingRule() { - assertGlobalOperationDoneSucessfully(api().delete(GLOBAL_FORWARDING_RULE_NAME), TIME_WAIT); - - // Teardown other created resources - String project = userProject.get(); - assertGlobalOperationDoneSucessfully(api.getTargetHttpProxyApiForProject(project) - .delete(GLOBAL_FORWARDING_RULE_TARGET_HTTP_PROXY_NAME), - TIME_WAIT); - assertGlobalOperationDoneSucessfully(api.getTargetHttpProxyApiForProject(project) - .delete(GLOBAL_FORWARDING_RULE_TARGET_HTTP_PROXY_NAME + "-2"), - TIME_WAIT); - assertGlobalOperationDoneSucessfully(api.getUrlMapApiForProject(project) - .delete(GLOBAL_FORWARDING_RULE_URL_MAP_NAME), - TIME_WAIT); - assertGlobalOperationDoneSucessfully(api.getBackendServiceApiForProject(project) - .delete(GLOBAL_FORWARDING_RULE_BACKEND_SERVICE_NAME), - TIME_WAIT); - // TODO: (ashmrtnz) delete health check once it is merged into project - } - - private void assertGlobalForwardingRuleEquals(ForwardingRule result, ForwardingRuleOptions expected) { - assertEquals(result.getName(), expected.getName()); - assertEquals(result.getTarget(), expected.getTarget()); - assertEquals(result.getIpProtocol().orNull(), expected.getIpProtocol()); - assertEquals(result.getDescription().orNull(), expected.getDescription()); - assertEquals(result.getPortRange(), expected.getPortRange()); - assertTrue(result.getIpAddress().isPresent()); - } } http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d147afdc/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/GlobalForwardingRuleApiExpectTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/GlobalForwardingRuleApiExpectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/GlobalForwardingRuleApiExpectTest.java new file mode 100644 index 0000000..1adcd5e --- /dev/null +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/GlobalForwardingRuleApiExpectTest.java @@ -0,0 +1,177 @@ +/* + * 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.assertFalse; +import static org.testng.AssertJUnit.assertNull; + +import java.net.URI; + +import javax.ws.rs.core.MediaType; + +import org.jclouds.googlecomputeengine.GoogleComputeEngineApi; +import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineExpectTest; +import org.jclouds.googlecomputeengine.options.ForwardingRuleCreationOptions; +import org.jclouds.googlecomputeengine.parse.ParseForwardingRuleListTest; +import org.jclouds.googlecomputeengine.parse.ParseForwardingRuleTest; +import org.jclouds.googlecomputeengine.parse.ParseRegionOperationTest; +import org.jclouds.http.HttpRequest; +import org.jclouds.http.HttpResponse; +import org.testng.annotations.Test; + +@Test(groups = "unit", testName = "ForwardingRuleApiExpectTest") +public class GlobalForwardingRuleApiExpectTest extends BaseGoogleComputeEngineExpectTest<GoogleComputeEngineApi> { + + public void testGetForwardingRuleResponseIs2xx() throws Exception { + HttpRequest get = HttpRequest + .builder() + .method("GET") + .endpoint(BASE_URL + "/party/global/forwardingRules/test-forwarding-rule") + .addHeader("Accept", "application/json") + .addHeader("Authorization", "Bearer " + TOKEN).build(); + + HttpResponse response = HttpResponse.builder().statusCode(200) + .payload(payloadFromResource("/forwardingrule_get.json")).build(); + + ForwardingRuleApi api = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), + TOKEN_RESPONSE, get, response).globalForwardingRules(); + + assertEquals(api.get("test-forwarding-rule"), new ParseForwardingRuleTest().expected()); + } + + public void testGetForwardingRuleResponseIs4xx() throws Exception { + HttpRequest get = HttpRequest + .builder() + .method("GET") + .endpoint(BASE_URL + "/party/global/forwardingRules/test-forwarding-rule") + .addHeader("Accept", "application/json") + .addHeader("Authorization", "Bearer " + TOKEN).build(); + + HttpResponse response = HttpResponse.builder().statusCode(404).build(); + + ForwardingRuleApi api = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), + TOKEN_RESPONSE, get, response).globalForwardingRules(); + + assertNull(api.get("test-forwarding-rule")); + } + + public void testInsertForwardingRuleResponseIs2xx() { + HttpRequest insert = HttpRequest + .builder() + .method("POST") + .endpoint(BASE_URL + "/party/global/forwardingRules") + .addHeader("Accept", "application/json") + .addHeader("Authorization", "Bearer " + TOKEN) + .payload(payloadFromResourceWithContentType("/forwardingrule_insert.json", MediaType.APPLICATION_JSON)) + .build(); + + HttpResponse insertForwardingRuleResponse = HttpResponse.builder().statusCode(200) + .payload(payloadFromResource("/region_operation.json")).build(); + + ForwardingRuleApi api = requestsSendResponses(requestForScopes(COMPUTE_SCOPE), + TOKEN_RESPONSE, insert, + insertForwardingRuleResponse).globalForwardingRules(); + + ForwardingRuleCreationOptions forwardingRuleCreationOptions = new ForwardingRuleCreationOptions() + .target(URI.create(BASE_URL + "/party/regions/europe-west1/targetPools/test-target-pool")); + assertEquals(api.create("test-forwarding-rule", forwardingRuleCreationOptions), + new ParseRegionOperationTest().expected()); + } + + public void testDeleteForwardingRuleResponseIs2xx() { + HttpRequest delete = HttpRequest + .builder() + .method("DELETE") + .endpoint(BASE_URL + "/party/global/forwardingRules/test-forwarding-rule") + .addHeader("Accept", "application/json") + .addHeader("Authorization", "Bearer " + TOKEN).build(); + + HttpResponse deleteResponse = HttpResponse.builder().statusCode(200) + .payload(payloadFromResource("/region_operation.json")).build(); + + ForwardingRuleApi api = requestsSendResponses(requestForScopes(COMPUTE_SCOPE), + TOKEN_RESPONSE, delete, deleteResponse).globalForwardingRules(); + + assertEquals(api.delete("test-forwarding-rule"), new ParseRegionOperationTest().expected()); + } + + public void testDeleteForwardingRuleResponseIs4xx() { + HttpRequest delete = HttpRequest + .builder() + .method("DELETE") + .endpoint(BASE_URL + "/party/global/forwardingRules/test-targetPool") + .addHeader("Accept", "application/json") + .addHeader("Authorization", "Bearer " + TOKEN).build(); + + HttpResponse deleteResponse = HttpResponse.builder().statusCode(404).build(); + + ForwardingRuleApi api = requestsSendResponses(requestForScopes(COMPUTE_SCOPE), + TOKEN_RESPONSE, delete, deleteResponse).globalForwardingRules(); + + assertNull(api.delete("test-targetPool")); + } + + HttpRequest list = HttpRequest + .builder() + .method("GET") + .endpoint(BASE_URL + "/party/global/forwardingRules") + .addHeader("Accept", "application/json") + .addHeader("Authorization", "Bearer " + TOKEN).build(); + + public void list() { + HttpResponse response = HttpResponse.builder().statusCode(200) + .payload(payloadFromResource("/forwardingrule_list.json")).build(); + + ForwardingRuleApi api = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), + TOKEN_RESPONSE, list, response).globalForwardingRules(); + + assertEquals(api.list().next(), new ParseForwardingRuleListTest().expected()); + } + + public void listEmpty() { + HttpResponse response = HttpResponse.builder().statusCode(200) + .payload(payloadFromResource("/list_empty.json")).build(); + + ForwardingRuleApi api = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE), + TOKEN_RESPONSE, list, response).globalForwardingRules(); + + assertFalse(api.list().hasNext()); + } + + public void testSetTargetForwardingRuleResponseIs2xx(){ + String ruleName = "testForwardingRule"; + HttpRequest setTarget = HttpRequest + .builder() + .method("POST") + .endpoint(BASE_URL + "/party/global/forwardingRules/" + ruleName + "/setTarget") + .addHeader("Accept", "application/json") + .addHeader("Authorization", "Bearer " + TOKEN) + .payload(payloadFromResourceWithContentType("/forwardingrule_set_target.json", MediaType.APPLICATION_JSON)) + .build(); + + HttpResponse setTargetResponse = HttpResponse.builder().statusCode(200) + .payload(payloadFromResource("/region_operation.json")).build(); + + ForwardingRuleApi api = requestsSendResponses(requestForScopes(COMPUTE_SCOPE), + TOKEN_RESPONSE, setTarget, setTargetResponse).globalForwardingRules(); + + URI newTarget = URI.create(BASE_URL + "/party/regions/europe-west1/targetPools/test-target-pool"); + assertEquals(api.setTarget(ruleName, newTarget), new ParseRegionOperationTest().expected()); + } + +} http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d147afdc/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/GlobalForwardingRuleApiLiveTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/GlobalForwardingRuleApiLiveTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/GlobalForwardingRuleApiLiveTest.java new file mode 100644 index 0000000..31df698 --- /dev/null +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/GlobalForwardingRuleApiLiveTest.java @@ -0,0 +1,138 @@ +/* + * 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.options.ListOptions.Builder.filter; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.assertTrue; + +import org.jclouds.googlecomputeengine.domain.ForwardingRule; +import org.jclouds.googlecomputeengine.domain.ForwardingRule.IPProtocol; +import org.jclouds.googlecloud.domain.ListPage; +import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTest; +import org.jclouds.googlecomputeengine.options.ForwardingRuleCreationOptions; +import org.jclouds.googlecomputeengine.options.BackendServiceOptions; +import org.jclouds.googlecomputeengine.options.UrlMapOptions; +import org.testng.annotations.Test; + +import com.google.common.collect.ImmutableList; + +import java.net.URI; +import java.util.List; + + + +public class GlobalForwardingRuleApiLiveTest extends BaseGoogleComputeEngineApiLiveTest { + + private static final String GLOBAL_FORWARDING_RULE_NAME = "global-forwarding-rule-api-live-test-forwarding-rule"; + private static final String GLOBAL_FORWARDING_RULE_TARGET_HTTP_PROXY_NAME = "global-" + + "forwarding-rule-api-live-test-target-http-proxy"; + private static final String GLOBAL_FORWARDING_RULE_URL_MAP_NAME = "global-" + + "forwarding-rule-api-live-test-url-map"; + private static final String GLOBAL_FORWARDING_RULE_BACKEND_SERVICE_NAME = "global-" + + "forwarding-rule-api-live-test-backend-service"; + private static final String GLOBAL_FORWARDING_RULE_HEALTH_CHECK_NAME = "global-" + + "forwarding-rule-api-live-test-health-check"; + private static final String PORT_RANGE = "80"; + + private ForwardingRuleApi api() { + return api.globalForwardingRules(); + } + + @Test(groups = "live") + public void testInsertGlobalForwardingRule() { + + assertOperationDoneSuccessfully(api.httpHeathChecks().insert(GLOBAL_FORWARDING_RULE_HEALTH_CHECK_NAME)); + + + List<URI> healthChecks = ImmutableList.of(getHealthCheckUrl(GLOBAL_FORWARDING_RULE_HEALTH_CHECK_NAME)); + BackendServiceOptions b = new BackendServiceOptions().name(GLOBAL_FORWARDING_RULE_BACKEND_SERVICE_NAME) + .healthChecks(healthChecks); + assertOperationDoneSuccessfully(api.backendServices() + .create(b)); + + UrlMapOptions map = new UrlMapOptions().name(GLOBAL_FORWARDING_RULE_URL_MAP_NAME) + .description("simple url map") + .defaultService(getBackendServiceUrl(GLOBAL_FORWARDING_RULE_BACKEND_SERVICE_NAME)); + assertOperationDoneSuccessfully(api.urlMaps() + .create(map)); + assertOperationDoneSuccessfully(api.targetHttpProxies() + .create(GLOBAL_FORWARDING_RULE_TARGET_HTTP_PROXY_NAME, + getUrlMapUrl(GLOBAL_FORWARDING_RULE_URL_MAP_NAME))); + assertOperationDoneSuccessfully( + api().create(GLOBAL_FORWARDING_RULE_NAME, + new ForwardingRuleCreationOptions().target(getTargetHttpProxyUrl(GLOBAL_FORWARDING_RULE_TARGET_HTTP_PROXY_NAME)) + .portRange(PORT_RANGE))); + } + + @Test(groups = "live", dependsOnMethods = "testInsertGlobalForwardingRule") + public void testGetGlobalForwardingRule() { + ForwardingRule forwardingRule = api().get(GLOBAL_FORWARDING_RULE_NAME); + assertNotNull(forwardingRule); + ForwardingRuleCreationOptions expected = new ForwardingRuleCreationOptions() + .target(getTargetHttpProxyUrl(GLOBAL_FORWARDING_RULE_TARGET_HTTP_PROXY_NAME)) + .portRange("80-80") + .ipProtocol(IPProtocol.TCP); + assertGlobalForwardingRuleEquals(forwardingRule, expected); + } + + @Test(groups = "live", dependsOnMethods = "testGetGlobalForwardingRule") + public void testSetGlobalForwardingRuleTarget() { + assertOperationDoneSuccessfully(api.targetHttpProxies() + .create(GLOBAL_FORWARDING_RULE_TARGET_HTTP_PROXY_NAME + "-2", + getUrlMapUrl(GLOBAL_FORWARDING_RULE_URL_MAP_NAME))); + assertOperationDoneSuccessfully(api().setTarget(GLOBAL_FORWARDING_RULE_NAME, + getTargetHttpProxyUrl(GLOBAL_FORWARDING_RULE_TARGET_HTTP_PROXY_NAME + "-2"))); + } + + @Test(groups = "live", dependsOnMethods = "testSetGlobalForwardingRuleTarget") + public void testListGlobalForwardingRule() { + ListPage<ForwardingRule> forwardingRules = api().list(filter("name eq " + GLOBAL_FORWARDING_RULE_NAME)).next(); + assertEquals(forwardingRules.size(), 1); + } + + @Test(groups = "live", dependsOnMethods = "testListGlobalForwardingRule") + public void testDeleteGlobalForwardingRule() { + assertOperationDoneSuccessfully(api().delete(GLOBAL_FORWARDING_RULE_NAME)); + + // Teardown other created resources + assertOperationDoneSuccessfully(api.targetHttpProxies() + .delete(GLOBAL_FORWARDING_RULE_TARGET_HTTP_PROXY_NAME)); + + assertOperationDoneSuccessfully(api.targetHttpProxies() + .delete(GLOBAL_FORWARDING_RULE_TARGET_HTTP_PROXY_NAME + "-2")); + + assertOperationDoneSuccessfully(api.urlMaps() + .delete(GLOBAL_FORWARDING_RULE_URL_MAP_NAME)); + + assertOperationDoneSuccessfully(api.backendServices() + .delete(GLOBAL_FORWARDING_RULE_BACKEND_SERVICE_NAME)); + + assertOperationDoneSuccessfully(api.httpHeathChecks().delete(GLOBAL_FORWARDING_RULE_HEALTH_CHECK_NAME)); + + } + + private void assertGlobalForwardingRuleEquals(ForwardingRule result, ForwardingRuleCreationOptions expected) { + assertEquals(result.target(), expected.getTarget()); + assertEquals(result.ipProtocol(), expected.getIPProtocol()); + assertEquals(result.description(), expected.getDescription()); + assertEquals(result.portRange(), expected.getPortRange()); + assertTrue(result.ipAddress() != null); + } + +} http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d147afdc/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ResourceViewApiExpectTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ResourceViewApiExpectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ResourceViewApiExpectTest.java deleted file mode 100644 index 09d1eaa..0000000 --- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ResourceViewApiExpectTest.java +++ /dev/null @@ -1,338 +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.NDEV_CLOUD_MAN_READONLY_SCOPE; -import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.NDEV_CLOUD_MAN_SCOPE; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertTrue; -import static org.testng.AssertJUnit.assertNull; - -import javax.ws.rs.core.MediaType; - -import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiExpectTest; -import org.jclouds.googlecomputeengine.options.ResourceViewOptions; -import org.jclouds.googlecomputeengine.parse.ParseResourceViewListRegionTest; -import org.jclouds.googlecomputeengine.parse.ParseResourceViewListZoneTest; -import org.jclouds.googlecomputeengine.parse.ParseResourceViewRegionTest; -import org.jclouds.googlecomputeengine.parse.ParseResourceViewResourceListTest; -import org.jclouds.googlecomputeengine.parse.ParseResourceViewZoneTest; -import org.jclouds.http.HttpRequest; -import org.jclouds.http.HttpResponse; -import org.testng.annotations.Test; - -@Test(groups = "unit") -public class ResourceViewApiExpectTest extends BaseGoogleComputeEngineApiExpectTest { - - private static final String ZONE_ENDPOINT_BASE = "https://www.googleapis.com" - + "/resourceviews/v1beta1/projects/myproject/zones/us-central1-a/" - + "resourceViews"; - private static final String REGION_ENDPOINT_BASE = "https://www.googleapis.com" - + "/resourceviews/v1beta1/projects/myproject/regions/us-central1/" - + "resourceViews"; - - private org.jclouds.http.HttpRequest.Builder<? extends HttpRequest.Builder<?>> getBasicRequest() { - return HttpRequest.builder().addHeader("Accept", "application/json") - .addHeader("Authorization", "Bearer " + TOKEN); - } - - private HttpResponse createResponse(String payloadFile) { - return HttpResponse.builder().statusCode(200) - .payload(payloadFromResource(payloadFile)) - .build(); - } - - public void testResourceViewGetInZoneResponseIs2xx() throws Exception { - HttpRequest request = getBasicRequest().method("GET") - .endpoint(ZONE_ENDPOINT_BASE + "/jclouds-test") - .build(); - - HttpResponse response = createResponse("/resource_view_get_zone.json"); - - ResourceViewApi api = requestsSendResponses(requestForScopes(NDEV_CLOUD_MAN_READONLY_SCOPE), - TOKEN_RESPONSE, request, response) - .getResourceViewApiForProject("myproject"); - - assertEquals(api.getInZone("us-central1-a", "jclouds-test"), - new ParseResourceViewZoneTest().expected()); - } - - public void testResourceViewGetInZoneResponseIs4xx() throws Exception { - HttpRequest request = getBasicRequest().method("GET") - .endpoint(ZONE_ENDPOINT_BASE + "/jclouds-test") - .build(); - - HttpResponse response = HttpResponse.builder().statusCode(404).build(); - - ResourceViewApi api = requestsSendResponses(requestForScopes(NDEV_CLOUD_MAN_READONLY_SCOPE), - TOKEN_RESPONSE, request, response) - .getResourceViewApiForProject("myproject"); - - assertNull(api.getInZone("us-central1-a", "jclouds-test")); - } - - public void testResourceViewInsertInZoneResponseIs2xx() { - HttpRequest request = getBasicRequest().method("POST") - .endpoint(ZONE_ENDPOINT_BASE) - .payload(payloadFromResourceWithContentType("/resource_view_insert.json", - MediaType.APPLICATION_JSON)) - .build(); - - HttpResponse response = createResponse("/resource_view_get_zone.json"); - - ResourceViewApi api = requestsSendResponses(requestForScopes(NDEV_CLOUD_MAN_SCOPE), - TOKEN_RESPONSE, request, response) - .getResourceViewApiForProject("myproject"); - - ResourceViewOptions options = new ResourceViewOptions().description("Simple resource view"); - assertEquals(api.createInZone("us-central1-a", "jclouds-test", options), - new ParseResourceViewZoneTest().expected()); - } - - public void testResourceviewListResourcesInZoneResponseIs2xx() { - HttpRequest request = getBasicRequest().method("POST") - .endpoint(ZONE_ENDPOINT_BASE + "/jclouds-test/resources") - .build(); - - HttpResponse response = createResponse("/resource_view_resources_list.json"); - - ResourceViewApi api = requestsSendResponses(requestForScopes(NDEV_CLOUD_MAN_READONLY_SCOPE), - TOKEN_RESPONSE, request, response) - .getResourceViewApiForProject("myproject"); - - assertEquals(api.listResourcesFirstPageInZone("us-central1-a", - "jclouds-test").toString(), - new ParseResourceViewResourceListTest().expected().toString()); - } - - public void testResourceviewListResourcesInZoneResponseIs4xx() { - HttpRequest request = getBasicRequest().method("POST") - .endpoint(ZONE_ENDPOINT_BASE + "/jclouds-test/resources") - .build(); - - HttpResponse response = HttpResponse.builder().statusCode(404).build(); - - ResourceViewApi api = requestsSendResponses(requestForScopes(NDEV_CLOUD_MAN_READONLY_SCOPE), - TOKEN_RESPONSE, request, response) - .getResourceViewApiForProject("myproject"); - - assertTrue(api.listResourcesInZone("us-central1-a", "jclouds-test").concat().isEmpty()); - } - - // TODO: (ashmrtnz) uncomment this when / if the delete operation actually returns something - /* - public void testResourceViewDeleteInZoneResponseIs2xx() { - HttpRequest request = getBasicRequest().method("DELETE") - .endpoint(ZONE_ENDPOINT_BASE + "/jclouds-test") - .build(); - - HttpResponse response = createResponse("/zone_operation.json"); - - ResourceViewApi api = requestsSendResponses(requestForScopes(NDEV_CLOUD_MAN_SCOPE), - TOKEN_RESPONSE, request, response) - .getResourceViewApiForProject("myproject"); - - assertEquals(api.deleteInZone("us-central1-a", "jclouds-test"), - new ParseOperationTest().expected()); - } - - public void testResourceViewDeleteInZoneResponseIs4xx() { - HttpRequest request = getBasicRequest().method("DELETE") - .endpoint(ZONE_ENDPOINT_BASE + "/jclouds-test") - .build(); - HttpResponse deleteResponse = HttpResponse.builder().statusCode(404).build(); - - ResourceViewApi api = requestsSendResponses(requestForScopes(NDEV_CLOUD_MAN_SCOPE), - TOKEN_RESPONSE, request, response) - .getResourceViewApiForProject("myproject"); - - assertNull(api.deleteInZone("us-central1-a", "jclouds-test")); - } - */ - - public void testResourceViewListInZoneResponseIs2xx() { - HttpRequest request = getBasicRequest().method("GET") - .endpoint(ZONE_ENDPOINT_BASE) - .build(); - - HttpResponse response = createResponse("/resource_view_list_zone.json"); - - ResourceViewApi api = requestsSendResponses(requestForScopes(NDEV_CLOUD_MAN_READONLY_SCOPE), - TOKEN_RESPONSE, request, response) - .getResourceViewApiForProject("myproject"); - - assertEquals(api.listFirstPageInZone("us-central1-a").toString(), - new ParseResourceViewListZoneTest().expected().toString()); - } - - public void testResourceViewListInZoneResponseIs4xx() { - HttpRequest request = getBasicRequest().method("GET") - .endpoint(ZONE_ENDPOINT_BASE) - .build(); - - HttpResponse response = HttpResponse.builder().statusCode(404).build(); - - ResourceViewApi api = requestsSendResponses(requestForScopes(NDEV_CLOUD_MAN_READONLY_SCOPE), - TOKEN_RESPONSE, request, response) - .getResourceViewApiForProject("myproject"); - - assertTrue(api.listInZone("us-central1-a").concat().isEmpty()); - } - - // TODO: (ashmrtnz) create expect tests for addResources and removeResources - // when / if they actually return something - - public void testResourceViewGetInRegionResponseIs2xx() throws Exception { - HttpRequest request = getBasicRequest().method("GET") - .endpoint(REGION_ENDPOINT_BASE + "/jclouds-test") - .build(); - - HttpResponse response = createResponse("/resource_view_get_region.json"); - - ResourceViewApi api = requestsSendResponses(requestForScopes(NDEV_CLOUD_MAN_READONLY_SCOPE), - TOKEN_RESPONSE, request, response) - .getResourceViewApiForProject("myproject"); - - assertEquals(api.getInRegion("us-central1", "jclouds-test"), - new ParseResourceViewRegionTest().expected()); - } - - public void testResourceViewGetInRegionResponseIs4xx() throws Exception { - HttpRequest request = getBasicRequest().method("GET") - .endpoint(REGION_ENDPOINT_BASE + "/jclouds-test") - .build(); - - HttpResponse response = HttpResponse.builder().statusCode(404).build(); - - ResourceViewApi api = requestsSendResponses(requestForScopes(NDEV_CLOUD_MAN_READONLY_SCOPE), - TOKEN_RESPONSE, request, response) - .getResourceViewApiForProject("myproject"); - - assertNull(api.getInRegion("us-central1", "jclouds-test")); - } - - public void testResourceViewInsertInRegionResponseIs2xx() { - HttpRequest request = getBasicRequest().method("POST") - .endpoint(REGION_ENDPOINT_BASE) - .payload(payloadFromResourceWithContentType("/resource_view_insert.json", - MediaType.APPLICATION_JSON)) - .build(); - - HttpResponse response = createResponse("/resource_view_get_region.json"); - - ResourceViewApi api = requestsSendResponses(requestForScopes(NDEV_CLOUD_MAN_SCOPE), - TOKEN_RESPONSE, request, response) - .getResourceViewApiForProject("myproject"); - - ResourceViewOptions options = new ResourceViewOptions().description("Simple resource view"); - assertEquals(api.createInRegion("us-central1", "jclouds-test", options), - new ParseResourceViewRegionTest().expected()); - } - - public void testResourceviewListResourcesInRegionResponseIs2xx() { - HttpRequest request = getBasicRequest().method("POST") - .endpoint(REGION_ENDPOINT_BASE + "/jclouds-test/resources") - .build(); - - HttpResponse response = createResponse("/resource_view_resources_list.json"); - - ResourceViewApi api = requestsSendResponses(requestForScopes(NDEV_CLOUD_MAN_READONLY_SCOPE), - TOKEN_RESPONSE, request, response) - .getResourceViewApiForProject("myproject"); - - assertEquals(api.listResourcesFirstPageInRegion("us-central1", - "jclouds-test").toString(), - new ParseResourceViewResourceListTest().expected().toString()); - } - - public void testResourceviewListResourcesInRegionResponseIs4xx() { - HttpRequest request = getBasicRequest().method("POST") - .endpoint(REGION_ENDPOINT_BASE + "/jclouds-test/resources") - .build(); - - HttpResponse response = HttpResponse.builder().statusCode(404).build(); - - ResourceViewApi api = requestsSendResponses(requestForScopes(NDEV_CLOUD_MAN_READONLY_SCOPE), - TOKEN_RESPONSE, request, response) - .getResourceViewApiForProject("myproject"); - - assertTrue(api.listResourcesInRegion("us-central1", "jclouds-test").concat().isEmpty()); - } - - // TODO: (ashmrtnz) uncomment this when / if the delete operation actually returns something - /* - public void testResourceViewDeleteInRegionResponseIs2xx() { - HttpRequest request = getBasicRequest().method("DELETE") - .endpoint(REGION_ENDPOINT_BASE + "/jclouds-test") - .build(); - - HttpResponse response = createResponse("/region_operation.json"); - - ResourceViewApi api = requestsSendResponses(requestForScopes(NDEV_CLOUD_MAN_SCOPE), - TOKEN_RESPONSE, request, response) - .getResourceViewApiForProject("myproject"); - - assertEquals(api.deleteInRegion("us-central1", "jclouds-test"), - new ParseOperationTest().expected()); - } - - public void testResourceViewDeleteInRegionResponseIs4xx() { - HttpRequest request = getBasicRequest().method("DELETE") - .endpoint(REGION_ENDPOINT_BASE + "/jclouds-test") - .build(); - HttpResponse deleteResponse = HttpResponse.builder().statusCode(404).build(); - - ResourceViewApi api = requestsSendResponses(requestForScopes(NDEV_CLOUD_MAN_SCOPE), - TOKEN_RESPONSE, request, response) - .getResourceViewApiForProject("myproject"); - - assertNull(api.deleteInRegion("us-central1", "jclouds-test")); - } - */ - - public void testResourceViewListInRegionResponseIs2xx() { - HttpRequest request = getBasicRequest().method("GET") - .endpoint(REGION_ENDPOINT_BASE) - .build(); - - HttpResponse response = createResponse("/resource_view_list_region.json"); - - ResourceViewApi api = requestsSendResponses(requestForScopes(NDEV_CLOUD_MAN_READONLY_SCOPE), - TOKEN_RESPONSE, request, response) - .getResourceViewApiForProject("myproject"); - - assertEquals(api.listFirstPageInRegion("us-central1").toString(), - new ParseResourceViewListRegionTest().expected().toString()); - } - - public void testResourceViewListInRegionResponseIs4xx() { - HttpRequest request = getBasicRequest().method("GET") - .endpoint(REGION_ENDPOINT_BASE) - .build(); - - HttpResponse response = HttpResponse.builder().statusCode(404).build(); - - ResourceViewApi api = requestsSendResponses(requestForScopes(NDEV_CLOUD_MAN_READONLY_SCOPE), - TOKEN_RESPONSE, request, response) - .getResourceViewApiForProject("myproject"); - - assertTrue(api.listInRegion("us-central1").concat().isEmpty()); - } - - // TODO: (ashmrtnz) create expect tests for addResources and removeResources - // when /if they actually return something -} http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/d147afdc/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ResourceViewApiLiveTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ResourceViewApiLiveTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ResourceViewApiLiveTest.java deleted file mode 100644 index 6acf63c..0000000 --- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ResourceViewApiLiveTest.java +++ /dev/null @@ -1,190 +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 java.net.URI; -import java.util.List; - -import org.jclouds.collect.PagedIterable; -import org.jclouds.googlecomputeengine.domain.ResourceView; -import org.jclouds.googlecomputeengine.internal.BaseGoogleComputeEngineApiLiveTest; -import org.jclouds.googlecomputeengine.options.ResourceViewOptions; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; - -public class ResourceViewApiLiveTest extends BaseGoogleComputeEngineApiLiveTest { - - public static final String RESOURCE_VIEW_ZONE_NAME = "resource-view-api-live-test-zone-resource-view"; - public static final String RESOURCE_VIEW_REGION_NAME = "resource-view-api-live-test-region-resource-view"; - public static final String RESOURCE_VIEW_INSTANCE_NAME = "resource-view-api-live-test-instance"; - public static final int TIME_WAIT = 30; - - private ResourceViewApi api() { - return api.getResourceViewApiForProject(userProject.get()); - } - - @Test(groups = "live") - public void testResourceViewInsertInZone() { - ResourceViewOptions options = new ResourceViewOptions().name(RESOURCE_VIEW_ZONE_NAME) - .description("Basic resource view") - .zone("us-central1-a"); - assertResourceViewEquals(api().createInZone(DEFAULT_ZONE_NAME, RESOURCE_VIEW_ZONE_NAME, options), options); - - } - - @Test(groups = "live", dependsOnMethods = "testResourceViewInsertInZone") - public void testResourceViewAddResourcesInZone() { - api().addResourcesInZone(DEFAULT_ZONE_NAME, RESOURCE_VIEW_ZONE_NAME, - ImmutableSet.<URI>of(getInstanceUrl(userProject.get(), - RESOURCE_VIEW_INSTANCE_NAME))); - } - - @Test(groups = "live", dependsOnMethods = "testResourceViewAddResourcesInZone") - public void testResourceViewListResourcesInZone() { - PagedIterable<URI> resourceViewMembers = api().listResourcesInZone(DEFAULT_ZONE_NAME, - RESOURCE_VIEW_ZONE_NAME); - - List<URI> memberssAsList = Lists.newArrayList(resourceViewMembers.concat()); - - assertEquals(memberssAsList.size(), 1); - - assertEquals(Iterables.getOnlyElement(memberssAsList), getInstanceUrl(userProject.get(), - RESOURCE_VIEW_INSTANCE_NAME)); - } - - @Test(groups = "live", dependsOnMethods = "testResourceViewListResourcesInZone") - public void testResourceViewRemoveResourcesInZone() { - api().removeResourcesInZone(DEFAULT_ZONE_NAME, RESOURCE_VIEW_ZONE_NAME, - ImmutableSet.<URI>of(getInstanceUrl(userProject.get(), - RESOURCE_VIEW_INSTANCE_NAME))); - } - - @Test(groups = "live", dependsOnMethods = "testResourceViewRemoveResourcesInZone") - public void testResourceViewGetInZone() { - ResourceViewOptions options = new ResourceViewOptions().name(RESOURCE_VIEW_ZONE_NAME) - .description("Basic resource view") - .zone("us-central1-a"); - assertResourceViewEquals(api().getInZone(DEFAULT_ZONE_NAME, RESOURCE_VIEW_ZONE_NAME), options); - } - - // TODO: (ashmrtnz) uncomment this when / if filters can be applied to list operations for resource views - /* - @Test(groups = "live", dependsOnMethods = "testResourceViewGetInZone") - public void testResourceViewListInZone() { - - PagedIterable<ResourceView> resourceViews = api().listInZone(DEFAULT_ZONE_NAME, new ListOptions.Builder() - .filter("name eq " + RESOURCE_VIEW_ZONE_NAME)); - - List<ResourceView> resourceViewsAsList = Lists.newArrayList(resourceViews.concat()); - - assertEquals(resourceViewsAsList.size(), 1); - - ResourceViewOptions options = new ResourceViewOptions().name(RESOURCE_VIEW_ZONE_NAME) - .description("Basic resource view") - .zone(DEFAULT_ZONE_NAME); - assertResourceViewEquals(Iterables.getOnlyElement(resourceViewsAsList), options); - - } - */ - - @Test(groups = "live", dependsOnMethods = "testResourceViewGetInZone") - public void testResourceViewDeleteInZone() { - api().deleteInZone(DEFAULT_ZONE_NAME, RESOURCE_VIEW_ZONE_NAME); - } - - @Test(groups = "live") - public void testResourceViewInsertInRegion() { - ResourceViewOptions options = new ResourceViewOptions().name(RESOURCE_VIEW_REGION_NAME) - .description("Basic resource view") - .region(DEFAULT_REGION_NAME); - assertResourceViewEquals(api().createInRegion(DEFAULT_REGION_NAME, RESOURCE_VIEW_REGION_NAME, options), options); - - } - - @Test(groups = "live", dependsOnMethods = "testResourceViewInsertInRegion") - public void testResourceViewAddResourcesInRegion() { - api().addResourcesInRegion(DEFAULT_REGION_NAME, RESOURCE_VIEW_REGION_NAME, - ImmutableSet.<URI>of(getInstanceUrl(userProject.get(), - RESOURCE_VIEW_INSTANCE_NAME))); - } - - @Test(groups = "live", dependsOnMethods = "testResourceViewAddResourcesInRegion") - public void testResourceViewListResourcesInRegion() { - PagedIterable<URI> resourceViewMembers = api().listResourcesInRegion(DEFAULT_REGION_NAME, - RESOURCE_VIEW_REGION_NAME); - - List<URI> memberssAsList = Lists.newArrayList(resourceViewMembers.concat()); - - assertEquals(memberssAsList.size(), 1); - - assertEquals(Iterables.getOnlyElement(memberssAsList), getInstanceUrl(userProject.get(), - RESOURCE_VIEW_INSTANCE_NAME)); - } - - @Test(groups = "live", dependsOnMethods = "testResourceViewListResourcesInRegion") - public void testResourceViewRemoveResourcesInRegion() { - api().removeResourcesInRegion(DEFAULT_REGION_NAME, RESOURCE_VIEW_REGION_NAME, - ImmutableSet.<URI>of(getInstanceUrl(userProject.get(), - RESOURCE_VIEW_INSTANCE_NAME))); - } - - @Test(groups = "live", dependsOnMethods = "testResourceViewRemoveResourcesInRegion") - public void testResourceViewGetInRegion() { - ResourceViewOptions options = new ResourceViewOptions().name(RESOURCE_VIEW_REGION_NAME) - .description("Basic resource view") - .region(DEFAULT_REGION_NAME); - assertResourceViewEquals(api().getInRegion(DEFAULT_REGION_NAME, RESOURCE_VIEW_REGION_NAME), options); - } - - // TODO: (ashmrtnz) uncomment this when / if filters can be applied to list operations for resource views - /* - @Test(groups = "live", dependsOnMethods = "testResourceViewGetInRegion") - public void testResourceViewListInRegion() { - - PagedIterable<ResourceView> resourceViews = api().listInRegion(DEFAULT_REGION_NAME, new ListOptions.Builder() - .filter("name eq " + RESOURCE_VIEW_REGION_NAME)); - - List<ResourceView> resourceViewsAsList = Lists.newArrayList(resourceViews.concat()); - - assertEquals(resourceViewsAsList.size(), 1); - - ResourceViewOptions options = new ResourceViewOptions().name(RESOURCE_VIEW_REGION_NAME) - .description("Basic resource view") - .region(DEFAULT_REGION_NAME); - assertResourceViewEquals(Iterables.getOnlyElement(resourceViewsAsList), options); - - } - */ - - @Test(groups = "live", dependsOnMethods = "testResourceViewGetInRegion") - public void testResourceViewDeleteInRegion() { - api().deleteInRegion(DEFAULT_REGION_NAME, RESOURCE_VIEW_REGION_NAME); - } - - private void assertResourceViewEquals(ResourceView result, ResourceViewOptions expected) { - assertEquals(result.getName(), expected.getName()); - assertEquals(result.getMembers(), expected.getMembers()); - assertEquals(result.getRegion().orNull(), expected.getRegion()); - assertEquals(result.getZone().orNull(), expected.getZone()); - } - -}
