http://git-wip-us.apache.org/repos/asf/jclouds/blob/83b104d9/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/extensions/RouterApiExpectTest.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/extensions/RouterApiExpectTest.java b/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/extensions/RouterApiExpectTest.java deleted file mode 100644 index c3f04cc..0000000 --- a/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/extensions/RouterApiExpectTest.java +++ /dev/null @@ -1,295 +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.openstack.neutron.v2_0.extensions; - -import static javax.ws.rs.core.MediaType.APPLICATION_JSON; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertTrue; - -import java.util.Set; - -import javax.ws.rs.core.MediaType; - -import org.jclouds.http.HttpResponse; -import org.jclouds.openstack.neutron.v2_0.domain.ExternalGatewayInfo; -import org.jclouds.openstack.neutron.v2_0.domain.ReferenceWithName; -import org.jclouds.openstack.neutron.v2_0.domain.Router; -import org.jclouds.openstack.neutron.v2_0.domain.RouterInterface; -import org.jclouds.openstack.neutron.v2_0.domain.State; -import org.jclouds.openstack.neutron.v2_0.internal.BaseNeutronApiExpectTest; -import org.jclouds.openstack.neutron.v2_0.options.CreateRouterOptions; -import org.jclouds.openstack.neutron.v2_0.options.UpdateRouterOptions; -import org.jclouds.openstack.neutron.v2_0.parse.ParseRouterTest; -import org.jclouds.rest.AuthorizationException; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableSet; - -/** - * Tests parsing and Guice wiring of RouterApi - * - */ -@Test(groups = "unit", testName = "RouterApiExpectTest") -public class RouterApiExpectTest extends BaseNeutronApiExpectTest { - - private static final String ZONE = "region-a.geo-1"; - - public void testListReferencesReturns2xx() { - RouterApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/routers").addQueryParam("fields", "id", "tenant_id", "name").build(), - HttpResponse.builder().statusCode(200).payload(payloadFromResourceWithContentType("/list_routers.json", APPLICATION_JSON)).build()) - .getRouterExtensionForZone(ZONE).get(); - - Set<? extends ReferenceWithName> references = api.list().concat().toSet(); - assertEquals(references, listOfReferencesWithNames()); - } - - public void testListReferencesReturns4xx() { - RouterApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/routers").addQueryParam("fields", "id", "tenant_id", "name").build(), - HttpResponse.builder().statusCode(404).build()) - .getRouterExtensionForZone(ZONE).get(); - - assertTrue(api.list().concat().isEmpty()); - } - - public void testListReturns2xx() { - RouterApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/routers").build(), - HttpResponse.builder().statusCode(200).payload(payloadFromResourceWithContentType("/list_routers.json", APPLICATION_JSON)).build()) - .getRouterExtensionForZone(ZONE).get(); - - Set<? extends Router> routers = api.listInDetail().concat().toSet(); - assertEquals(routers, listOfRouters()); - } - - public void testListReturns4xx() { - RouterApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/routers").build(), - HttpResponse.builder().statusCode(404).build()) - .getRouterExtensionForZone(ZONE).get(); - - assertTrue(api.listInDetail().concat().isEmpty()); - } - - public void testGetReturns2xx() { - RouterApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/routers/16dba3bc-f3fa-4775-afdc-237e12c72f6a").build(), - HttpResponse.builder().statusCode(200).payload(payloadFromResourceWithContentType("/router.json", APPLICATION_JSON)).build()) - .getRouterExtensionForZone(ZONE).get(); - - Router router = api.get("16dba3bc-f3fa-4775-afdc-237e12c72f6a"); - assertEquals(router, new ParseRouterTest().expected()); - } - - public void testGetReturns4xx() { - RouterApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/routers/16dba3bc-f3fa-4775-afdc-237e12c72f6a").build(), - HttpResponse.builder().statusCode(404).build()) - .getRouterExtensionForZone(ZONE).get(); - - assertNull(api.get("16dba3bc-f3fa-4775-afdc-237e12c72f6a")); - } - - public void testCreateReturns2xx() { - RouterApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/routers").method("POST") - .payload(payloadFromStringWithContentType("{\"router\":{\"name\":\"test\",\"external_gateway_info\":{\"network_id\":\"1234567890\"}}}", MediaType.APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(200).payload(payloadFromStringWithContentType("{\"router\":{\"id\":\"12345\",\"tenant_id\":\"6789\",\"external_gateway_info\":{\"network_id\":\"1234567890\"}}}", APPLICATION_JSON)).build()) - .getRouterExtensionForZone(ZONE).get(); - - Router router = api.create(CreateRouterOptions.builder().name("test").externalGatewayInfo(ExternalGatewayInfo.builder().networkId("1234567890").build()).build()); - assertEquals(router, Router.builder().id("12345").tenantId("6789").externalGatewayInfo(ExternalGatewayInfo.builder().networkId("1234567890").build()).build()); - } - - @Test(expectedExceptions = AuthorizationException.class) - public void testCreateReturns4xx() { - RouterApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/routers").method("POST") - .payload(payloadFromStringWithContentType("{\"router\":{\"name\":\"another-test\",\"external_gateway_info\":{\"network_id\":\"1234567890\"}}}", MediaType.APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(401).build()) - .getRouterExtensionForZone(ZONE).get(); - - api.create(CreateRouterOptions.builder().name("another-test").externalGatewayInfo(ExternalGatewayInfo.builder().networkId("1234567890").build()).build()); - } - - public void testUpdateReturns2xx() { - RouterApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/routers/12345").method("PUT") - .payload(payloadFromStringWithContentType("{\"router\":{\"name\":\"another-test\",\"admin_state_up\":true}}", MediaType.APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(200).build()) - .getRouterExtensionForZone(ZONE).get(); - - assertTrue(api.update("12345", UpdateRouterOptions.builder().name("another-test").adminStateUp(true).build())); - } - - public void testUpdateReturns4xx() { - RouterApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/routers/12345").method("PUT") - .payload(payloadFromStringWithContentType("{\"router\":{\"name\":\"another-test\",\"admin_state_up\":true}}", MediaType.APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(404).build()) - .getRouterExtensionForZone(ZONE).get(); - - assertFalse(api.update("12345", UpdateRouterOptions.builder().name("another-test").adminStateUp(true).build())); - } - - public void testDeleteReturns2xx() { - RouterApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/routers/12345").method("DELETE").build(), - HttpResponse.builder().statusCode(200).build()) - .getRouterExtensionForZone(ZONE).get(); - - assertTrue(api.delete("12345")); - } - - @Test(expectedExceptions = AuthorizationException.class) - public void testDeleteReturns4xx() { - RouterApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/routers/12345").method("DELETE").build(), - HttpResponse.builder().statusCode(403).build()) - .getRouterExtensionForZone(ZONE).get(); - - api.delete("12345"); - } - - public void testAddInterfaceForSubnetReturns2xx() { - RouterApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/routers/12345/add_router_interface").method("PUT") - .payload(payloadFromStringWithContentType("{\"subnet_id\":\"1234567890\"}", MediaType.APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(200).payload(payloadFromStringWithContentType("{\"subnet_id\":\"1234567890\",\"port_id\":\"987654321\"}", MediaType.APPLICATION_JSON)).build()) - .getRouterExtensionForZone(ZONE).get(); - - RouterInterface routerInterface = api.addInterfaceForSubnet("12345", "1234567890"); - assertEquals(routerInterface, RouterInterface.builder().subnetId("1234567890").portId("987654321").build()); - } - - @Test(expectedExceptions = AuthorizationException.class) - public void testAddInterfaceForSubnetReturns4xx() { - RouterApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/routers/12345/add_router_interface").method("PUT") - .payload(payloadFromStringWithContentType("{\"subnet_id\":\"1234567890\"}", MediaType.APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(403).build()) - .getRouterExtensionForZone(ZONE).get(); - - api.addInterfaceForSubnet("12345", "1234567890"); - } - - public void testAddInterfaceForPortReturns2xx() { - RouterApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/routers/12345/add_router_interface").method("PUT") - .payload(payloadFromStringWithContentType("{\"port_id\":\"987654321\"}", MediaType.APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(200).payload(payloadFromStringWithContentType("{\"subnet_id\":\"1234567890\",\"port_id\":\"987654321\"}", MediaType.APPLICATION_JSON)).build()) - .getRouterExtensionForZone(ZONE).get(); - - RouterInterface routerInterface = api.addInterfaceForPort("12345", "987654321"); - assertEquals(routerInterface, RouterInterface.builder().subnetId("1234567890").portId("987654321").build()); - } - - @Test(expectedExceptions = AuthorizationException.class) - public void testAddInterfaceForPortReturns4xx() { - RouterApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/routers/12345/add_router_interface").method("PUT") - .payload(payloadFromStringWithContentType("{\"port_id\":\"1234567890\"}", MediaType.APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(403).build()) - .getRouterExtensionForZone(ZONE).get(); - - api.addInterfaceForPort("12345", "1234567890"); - } - - public void testRemoveInterfaceForSubnetReturns2xx() { - RouterApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/routers/12345/remove_router_interface").method("PUT") - .payload(payloadFromStringWithContentType("{\"subnet_id\":\"1234567890\"}", MediaType.APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(200).build()) - .getRouterExtensionForZone(ZONE).get(); - - api.removeInterfaceForSubnet("12345", "1234567890"); - } - - @Test(expectedExceptions = AuthorizationException.class) - public void testRemoveInterfaceForSubnetReturns4xx() { - RouterApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/routers/12345/remove_router_interface").method("PUT") - .payload(payloadFromStringWithContentType("{\"subnet_id\":\"1234567890\"}", MediaType.APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(403).build()) - .getRouterExtensionForZone(ZONE).get(); - - api.removeInterfaceForSubnet("12345", "1234567890"); - } - - public void testRemoveInterfaceForPortReturns2xx() { - RouterApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/routers/12345/remove_router_interface").method("PUT") - .payload(payloadFromStringWithContentType("{\"port_id\":\"1234567890\"}", MediaType.APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(200).build()) - .getRouterExtensionForZone(ZONE).get(); - - api.removeInterfaceForPort("12345", "1234567890"); - } - - @Test(expectedExceptions = AuthorizationException.class) - public void testRemoveInterfaceForPortReturns4xx() { - RouterApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/routers/12345/remove_router_interface").method("PUT") - .payload(payloadFromStringWithContentType("{\"port_id\":\"1234567890\"}", MediaType.APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(403).build()) - .getRouterExtensionForZone(ZONE).get(); - - api.removeInterfaceForPort("12345", "1234567890"); - } - - protected Set<Router> listOfRouters() { - return ImmutableSet.of( - Router.builder().state(State.ACTIVE).name("jclouds-test").tenantId("1234567890").id("16dba3bc-f3fa-4775-afdc-237e12c72f6a").build(), - Router.builder().state(State.ACTIVE).name("wibble").tenantId("1234567890").id("1a104cf5-cb18-4d35-9407-2fd2646d9d0b").build(), - Router.builder().state(State.ACTIVE).name("jclouds-test").tenantId("1234567890").id("31083ae2-420d-48b2-ac98-9f7a4fd8dbdc").build(), - Router.builder().state(State.ACTIVE).name("jclouds-test").tenantId("1234567890").id("49c6d6fa-ff2a-459d-b975-75a8d31c9a89").build(), - Router.builder().state(State.ACTIVE).name("wibble").tenantId("1234567890").id("5cb3d6f4-62cb-41c9-b964-ba7d9df79e4e").build(), - Router.builder().state(State.ACTIVE).name("jclouds-test").tenantId("1234567890").id("5d51d012-3491-4db7-b1b5-6f254015015d").build(), - Router.builder().state(State.ACTIVE).name("wibble").tenantId("1234567890").id("5f9cf7dc-22ca-4097-8e49-1cc8b23faf17").build(), - Router.builder().state(State.ACTIVE).name("jclouds-test").tenantId("1234567890").id("6319ecad-6bff-48b2-9b53-02ede8cb7588").build(), - Router.builder().state(State.ACTIVE).name("jclouds-test").tenantId("1234567890").id("6ba4c788-661f-49ab-9bf8-5f10cbbb2f57").build(), - Router.builder().state(State.ACTIVE).name("jclouds-test").tenantId("1234567890").id("74ed170b-5069-4353-ab38-9719766dc57e").build(), - Router.builder().state(State.ACTIVE).name("wibble").tenantId("1234567890").id("b71fcac1-e864-4031-8c5b-edbecd9ece36").build(), - Router.builder().state(State.ACTIVE).name("jclouds-test").tenantId("1234567890").id("c7681895-d84d-4650-9ca0-82c72036b855").build() - ); - } - -}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/83b104d9/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/extensions/RouterApiLiveTest.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/extensions/RouterApiLiveTest.java b/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/extensions/RouterApiLiveTest.java deleted file mode 100644 index e51a8c4..0000000 --- a/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/extensions/RouterApiLiveTest.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.openstack.neutron.v2_0.extensions; - -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertTrue; - -import java.util.Set; - -import org.jclouds.openstack.neutron.v2_0.domain.ExternalGatewayInfo; -import org.jclouds.openstack.neutron.v2_0.domain.Network; -import org.jclouds.openstack.neutron.v2_0.domain.NetworkType; -import org.jclouds.openstack.neutron.v2_0.domain.Port; -import org.jclouds.openstack.neutron.v2_0.domain.ReferenceWithName; -import org.jclouds.openstack.neutron.v2_0.domain.Router; -import org.jclouds.openstack.neutron.v2_0.domain.RouterInterface; -import org.jclouds.openstack.neutron.v2_0.domain.Subnet; -import org.jclouds.openstack.neutron.v2_0.features.NetworkApi; -import org.jclouds.openstack.neutron.v2_0.features.PortApi; -import org.jclouds.openstack.neutron.v2_0.features.SubnetApi; -import org.jclouds.openstack.neutron.v2_0.internal.BaseNeutronApiLiveTest; -import org.jclouds.openstack.neutron.v2_0.options.CreateNetworkOptions; -import org.jclouds.openstack.neutron.v2_0.options.CreateRouterOptions; -import org.jclouds.openstack.neutron.v2_0.options.UpdateRouterOptions; -import org.testng.annotations.Test; - -/** - * Tests parsing and Guice wiring of RouterApi - * - */ -@Test(groups = "live", testName = "RouterApiLiveTest") -public class RouterApiLiveTest extends BaseNeutronApiLiveTest { - - public void testGetAndListRouters() { - for (String zone : api.getConfiguredZones()) { - Set<? extends ReferenceWithName> references = api.getRouterExtensionForZone(zone).get().list().concat().toSet(); - Set<? extends Router> routers = api.getRouterExtensionForZone(zone).get().listInDetail().concat().toSet(); - - assertNotNull(references); - assertNotNull(routers); - assertEquals(references.size(), routers.size()); - - for (Router router : routers) { - assertNotNull(router.getName()); - assertTrue(references.contains(ReferenceWithName.builder().id(router.getId()).tenantId(router.getTenantId()).name(router.getName()).build())); - - Router retrievedRouter = api.getRouterExtensionForZone(zone).get().get(router.getId()); - assertEquals(router, retrievedRouter); - } - } - } - - public void testCreateUpdateAndDeleteRouter() { - for (String zone : api.getConfiguredZones()) { - RouterApi routerApi = api.getRouterExtensionForZone(zone).get(); - NetworkApi networkApi = api.getNetworkApiForZone(zone); - SubnetApi subnetApi = api.getSubnetApiForZone(zone); - - Network network = networkApi.create(CreateNetworkOptions.builder().name("jclouds-network-test").external(true).networkType(NetworkType.LOCAL).build()); - assertNotNull(network); - - Subnet subnet = subnetApi.create(network.getId(), 4, "192.168.0.0/16"); - assertNotNull(subnet); - - Router ref = routerApi.create(CreateRouterOptions.builder().name("jclouds-router-test") - .externalGatewayInfo(ExternalGatewayInfo.builder().networkId(network.getId()).build()).build()); - assertNotNull(ref); - - Router router = routerApi.get(ref.getId()); - - assertEquals(router.getId(), ref.getId()); - assertEquals(router.getName(), "jclouds-router-test"); - assertEquals(router.getExternalGatewayInfo().getNetworkId(), network.getId()); - assertTrue(routerApi.update(router.getId(), UpdateRouterOptions.builder().name("jclouds-router-test-rename").build())); - - router = routerApi.get(ref.getId()); - - assertEquals(router.getId(), ref.getId()); - assertEquals(router.getName(), "jclouds-router-test-rename"); - - ReferenceWithName ref2 = routerApi.create(CreateRouterOptions.builder().name("jclouds-router-test2") - .externalGatewayInfo(ExternalGatewayInfo.builder().networkId(network.getId()).build()).build()); - assertNotNull(ref2); - - assertTrue(routerApi.delete(ref.getId())); - assertTrue(routerApi.delete(ref2.getId())); - assertTrue(subnetApi.delete(subnet.getId())); - assertTrue(networkApi.delete(network.getId())); - } - } - - public void testCreateAndDeleteRouterInterfaceForSubnet() { - for (String zone : api.getConfiguredZones()) { - RouterApi routerApi = api.getRouterExtensionForZone(zone).get(); - NetworkApi networkApi = api.getNetworkApiForZone(zone); - SubnetApi subnetApi = api.getSubnetApiForZone(zone); - - Network network = networkApi.create(CreateNetworkOptions.builder().name("jclouds-network-test").external(true).networkType(NetworkType.LOCAL).build()); - assertNotNull(network); - - Subnet subnet = subnetApi.create(network.getId(), 4, "192.168.0.0/16"); - assertNotNull(subnet); - - Network network2 = networkApi.create(CreateNetworkOptions.builder().name("jclouds-network-test2").external(true).networkType(NetworkType.LOCAL).build()); - assertNotNull(network2); - - Subnet subnet2 = subnetApi.create(network2.getId(), 4, "192.169.0.0/16"); - assertNotNull(subnet2); - - Router router = routerApi.create(CreateRouterOptions.builder().name("jclouds-router-test").build()); - assertNotNull(router); - - RouterInterface routerInterface = routerApi.addInterfaceForSubnet(router.getId(), subnet.getId()); - assertNotNull(routerInterface); - - RouterInterface routerInterface2 = routerApi.addInterfaceForSubnet(router.getId(), subnet2.getId()); - assertNotNull(routerInterface2); - - assertTrue(routerApi.removeInterfaceForSubnet(router.getId(), subnet.getId())); - assertTrue(routerApi.removeInterfaceForSubnet(router.getId(), subnet2.getId())); - assertTrue(routerApi.delete(router.getId())); - assertTrue(subnetApi.delete(subnet.getId())); - assertTrue(networkApi.delete(network.getId())); - assertTrue(subnetApi.delete(subnet2.getId())); - assertTrue(networkApi.delete(network2.getId())); - } - } - - public void testCreateAndDeleteRouterInterfaceForPort() { - for (String zone : api.getConfiguredZones()) { - RouterApi routerApi = api.getRouterExtensionForZone(zone).get(); - NetworkApi networkApi = api.getNetworkApiForZone(zone); - SubnetApi subnetApi = api.getSubnetApiForZone(zone); - PortApi portApi = api.getPortApiForZone(zone); - - Network network = networkApi.create(CreateNetworkOptions.builder().name("jclouds-network-test").external(true).networkType(NetworkType.LOCAL).build()); - assertNotNull(network); - - Subnet subnet = subnetApi.create(network.getId(), 4, "192.168.0.0/16"); - assertNotNull(subnet); - - Network network2 = networkApi.create(CreateNetworkOptions.builder().name("jclouds-network-test2").external(true).networkType(NetworkType.LOCAL).build()); - assertNotNull(network2); - - Subnet subnet2 = subnetApi.create(network2.getId(), 4, "192.169.0.0/16"); - assertNotNull(subnet2); - - Port port = portApi.create(network.getId()); - assertNotNull(port); - - Port port2 = portApi.create(network2.getId()); - assertNotNull(port2); - - Router router = routerApi.create(CreateRouterOptions.builder().name("jclouds-router-test").build()); - assertNotNull(router); - - RouterInterface routerInterface = routerApi.addInterfaceForPort(router.getId(), port.getId()); - assertNotNull(routerInterface); - - RouterInterface routerInterface2 = routerApi.addInterfaceForPort(router.getId(), port2.getId()); - assertNotNull(routerInterface2); - - assertTrue(routerApi.removeInterfaceForPort(router.getId(), port.getId())); - assertTrue(routerApi.removeInterfaceForPort(router.getId(), port2.getId())); - assertTrue(routerApi.delete(router.getId())); - assertTrue(subnetApi.delete(subnet.getId())); - assertTrue(networkApi.delete(network.getId())); - assertTrue(subnetApi.delete(subnet2.getId())); - assertTrue(networkApi.delete(network2.getId())); - - } - } - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/83b104d9/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/NetworkApiExpectTest.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/NetworkApiExpectTest.java b/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/NetworkApiExpectTest.java deleted file mode 100644 index 2d2b09c..0000000 --- a/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/NetworkApiExpectTest.java +++ /dev/null @@ -1,245 +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.openstack.neutron.v2_0.features; - -import static javax.ws.rs.core.MediaType.APPLICATION_JSON; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertTrue; - -import java.util.Set; - -import javax.ws.rs.core.MediaType; - -import org.jclouds.http.HttpResponse; -import org.jclouds.openstack.neutron.v2_0.domain.BulkNetwork; -import org.jclouds.openstack.neutron.v2_0.domain.Network; -import org.jclouds.openstack.neutron.v2_0.domain.NetworkType; -import org.jclouds.openstack.neutron.v2_0.domain.ReferenceWithName; -import org.jclouds.openstack.neutron.v2_0.internal.BaseNeutronApiExpectTest; -import org.jclouds.openstack.neutron.v2_0.options.CreateNetworkBulkOptions; -import org.jclouds.openstack.neutron.v2_0.options.CreateNetworkOptions; -import org.jclouds.openstack.neutron.v2_0.options.UpdateNetworkOptions; -import org.jclouds.openstack.neutron.v2_0.parse.ParseNetworkTest; -import org.jclouds.rest.AuthorizationException; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableSet; - -/** - * Tests parsing and Guice wiring of NetworkApi - * - */ -@Test(groups = "unit", testName = "NetworkApiExpectTest") -public class NetworkApiExpectTest extends BaseNeutronApiExpectTest { - - private static final String ZONE = "region-a.geo-1"; - - public void testListReferencesReturns2xx() { - NetworkApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/networks").addQueryParam("fields", "id", "tenant_id", "name").build(), - HttpResponse.builder().statusCode(200).payload(payloadFromResourceWithContentType("/list_networks.json", APPLICATION_JSON)).build()) - .getNetworkApiForZone(ZONE); - - Set<? extends ReferenceWithName> references = api.list().concat().toSet(); - assertEquals(references, listOfReferencesWithNames()); - } - - public void testListReferencesReturns4xx() { - NetworkApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/networks").addQueryParam("fields", "id", "tenant_id", "name").build(), - HttpResponse.builder().statusCode(404).build()) - .getNetworkApiForZone(ZONE); - - assertTrue(api.list().concat().isEmpty()); - } - - public void testListReturns2xx() { - NetworkApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/networks").build(), - HttpResponse.builder().statusCode(200).payload(payloadFromResourceWithContentType("/list_networks.json", APPLICATION_JSON)).build()) - .getNetworkApiForZone(ZONE); - - Set<? extends Network> nets = api.listInDetail().concat().toSet(); - assertEquals(nets, listOfNetworks()); - } - - public void testListReturns4xx() { - NetworkApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/networks").build(), - HttpResponse.builder().statusCode(404).build()) - .getNetworkApiForZone(ZONE); - - assertTrue(api.listInDetail().concat().isEmpty()); - } - - public void testGetReturns2xx() { - NetworkApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/networks/16dba3bc-f3fa-4775-afdc-237e12c72f6a").build(), - HttpResponse.builder().statusCode(200).payload(payloadFromResourceWithContentType("/network.json", APPLICATION_JSON)).build()) - .getNetworkApiForZone(ZONE); - - Network net = api.get("16dba3bc-f3fa-4775-afdc-237e12c72f6a"); - assertEquals(net, new ParseNetworkTest().expected()); - } - - public void testGetReturns4xx() { - NetworkApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/networks/16dba3bc-f3fa-4775-afdc-237e12c72f6a").build(), - HttpResponse.builder().statusCode(404).build()) - .getNetworkApiForZone(ZONE); - - assertNull(api.get("16dba3bc-f3fa-4775-afdc-237e12c72f6a")); - } - - public void testCreateReturns2xx() { - NetworkApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/networks").method("POST") - .payload(payloadFromStringWithContentType("{\"network\":{\"name\":\"another-test\",\"router:external\":true,\"provider:network_type\":\"local\"}}", MediaType.APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(200).payload(payloadFromStringWithContentType("{\"network\":{\"id\":\"12345\",\"tenant_id\":\"6789\",\"router:external\":true,\"provider:network_type\":\"local\"}}", APPLICATION_JSON)).build()) - .getNetworkApiForZone(ZONE); - - Network net = api.create(CreateNetworkOptions.builder().name("another-test").external(true).networkType(NetworkType.LOCAL).build()); - assertEquals(net, Network.builder().id("12345").tenantId("6789").external(true).networkType(NetworkType.LOCAL).build()); - } - - @Test(expectedExceptions = AuthorizationException.class) - public void testCreateReturns4xx() { - NetworkApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/networks").method("POST") - .payload(payloadFromStringWithContentType("{\"network\":{\"name\":\"another-test\",\"provider:network_type\":\"local\"}}", MediaType.APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(401).build()) - .getNetworkApiForZone(ZONE); - - api.create(CreateNetworkOptions.builder().name("another-test").networkType(NetworkType.LOCAL).build()); - } - - public void testCreateBulkReturns2xx() { - NetworkApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/networks").method("POST") - .payload(payloadFromStringWithContentType("{\"networks\":[{\"name\":\"test\",\"provider:network_type\":\"local\"},{\"name\":\"test-2\",\"provider:network_type\":\"local\"}]}", MediaType.APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(200).payload(payloadFromStringWithContentType("{\"networks\":[{\"id\":\"1\",\"tenant_id\":\"1\",\"name\":\"test\",\"provider:network_type\":\"local\"},{\"id\":\"2\",\"tenant_id\":\"1\",\"name\":\"test-2\",\"provider:network_type\":\"local\"}]}", APPLICATION_JSON)).build()) - .getNetworkApiForZone(ZONE); - - Set<? extends ReferenceWithName> nets = api.createBulk( - CreateNetworkBulkOptions.builder().networks( - ImmutableList.of( - BulkNetwork.builder().networkType(NetworkType.LOCAL).name("test").build(), - BulkNetwork.builder().networkType(NetworkType.LOCAL).name("test-2").build() - ) - ).build() - ).toSet(); - assertEquals(nets, createBulkReturns2xxResponse()); - } - - @Test(expectedExceptions = AuthorizationException.class) - public void testCreateBulkReturns4xx() { - NetworkApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/networks").method("POST") - .payload(payloadFromStringWithContentType("{\"networks\":[{\"name\":\"test\",\"provider:network_type\":\"local\"},{\"name\":\"test-2\",\"provider:network_type\":\"local\"}]}", MediaType.APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(401).build()) - .getNetworkApiForZone(ZONE); - - api.createBulk( - CreateNetworkBulkOptions.builder().networks( - ImmutableList.of( - BulkNetwork.builder().networkType(NetworkType.LOCAL).name("test").build(), - BulkNetwork.builder().networkType(NetworkType.LOCAL).name("test-2").build() - ) - ).build() - ); - } - - public void testUpdateReturns2xx() { - NetworkApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/networks/12345").method("PUT") - .payload(payloadFromStringWithContentType("{\"network\":{\"name\":\"another-test\",\"admin_state_up\":true}}", MediaType.APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(200).build()) - .getNetworkApiForZone(ZONE); - - assertTrue(api.update("12345", UpdateNetworkOptions.builder().name("another-test").adminStateUp(true).build())); - } - - public void testUpdateReturns4xx() { - NetworkApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/networks/12345").method("PUT") - .payload(payloadFromStringWithContentType("{\"network\":{\"name\":\"another-test\",\"admin_state_up\":true}}", MediaType.APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(404).build()) - .getNetworkApiForZone(ZONE); - - assertFalse(api.update("12345", UpdateNetworkOptions.builder().name("another-test").adminStateUp(true).build())); - } - - public void testDeleteReturns2xx() { - NetworkApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/networks/12345").method("DELETE").build(), - HttpResponse.builder().statusCode(200).build()) - .getNetworkApiForZone(ZONE); - - assertTrue(api.delete("12345")); - } - - @Test(expectedExceptions = AuthorizationException.class) - public void testDeleteReturns4xx() { - NetworkApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/networks/12345").method("DELETE").build(), - HttpResponse.builder().statusCode(403).build()) - .getNetworkApiForZone(ZONE); - - api.delete("12345"); - } - - protected Set<Network> listOfNetworks() { - return ImmutableSet.of( - Network.builder().name("jclouds-test").tenantId("1234567890").id("16dba3bc-f3fa-4775-afdc-237e12c72f6a").build(), - Network.builder().name("wibble").tenantId("1234567890").id("1a104cf5-cb18-4d35-9407-2fd2646d9d0b").build(), - Network.builder().name("jclouds-test").tenantId("1234567890").id("31083ae2-420d-48b2-ac98-9f7a4fd8dbdc").build(), - Network.builder().name("jclouds-test").tenantId("1234567890").id("49c6d6fa-ff2a-459d-b975-75a8d31c9a89").build(), - Network.builder().name("wibble").tenantId("1234567890").id("5cb3d6f4-62cb-41c9-b964-ba7d9df79e4e").build(), - Network.builder().name("jclouds-test").tenantId("1234567890").id("5d51d012-3491-4db7-b1b5-6f254015015d").build(), - Network.builder().name("wibble").tenantId("1234567890").id("5f9cf7dc-22ca-4097-8e49-1cc8b23faf17").build(), - Network.builder().name("jclouds-test").tenantId("1234567890").id("6319ecad-6bff-48b2-9b53-02ede8cb7588").build(), - Network.builder().name("jclouds-test").tenantId("1234567890").id("6ba4c788-661f-49ab-9bf8-5f10cbbb2f57").build(), - Network.builder().name("jclouds-test").tenantId("1234567890").id("74ed170b-5069-4353-ab38-9719766dc57e").build(), - Network.builder().name("wibble").tenantId("1234567890").id("b71fcac1-e864-4031-8c5b-edbecd9ece36").build(), - Network.builder().name("jclouds-test").tenantId("1234567890").id("c7681895-d84d-4650-9ca0-82c72036b855").build() - ); - } - - protected Set<Network> createBulkReturns2xxResponse() { - return ImmutableSet.of( - Network.builder().id("1").tenantId("1").name("test").networkType(NetworkType.LOCAL).build(), - Network.builder().id("2").tenantId("1").name("test-2").networkType(NetworkType.LOCAL).build() - ); - } -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/83b104d9/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/NetworkApiLiveTest.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/NetworkApiLiveTest.java b/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/NetworkApiLiveTest.java deleted file mode 100644 index 938e353..0000000 --- a/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/NetworkApiLiveTest.java +++ /dev/null @@ -1,121 +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.openstack.neutron.v2_0.features; - -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertTrue; - -import java.util.Set; - -import org.jclouds.openstack.neutron.v2_0.domain.BulkNetwork; -import org.jclouds.openstack.neutron.v2_0.domain.Network; -import org.jclouds.openstack.neutron.v2_0.domain.NetworkType; -import org.jclouds.openstack.neutron.v2_0.domain.ReferenceWithName; -import org.jclouds.openstack.neutron.v2_0.internal.BaseNeutronApiLiveTest; -import org.jclouds.openstack.neutron.v2_0.options.CreateNetworkBulkOptions; -import org.jclouds.openstack.neutron.v2_0.options.CreateNetworkOptions; -import org.jclouds.openstack.neutron.v2_0.options.UpdateNetworkOptions; -import org.jclouds.openstack.neutron.v2_0.util.PredicateUtil; -import org.testng.annotations.Test; - -import com.google.common.base.Predicate; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.Sets; - -/** - * Tests parsing and Guice wiring of NetworkApi - * - */ -@Test(groups = "live", testName = "NetworkApiLiveTest", singleThreaded = true) -public class NetworkApiLiveTest extends BaseNeutronApiLiveTest { - - public void testGetAndListNetworks() { - for (String zone : api.getConfiguredZones()) { - Set<? extends ReferenceWithName> references = api.getNetworkApiForZone(zone).list().concat().toSet(); - Set<? extends Network> networks = api.getNetworkApiForZone(zone).listInDetail().concat().toSet(); - - assertNotNull(references); - assertNotNull(networks); - assertEquals(references.size(), networks.size()); - - for (Network network : networks) { - assertNotNull(network.getName()); - assertTrue(references.contains(ReferenceWithName.builder().id(network.getId()).tenantId(network.getTenantId()).name(network.getName()).build())); - - Network retrievedNetwork = api.getNetworkApiForZone(zone).get(network.getId()); - assertEquals(network, retrievedNetwork); - } - } - } - - public void testCreateUpdateAndDeleteNetwork() { - for (String zone : api.getConfiguredZones()) { - NetworkApi networkApi = api.getNetworkApiForZone(zone); - Network net = networkApi.create(CreateNetworkOptions.builder().name("jclouds-test").networkType(NetworkType.LOCAL).build()); - Network test = networkApi.create(); - assertNotNull(net); - - Network network = networkApi.get(net.getId()); - - assertEquals(network.getId(), net.getId()); - assertEquals(network.getName(), "jclouds-test"); - assertEquals(network.getNetworkType(), NetworkType.LOCAL); - assertTrue(network.getSubnets().isEmpty()); - assertTrue(networkApi.update(net.getId(), UpdateNetworkOptions.builder().name("jclouds-live-test").build())); - - network = networkApi.get(net.getId()); - - assertEquals(network.getId(), net.getId()); - assertEquals(network.getName(), "jclouds-live-test"); - assertTrue(network.getSubnets().isEmpty()); - - Network net2 = networkApi.create(CreateNetworkOptions.builder().name("jclouds-test2").networkType(NetworkType.LOCAL).build()); - assertNotNull(net2); - - assertTrue(networkApi.delete(net.getId())); - assertTrue(networkApi.delete(net2.getId())); - assertTrue(networkApi.delete(test.getId())); - } - } - - public void testBulkCreateNetwork() { - for (String zone : api.getConfiguredZones()) { - NetworkApi networkApi = api.getNetworkApiForZone(zone); - Set<? extends Network> nets = networkApi.createBulk( - CreateNetworkBulkOptions.builder().networks( - ImmutableList.of( - BulkNetwork.builder().networkType(NetworkType.LOCAL).name("jclouds-live-test-1").adminStateUp(true).build(), - BulkNetwork.builder().networkType(NetworkType.LOCAL).name("jclouds-live-test-2").adminStateUp(false).build(), - BulkNetwork.builder().networkType(NetworkType.LOCAL).name("jclouds-live-test-3").adminStateUp(false).build() - ) - ).build() - ).toSet(); - Set<? extends Network> existingNets = networkApi.listInDetail().concat().toSet(); - - assertNotNull(nets); - assertTrue(!nets.isEmpty()); - assertEquals(nets.size(), 3); - - for (Network net : nets) { - Predicate<Network> idEqualsPredicate = PredicateUtil.createIdEqualsPredicate(net.getId()); - assertEquals(1, Sets.filter(existingNets, idEqualsPredicate).size()); - assertTrue(networkApi.delete(net.getId())); - } - } - } -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/83b104d9/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/PortApiExpectTest.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/PortApiExpectTest.java b/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/PortApiExpectTest.java deleted file mode 100644 index 7f5338d..0000000 --- a/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/PortApiExpectTest.java +++ /dev/null @@ -1,245 +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.openstack.neutron.v2_0.features; - -import static javax.ws.rs.core.MediaType.APPLICATION_JSON; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertTrue; - -import java.util.Set; - -import org.jclouds.http.HttpResponse; -import org.jclouds.openstack.neutron.v2_0.domain.BulkPort; -import org.jclouds.openstack.neutron.v2_0.domain.Port; -import org.jclouds.openstack.neutron.v2_0.domain.ReferenceWithName; -import org.jclouds.openstack.neutron.v2_0.domain.State; -import org.jclouds.openstack.neutron.v2_0.internal.BaseNeutronApiExpectTest; -import org.jclouds.openstack.neutron.v2_0.options.CreatePortBulkOptions; -import org.jclouds.openstack.neutron.v2_0.options.CreatePortOptions; -import org.jclouds.openstack.neutron.v2_0.options.UpdatePortOptions; -import org.jclouds.openstack.neutron.v2_0.parse.ParsePortTest; -import org.jclouds.rest.AuthorizationException; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableSet; - -/** - * Tests parsing and Guice wiring of PortApi - * - */ -@Test(groups = "unit", testName = "PortApiExpectTest") -public class PortApiExpectTest extends BaseNeutronApiExpectTest { - - private static final String ZONE = "region-a.geo-1"; - - public void testListReferencesReturns2xx() { - PortApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/ports").addQueryParam("fields", "id", "tenant_id", "name").build(), - HttpResponse.builder().statusCode(200).payload(payloadFromResourceWithContentType("/list_ports.json", APPLICATION_JSON)).build()) - .getPortApiForZone(ZONE); - - Set<? extends ReferenceWithName> references = api.list().concat().toSet(); - assertEquals(references, listOfReferencesWithNames()); - } - - public void testListReferencesReturns4xx() { - PortApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/ports").addQueryParam("fields", "id", "tenant_id", "name").build(), - HttpResponse.builder().statusCode(404).build()) - .getPortApiForZone(ZONE); - - assertTrue(api.list().concat().isEmpty()); - } - - public void testListReturns2xx() { - PortApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/ports").build(), - HttpResponse.builder().statusCode(200).payload(payloadFromResourceWithContentType("/list_ports.json", APPLICATION_JSON)).build()) - .getPortApiForZone(ZONE); - - Set<? extends Port> ports = api.listInDetail().concat().toSet(); - assertEquals(ports, listOfPorts()); - } - - public void testListReturns4xx() { - PortApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/ports").build(), - HttpResponse.builder().statusCode(404).build()) - .getPortApiForZone(ZONE); - - assertTrue(api.listInDetail().concat().isEmpty()); - } - - public void testGetReturns2xx() { - PortApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/ports/624312ff-d14b-4ba3-9834-1c78d23d574d").build(), - HttpResponse.builder().statusCode(200).payload(payloadFromResourceWithContentType("/port.json", APPLICATION_JSON)).build()) - .getPortApiForZone(ZONE); - - Port port = api.get("624312ff-d14b-4ba3-9834-1c78d23d574d"); - assertEquals(port, new ParsePortTest().expected()); - } - - public void testGetReturns4xx() { - PortApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/ports/624312ff-d14b-4ba3-9834-1c78d23d574d").build(), - HttpResponse.builder().statusCode(404).build()) - .getPortApiForZone(ZONE); - - assertNull(api.get("624312ff-d14b-4ba3-9834-1c78d23d574d")); - } - - public void testCreateReturns2xx() { - PortApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/ports").method("POST") - .payload(payloadFromStringWithContentType("{\"port\":{\"network_id\":\"1\",\"name\":\"test-port\"}}", APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(200).payload(payloadFromStringWithContentType("{\"port\":{\"id\":\"1\",\"tenant_id\":\"1\",\"network_id\":\"1\",\"name\":\"test-port\"}}", APPLICATION_JSON)).build()) - .getPortApiForZone(ZONE); - - Port port = api.create("1", CreatePortOptions.builder().name("test-port").build()); - assertEquals(port, Port.builder().id("1").tenantId("1").name("test-port").networkId("1").build()); - } - - @Test(expectedExceptions = AuthorizationException.class) - public void testCreateReturns4xx() { - PortApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/ports").method("POST") - .payload(payloadFromStringWithContentType("{\"port\":{\"network_id\":\"1\",\"name\":\"test-port\"}}", APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(401).build()) - .getPortApiForZone(ZONE); - - api.create("1", CreatePortOptions.builder().name("test-port").build()); - } - - public void testCreateBulkReturns2xx() { - PortApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/ports").method("POST") - .payload(payloadFromStringWithContentType("{\"ports\":[{\"network_id\":\"1\",\"name\":\"test-port-1\"},{\"network_id\":\"2\",\"name\":\"test-port-2\"}]}", APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(200) - .payload(payloadFromStringWithContentType("{\"ports\":[{\"id\":\"1\",\"tenant_id\":\"1\",\"network_id\":\"1\",\"name\":\"test-port-1\"},{\"id\":\"2\",\"tenant_id\":\"1\",\"network_id\":\"2\",\"name\":\"test-port-2\"}]}", APPLICATION_JSON)).build()) - .getPortApiForZone(ZONE); - - Set<? extends ReferenceWithName> ports = api.createBulk( - CreatePortBulkOptions.builder().ports( - ImmutableList.of( - BulkPort.builder().networkId("1").name("test-port-1").build(), - BulkPort.builder().networkId("2").name("test-port-2").build() - ) - ).build() - ).toSet(); - assertEquals(ports, createBulkReturns2xxResponse()); - } - - @Test(expectedExceptions = AuthorizationException.class) - public void testCreateBulkReturns4xx() { - PortApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/ports").method("POST") - .payload(payloadFromStringWithContentType("{\"ports\":[{\"network_id\":\"1\",\"name\":\"test-port-1\"},{\"network_id\":\"2\",\"name\":\"test-port-2\"}]}", APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(401).build()) - .getPortApiForZone(ZONE); - - api.createBulk( - CreatePortBulkOptions.builder().ports( - ImmutableList.of( - BulkPort.builder().networkId("1").name("test-port-1").build(), - BulkPort.builder().networkId("2").name("test-port-2").build() - ) - ).build() - ); - } - - public void testUpdateReturns2xx() { - PortApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/ports/12345").method("PUT") - .payload(payloadFromStringWithContentType("{\"port\":{\"name\":\"another-test\",\"admin_state_up\":true}}", APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(200).build()) - .getPortApiForZone(ZONE); - - assertTrue(api.update("12345", UpdatePortOptions.builder().name("another-test").adminStateUp(true).build())); - } - - public void testUpdateReturns4xx() { - PortApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/ports/12345").method("PUT") - .payload(payloadFromStringWithContentType("{\"port\":{\"name\":\"another-test\",\"admin_state_up\":true}}", APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(404).build()) - .getPortApiForZone(ZONE); - - assertFalse(api.update("12345", UpdatePortOptions.builder().name("another-test").adminStateUp(true).build())); - } - - public void testDeleteReturns2xx() { - PortApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/ports/12345").method("DELETE").build(), - HttpResponse.builder().statusCode(200).build()) - .getPortApiForZone(ZONE); - - assertTrue(api.delete("12345")); - } - - @Test(expectedExceptions = AuthorizationException.class) - public void testDeleteReturns4xx() { - PortApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/ports/12345").method("DELETE").build(), - HttpResponse.builder().statusCode(403).build()) - .getPortApiForZone(ZONE); - - api.delete("12345"); - } - - protected Set<Port> listOfPorts() { - return ImmutableSet.of( - Port.builder().state(State.ACTIVE).networkId("1234567890").name("jclouds-test").tenantId("1234567890").id("16dba3bc-f3fa-4775-afdc-237e12c72f6a").build(), - Port.builder().state(State.ACTIVE).networkId("1234567890").name("wibble").tenantId("1234567890").id("1a104cf5-cb18-4d35-9407-2fd2646d9d0b").build(), - Port.builder().state(State.ACTIVE).networkId("1234567890").name("jclouds-test").tenantId("1234567890").id("31083ae2-420d-48b2-ac98-9f7a4fd8dbdc").build(), - Port.builder().state(State.ACTIVE).networkId("1234567890").name("jclouds-test").tenantId("1234567890").id("49c6d6fa-ff2a-459d-b975-75a8d31c9a89").build(), - Port.builder().state(State.ACTIVE).networkId("1234567890").name("wibble").tenantId("1234567890").id("5cb3d6f4-62cb-41c9-b964-ba7d9df79e4e").build(), - Port.builder().state(State.ACTIVE).networkId("1234567890").name("jclouds-test").tenantId("1234567890").id("5d51d012-3491-4db7-b1b5-6f254015015d").build(), - Port.builder().state(State.ACTIVE).networkId("1234567890").name("wibble").tenantId("1234567890").id("5f9cf7dc-22ca-4097-8e49-1cc8b23faf17").build(), - Port.builder().state(State.ACTIVE).networkId("1234567890").name("jclouds-test").tenantId("1234567890").id("6319ecad-6bff-48b2-9b53-02ede8cb7588").build(), - Port.builder().state(State.ACTIVE).networkId("1234567890").name("jclouds-test").tenantId("1234567890").id("6ba4c788-661f-49ab-9bf8-5f10cbbb2f57").build(), - Port.builder().state(State.ACTIVE).networkId("1234567890").name("jclouds-test").tenantId("1234567890").id("74ed170b-5069-4353-ab38-9719766dc57e").build(), - Port.builder().state(State.ACTIVE).networkId("1234567890").name("wibble").tenantId("1234567890").id("b71fcac1-e864-4031-8c5b-edbecd9ece36").build(), - Port.builder().state(State.ACTIVE).networkId("1234567890").name("jclouds-test").tenantId("1234567890").id("c7681895-d84d-4650-9ca0-82c72036b855").build() - ); - } - - protected Set<Port> createBulkReturns2xxResponse() { - return ImmutableSet.of( - Port.builder().id("1").tenantId("1").name("test-port-1").networkId("1").build(), - Port.builder().id("2").tenantId("1").name("test-port-2").networkId("2").build() - ); - } - -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/83b104d9/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/PortApiLiveTest.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/PortApiLiveTest.java b/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/PortApiLiveTest.java deleted file mode 100644 index 3b6f93a..0000000 --- a/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/PortApiLiveTest.java +++ /dev/null @@ -1,157 +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.openstack.neutron.v2_0.features; - -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertTrue; - -import java.util.Set; - -import org.jclouds.openstack.neutron.v2_0.domain.BulkPort; -import org.jclouds.openstack.neutron.v2_0.domain.IP; -import org.jclouds.openstack.neutron.v2_0.domain.NetworkType; -import org.jclouds.openstack.neutron.v2_0.domain.Port; -import org.jclouds.openstack.neutron.v2_0.domain.ReferenceWithName; -import org.jclouds.openstack.neutron.v2_0.internal.BaseNeutronApiLiveTest; -import org.jclouds.openstack.neutron.v2_0.options.CreateNetworkOptions; -import org.jclouds.openstack.neutron.v2_0.options.CreatePortBulkOptions; -import org.jclouds.openstack.neutron.v2_0.options.CreatePortOptions; -import org.jclouds.openstack.neutron.v2_0.options.CreateSubnetOptions; -import org.jclouds.openstack.neutron.v2_0.options.UpdatePortOptions; -import org.jclouds.openstack.neutron.v2_0.util.PredicateUtil; -import org.testng.annotations.Test; - -import com.google.common.base.Predicate; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Sets; - -/** - * Tests PortApi in combination with the Network & SubnetApi - * - */ -@Test(groups = "live", testName = "PortApiLiveTest", singleThreaded = true) -public class PortApiLiveTest extends BaseNeutronApiLiveTest { - - public void testGetAndListPorts() { - for (String zone : api.getConfiguredZones()) { - Set<? extends ReferenceWithName> references = api.getPortApiForZone(zone).list().concat().toSet(); - Set<? extends Port> ports = api.getPortApiForZone(zone).listInDetail().concat().toSet(); - - assertNotNull(references); - assertNotNull(ports); - assertEquals(references.size(), ports.size()); - - for (Port port : ports) { - assertNotNull(port.getName()); - assertTrue(references.contains(ReferenceWithName.builder().id(port.getId()).tenantId(port.getTenantId()).name(port.getName()).build())); - - Port retrievedPort = api.getPortApiForZone(zone).get(port.getId()); - assertEquals(port, retrievedPort); - } - } - } - - public void testCreateUpdateAndDeletePort() { - for (String zone : api.getConfiguredZones()) { - NetworkApi networkApi = api.getNetworkApiForZone(zone); - SubnetApi subnetApi = api.getSubnetApiForZone(zone); - PortApi portApi = api.getPortApiForZone(zone); - String networkId = networkApi.create(CreateNetworkOptions.builder().name("JClouds-Live-Network").networkType(NetworkType.LOCAL).build()).getId(); - String ipv4SubnetId = subnetApi.create(networkId, 4, "198.51.100.0/24", CreateSubnetOptions.builder().name("JClouds-Live-IPv4-Subnet").build()).getId(); - String ipv6SubnetId = subnetApi.create(networkId, 6, "a1ca:1e1:c:107d::/96", CreateSubnetOptions.builder().name("JClouds-Live-IPv6-Subnet").build()).getId(); - - assertNotNull(networkId); - assertNotNull(ipv4SubnetId); - assertNotNull(ipv6SubnetId); - - String ipv4PortId = portApi.create(networkId, CreatePortOptions.builder().name("JClouds-Live-IPv4-Port").fixedIps(getFixedAddresses(ipv4SubnetId)).build()).getId(); - String ipv6PortId = portApi.create(networkId, CreatePortOptions.builder().name("JClouds-Live-IPv6-Port").fixedIps(getFixedAddresses(ipv6SubnetId)).build()).getId(); - - assertNotNull(ipv4PortId); - assertNotNull(ipv6PortId); - - Port ipv4Port = portApi.get(ipv4PortId); - assertNotNull(ipv4Port); - assertEquals(ipv4Port.getId(), ipv4PortId); - assertEquals(ipv4Port.getName(), "JClouds-Live-IPv4-Port"); - - Port ipv6Port = portApi.get(ipv6PortId); - assertNotNull(ipv6Port); - assertEquals(ipv6Port.getId(), ipv6PortId); - assertEquals(ipv6Port.getName(), "JClouds-Live-IPv6-Port"); - - assertTrue(portApi.update(ipv4PortId, UpdatePortOptions.builder().name("Updated").build())); - Port updatedIpv4Port = portApi.get(ipv4PortId); - assertEquals(updatedIpv4Port.getName(), "Updated"); - - assertTrue(portApi.delete(ipv4PortId)); - assertTrue(portApi.delete(ipv6PortId)); - assertTrue(subnetApi.delete(ipv4SubnetId)); - assertTrue(subnetApi.delete(ipv6SubnetId)); - assertTrue(networkApi.delete(networkId)); - } - } - - public void testBulkCreatePort() { - for (String zone : api.getConfiguredZones()) { - NetworkApi networkApi = api.getNetworkApiForZone(zone); - SubnetApi subnetApi = api.getSubnetApiForZone(zone); - PortApi portApi = api.getPortApiForZone(zone); - - String networkId = networkApi.create(CreateNetworkOptions.builder().name("JClouds-Live-Network").networkType(NetworkType.LOCAL).build()).getId(); - String ipv4SubnetId = subnetApi.create(networkId, 4, "198.51.100.0/24", CreateSubnetOptions.builder().name("JClouds-Live-IPv4-Subnet").build()).getId(); - String ipv6SubnetId = subnetApi.create(networkId, 6, "a1ca:1e1:c:107d::/96", CreateSubnetOptions.builder().name("JClouds-Live-IPv6-Subnet").build()).getId(); - - assertNotNull(networkId); - assertNotNull(ipv4SubnetId); - assertNotNull(ipv6SubnetId); - - Set<? extends Port> ports = portApi.createBulk( - CreatePortBulkOptions.builder().ports( - ImmutableSet.of( - BulkPort.builder().networkId(networkId).name("JClouds-Live-IPv4-Subnet-1").fixedIps(getFixedAddresses(ipv4SubnetId)).build(), - BulkPort.builder().networkId(networkId).name("JClouds-Live-IPv4-Subnet-2").fixedIps(getFixedAddresses(ipv4SubnetId)).build(), - BulkPort.builder().networkId(networkId).name("JClouds-Live-IPv6-Subnet-1").fixedIps(getFixedAddresses(ipv6SubnetId)).build(), - BulkPort.builder().networkId(networkId).name("JClouds-Live-IPv6-Subnet-2").fixedIps(getFixedAddresses(ipv6SubnetId)).build() - ) - ).build() - ).toSet(); - Set<? extends Port> existingPorts = portApi.listInDetail().concat().toSet(); - - assertNotNull(ports); - assertFalse(ports.isEmpty()); - assertEquals(ports.size(), 4); - - for (Port port : ports) { - Predicate<Port> idEqualsPredicate = PredicateUtil.createIdEqualsPredicate(port.getId()); - assertEquals(1, Sets.filter(existingPorts, idEqualsPredicate).size()); - assertTrue(portApi.delete(port.getId())); - } - assertTrue(subnetApi.delete(ipv4SubnetId)); - assertTrue(subnetApi.delete(ipv6SubnetId)); - assertTrue(networkApi.delete(networkId)); - } - } - - public Set<IP> getFixedAddresses(String subnetId) { - return ImmutableSet.of( - IP.builder().subnetId(subnetId).build() - ); - } -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/83b104d9/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/SubnetApiExpectTest.java ---------------------------------------------------------------------- diff --git a/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/SubnetApiExpectTest.java b/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/SubnetApiExpectTest.java deleted file mode 100644 index bb40fc3..0000000 --- a/apis/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/SubnetApiExpectTest.java +++ /dev/null @@ -1,253 +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.openstack.neutron.v2_0.features; - -import static javax.ws.rs.core.MediaType.APPLICATION_JSON; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertTrue; - -import java.util.Set; - -import org.jclouds.http.HttpResponse; -import org.jclouds.openstack.neutron.v2_0.domain.BulkSubnet; -import org.jclouds.openstack.neutron.v2_0.domain.ReferenceWithName; -import org.jclouds.openstack.neutron.v2_0.domain.Subnet; -import org.jclouds.openstack.neutron.v2_0.internal.BaseNeutronApiExpectTest; -import org.jclouds.openstack.neutron.v2_0.options.CreateSubnetBulkOptions; -import org.jclouds.openstack.neutron.v2_0.options.CreateSubnetOptions; -import org.jclouds.openstack.neutron.v2_0.options.UpdateSubnetOptions; -import org.jclouds.openstack.neutron.v2_0.parse.ParseSubnetTest; -import org.jclouds.rest.AuthorizationException; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableSet; - -/** - * Tests parsing and Guice wiring of SubnetApi - */ -@Test(groups = "unit", testName = "SubnetApiExpectTest") -public class SubnetApiExpectTest extends BaseNeutronApiExpectTest { - - private static final String ZONE = "region-a.geo-1"; - - public void testListReferencesReturns2xx() { - SubnetApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/subnets").addQueryParam("fields", "id", "tenant_id", "name").build(), - HttpResponse.builder().statusCode(200).payload(payloadFromResourceWithContentType("/list_subnets.json", APPLICATION_JSON)).build()) - .getSubnetApiForZone(ZONE); - - Set<? extends ReferenceWithName> references = api.list().concat().toSet(); - assertEquals(references, listOfReferencesWithNames()); - } - - public void testListReferencesReturns4xx() { - SubnetApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/subnets").addQueryParam("fields", "id", "tenant_id", "name").build(), - HttpResponse.builder().statusCode(404).build()) - .getSubnetApiForZone(ZONE); - - assertTrue(api.list().concat().isEmpty()); - } - - public void testListReturns2xx() { - SubnetApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/subnets").build(), - HttpResponse.builder().statusCode(200).payload(payloadFromResourceWithContentType("/list_subnets.json", APPLICATION_JSON)).build()) - .getSubnetApiForZone(ZONE); - - Set<? extends Subnet> subnets = api.listInDetail().concat().toSet(); - assertEquals(subnets, listOfSubnets()); - } - - public void testListReturns4xx() { - SubnetApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/subnets").build(), - HttpResponse.builder().statusCode(404).build()) - .getSubnetApiForZone(ZONE); - - assertTrue(api.listInDetail().concat().isEmpty()); - } - - public void testGetReturns2xx() { - SubnetApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/subnets/624312ff-d14b-4ba3-9834-1c78d23d574d").build(), - HttpResponse.builder().statusCode(200).payload(payloadFromResourceWithContentType("/subnet.json", APPLICATION_JSON)).build()) - .getSubnetApiForZone(ZONE); - - Subnet subnet = api.get("624312ff-d14b-4ba3-9834-1c78d23d574d"); - assertEquals(subnet, new ParseSubnetTest().expected()); - } - - public void testGetReturns4xx() { - SubnetApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/subnets/624312ff-d14b-4ba3-9834-1c78d23d574d").build(), - HttpResponse.builder().statusCode(404).build()) - .getSubnetApiForZone(ZONE); - - assertNull(api.get("624312ff-d14b-4ba3-9834-1c78d23d574d")); - } - - public void testCreateReturns2xx() { - SubnetApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/subnets").method("POST") - .payload(payloadFromStringWithContentType("{\"subnet\":{\"network_id\":\"1234567890\",\"ip_version\":4,\"cidr\":\"10.0.3.0/24\",\"name\":\"subnet-test\"}}", APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(200).payload(payloadFromStringWithContentType("{\"subnet\":{\"id\":\"12345\",\"tenant_id\":\"6789\",\"network_id\":\"1234567890\",\"ip_version\":4,\"cidr\":\"10.0.3.0/24\",\"name\":\"subnet-test\"}}", APPLICATION_JSON)).build()) - .getSubnetApiForZone(ZONE); - - Subnet net = api.create("1234567890", 4, "10.0.3.0/24", CreateSubnetOptions.builder().name("subnet-test").build()); - assertEquals(net, Subnet.builder().id("12345").tenantId("6789").name("subnet-test").networkId("1234567890").ipVersion(4).cidr("10.0.3.0/24").build()); - } - - @Test(expectedExceptions = AuthorizationException.class) - public void testCreateReturns4xx() { - SubnetApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/subnets").method("POST") - .payload(payloadFromStringWithContentType("{\"subnet\":{\"network_id\":\"1234567890\",\"ip_version\":4,\"cidr\":\"10.0.3.0/24\",\"name\":\"subnet-test\"}}", APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(401).build()) - .getSubnetApiForZone(ZONE); - - api.create("1234567890", 4, "10.0.3.0/24", CreateSubnetOptions.builder().name("subnet-test").build()); - } - - public void testCreateBulkReturns2xx() { - SubnetApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/subnets").method("POST") - .payload(payloadFromStringWithContentType( - "{\"subnets\":[" + - "{\"network_id\":\"1234567890\",\"ip_version\":4,\"cidr\":\"10.0.3.0/24\",\"name\":\"subnet-test\"}," + - "{\"network_id\":\"9876543210\",\"ip_version\":4,\"cidr\":\"192.168.3.0/24\",\"name\":\"subnet-test-2\"}" + - "]}", APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(200).payload(payloadFromStringWithContentType( - "{\"subnets\":[" + - "{\"id\":\"1\",\"tenant_id\":\"1\",\"network_id\":\"1234567890\",\"ip_version\":4,\"cidr\":\"10.0.3.0/24\",\"name\":\"subnet-test\"}," + - "{\"id\":\"2\",\"tenant_id\":\"1\",\"network_id\":\"9876543210\",\"ip_version\":4,\"cidr\":\"192.168.3.0/24\",\"name\":\"subnet-test-2\"}" + - "]}", APPLICATION_JSON)).build()) - .getSubnetApiForZone(ZONE); - - Set<? extends Subnet> nets = api.createBulk( - CreateSubnetBulkOptions.builder().subnets( - ImmutableList.of( - BulkSubnet.builder().networkId("1234567890").ipVersion(4).cidr("10.0.3.0/24").name("subnet-test").build(), - BulkSubnet.builder().networkId("9876543210").ipVersion(4).cidr("192.168.3.0/24").name("subnet-test-2").build() - ) - ).build() - ).toSet(); - assertEquals(nets, createBulkReturns2xxResponse()); - } - - @Test(expectedExceptions = AuthorizationException.class) - public void testCreateBulkReturns4xx() { - SubnetApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/subnets").method("POST") - .payload(payloadFromStringWithContentType( - "{\"subnets\":[" + - "{\"network_id\":\"1234567890\",\"ip_version\":4,\"cidr\":\"10.0.3.0/24\",\"name\":\"subnet-test\"}," + - "{\"network_id\":\"9876543210\",\"ip_version\":4,\"cidr\":\"192.168.3.0/24\",\"name\":\"subnet-test-2\"}" + - "]}", APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(401).build()) - .getSubnetApiForZone(ZONE); - - api.createBulk( - CreateSubnetBulkOptions.builder().subnets( - ImmutableList.of( - BulkSubnet.builder().networkId("1234567890").ipVersion(4).cidr("10.0.3.0/24").name("subnet-test").build(), - BulkSubnet.builder().networkId("9876543210").ipVersion(4).cidr("192.168.3.0/24").name("subnet-test-2").build() - ) - ).build() - ); - } - - public void testUpdateReturns2xx() { - SubnetApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/subnets/12345").method("PUT") - .payload(payloadFromStringWithContentType("{\"subnet\":{\"name\":\"another-test\",\"gateway_ip\":\"13.13.13.13\"}}", APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(200).build()) - .getSubnetApiForZone(ZONE); - - assertTrue(api.update("12345", UpdateSubnetOptions.builder().name("another-test").gatewayIp("13.13.13.13").build())); - } - - public void testUpdateReturns4xx() { - SubnetApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/subnets/12345").method("PUT") - .payload(payloadFromStringWithContentType("{\"subnet\":{\"name\":\"another-test\",\"gateway_ip\":\"13.13.13.13\"}}", APPLICATION_JSON)).build(), - HttpResponse.builder().statusCode(404).build()) - .getSubnetApiForZone(ZONE); - - assertFalse(api.update("12345", UpdateSubnetOptions.builder().name("another-test").gatewayIp("13.13.13.13").build())); - } - - public void testDeleteReturns2xx() { - SubnetApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/subnets/12345").method("DELETE").build(), - HttpResponse.builder().statusCode(200).build()) - .getSubnetApiForZone(ZONE); - - assertTrue(api.delete("12345")); - } - - @Test(expectedExceptions = AuthorizationException.class) - public void testDeleteReturns4xx() { - SubnetApi api = requestsSendResponses( - keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, - authenticatedGET().endpoint(endpoint + "/subnets/12345").method("DELETE").build(), - HttpResponse.builder().statusCode(403).build()) - .getSubnetApiForZone(ZONE); - - api.delete("12345"); - } - - protected Set<Subnet> listOfSubnets() { - return ImmutableSet.of( - Subnet.builder().ipVersion(4).cidr("10.0.3.0/24").networkId("1234567890").name("jclouds-test").tenantId("1234567890").id("16dba3bc-f3fa-4775-afdc-237e12c72f6a").build(), - Subnet.builder().ipVersion(4).cidr("10.0.3.0/24").networkId("1234567890").name("wibble").tenantId("1234567890").id("1a104cf5-cb18-4d35-9407-2fd2646d9d0b").build(), - Subnet.builder().ipVersion(4).cidr("10.0.3.0/24").networkId("1234567890").name("jclouds-test").tenantId("1234567890").id("31083ae2-420d-48b2-ac98-9f7a4fd8dbdc").build(), - Subnet.builder().ipVersion(4).cidr("10.0.3.0/24").networkId("1234567890").name("jclouds-test").tenantId("1234567890").id("49c6d6fa-ff2a-459d-b975-75a8d31c9a89").build(), - Subnet.builder().ipVersion(4).cidr("10.0.3.0/24").networkId("1234567890").name("wibble").tenantId("1234567890").id("5cb3d6f4-62cb-41c9-b964-ba7d9df79e4e").build(), - Subnet.builder().ipVersion(4).cidr("10.0.3.0/24").networkId("1234567890").name("jclouds-test").tenantId("1234567890").id("5d51d012-3491-4db7-b1b5-6f254015015d").build(), - Subnet.builder().ipVersion(4).cidr("10.0.3.0/24").networkId("1234567890").name("wibble").tenantId("1234567890").id("5f9cf7dc-22ca-4097-8e49-1cc8b23faf17").build(), - Subnet.builder().ipVersion(4).cidr("10.0.3.0/24").networkId("1234567890").name("jclouds-test").tenantId("1234567890").id("6319ecad-6bff-48b2-9b53-02ede8cb7588").build(), - Subnet.builder().ipVersion(4).cidr("10.0.3.0/24").networkId("1234567890").name("jclouds-test").tenantId("1234567890").id("6ba4c788-661f-49ab-9bf8-5f10cbbb2f57").build(), - Subnet.builder().ipVersion(4).cidr("10.0.3.0/24").networkId("1234567890").name("jclouds-test").tenantId("1234567890").id("74ed170b-5069-4353-ab38-9719766dc57e").build(), - Subnet.builder().ipVersion(4).cidr("10.0.3.0/24").networkId("1234567890").name("wibble").tenantId("1234567890").id("b71fcac1-e864-4031-8c5b-edbecd9ece36").build(), - Subnet.builder().ipVersion(4).cidr("10.0.3.0/24").networkId("1234567890").name("jclouds-test").tenantId("1234567890").id("c7681895-d84d-4650-9ca0-82c72036b855").build() - ); - } - - protected Set<Subnet> createBulkReturns2xxResponse() { - return ImmutableSet.of( - Subnet.builder().id("1").tenantId("1").name("subnet-test").networkId("1234567890").ipVersion(4).cidr("10.0.3.0/24").build(), - Subnet.builder().id("2").tenantId("1").name("subnet-test-2").networkId("9876543210").ipVersion(4).cidr("192.168.3.0/24").build() - ); - } -}
