Repository: jclouds-labs-openstack Updated Branches: refs/heads/master c9ff49a1b -> 57a9087fe
http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/57a9087f/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/extensions/RouterApiLiveTest.java ---------------------------------------------------------------------- diff --git a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/extensions/RouterApiLiveTest.java b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/extensions/RouterApiLiveTest.java new file mode 100644 index 0000000..19fa1cf --- /dev/null +++ b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/extensions/RouterApiLiveTest.java @@ -0,0 +1,192 @@ +/** + * Licensed to jclouds, Inc. (jclouds) under one or more + * contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. jclouds 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 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; + +import java.util.Set; + +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.assertTrue; + +/** + * Tests parsing and Guice wiring of RouterApi + * + * @author Nick Livens + */ +@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-labs-openstack/blob/57a9087f/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/NetworkApiLiveTest.java ---------------------------------------------------------------------- diff --git a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/NetworkApiLiveTest.java b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/NetworkApiLiveTest.java index e8e1f79..6950a89 100644 --- a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/NetworkApiLiveTest.java +++ b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/NetworkApiLiveTest.java @@ -16,7 +16,9 @@ */ package org.jclouds.openstack.neutron.v2_0.features; +import com.google.common.base.Predicate; import com.google.common.collect.ImmutableList; +import com.google.common.collect.Sets; 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; @@ -25,6 +27,8 @@ 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 java.util.Set; @@ -37,6 +41,7 @@ import static org.testng.Assert.assertTrue; * * @author Nick Livens */ +@Test(groups = "live", testName = "NetworkApiLiveTest") public class NetworkApiLiveTest extends BaseNeutronApiLiveTest { public void testGetAndListNetworks() { @@ -107,7 +112,8 @@ public class NetworkApiLiveTest extends BaseNeutronApiLiveTest { assertEquals(nets.size(), 3); for (Network net : nets) { - assertTrue(existingNets.contains(net)); + 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-labs-openstack/blob/57a9087f/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/PortApiLiveTest.java ---------------------------------------------------------------------- diff --git a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/PortApiLiveTest.java b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/PortApiLiveTest.java index 7aed04c..1a368b3 100644 --- a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/PortApiLiveTest.java +++ b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/PortApiLiveTest.java @@ -16,31 +16,37 @@ */ package org.jclouds.openstack.neutron.v2_0.features; -import com.google.common.collect.ImmutableSet; +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.ReferenceWithName; 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 java.util.Set; - -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 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 * * @author Nick Livens */ +@Test(groups = "live", testName = "PortApiLiveTest") public class PortApiLiveTest extends BaseNeutronApiLiveTest { public void testGetAndListPorts() { @@ -134,7 +140,8 @@ public class PortApiLiveTest extends BaseNeutronApiLiveTest { assertEquals(ports.size(), 4); for (Port port : ports) { - assertTrue(existingPorts.contains(port)); + Predicate<Port> idEqualsPredicate = PredicateUtil.createIdEqualsPredicate(port.getId()); + assertEquals(1, Sets.filter(existingPorts, idEqualsPredicate).size()); assertTrue(portApi.delete(port.getId())); } assertTrue(subnetApi.delete(ipv4SubnetId)); http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/57a9087f/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/SubnetApiLiveTest.java ---------------------------------------------------------------------- diff --git a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/SubnetApiLiveTest.java b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/SubnetApiLiveTest.java index 549114c..bd3574f 100644 --- a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/SubnetApiLiveTest.java +++ b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/features/SubnetApiLiveTest.java @@ -16,8 +16,12 @@ */ package org.jclouds.openstack.neutron.v2_0.features; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableSet; +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.AllocationPool; import org.jclouds.openstack.neutron.v2_0.domain.BulkSubnet; import org.jclouds.openstack.neutron.v2_0.domain.HostRoute; @@ -29,18 +33,20 @@ import org.jclouds.openstack.neutron.v2_0.options.CreateNetworkOptions; 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.util.PredicateUtil; +import org.testng.annotations.Test; -import java.util.Set; - -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertTrue; +import com.google.common.base.Predicate; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Sets; /** * Tests subnet api in combination with the network api * * @author Nick Livens */ +@Test(groups = "live", testName = "SubnetApiLiveTest") public class SubnetApiLiveTest extends BaseNeutronApiLiveTest { public void testGetAndListSubnets() { @@ -124,7 +130,8 @@ public class SubnetApiLiveTest extends BaseNeutronApiLiveTest { assertEquals(subnets.size(), 3); for (Subnet net : subnets) { - assertTrue(existingSubnets.contains(net)); + Predicate<Subnet> idEqualsPredicate = PredicateUtil.createIdEqualsPredicate(net.getId()); + assertEquals(1, Sets.filter(existingSubnets, idEqualsPredicate).size()); assertTrue(subnetApi.delete(net.getId())); } assertTrue(networkApi.delete(networkId)); http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/57a9087f/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/parse/ParseRouterTest.java ---------------------------------------------------------------------- diff --git a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/parse/ParseRouterTest.java b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/parse/ParseRouterTest.java new file mode 100644 index 0000000..59b829f --- /dev/null +++ b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/parse/ParseRouterTest.java @@ -0,0 +1,55 @@ +/** + * Licensed to jclouds, Inc. (jclouds) under one or more + * contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. jclouds 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.parse; + +import org.jclouds.json.BaseItemParserTest; +import org.jclouds.openstack.neutron.v2_0.domain.ExternalGatewayInfo; +import org.jclouds.openstack.neutron.v2_0.domain.Router; +import org.jclouds.openstack.neutron.v2_0.domain.State; +import org.jclouds.rest.annotations.SelectJson; +import org.testng.annotations.Test; + +import javax.ws.rs.Consumes; +import javax.ws.rs.core.MediaType; + +/** + * @author Nick Livens + */ +@Test(groups = "unit", testName = "ParseRouterTest") +public class ParseRouterTest extends BaseItemParserTest<Router> { + + @Override + public String resource() { + return "/router.json"; + } + + @Override + @SelectJson("router") + @Consumes(MediaType.APPLICATION_JSON) + public Router expected() { + return Router.builder() + .externalGatewayInfo(ExternalGatewayInfo.builder().networkId("624312ff-d14b-4ba3-9834-1c78d23d574d").build()) + .state(State.ACTIVE) + .name("jclouds-wibble") + .tenantId("1234567890") + .id("16dba3bc-f3fa-4775-afdc-237e12c72f6a") + .build(); + } + +} http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/57a9087f/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/util/ClassUtil.java ---------------------------------------------------------------------- diff --git a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/util/ClassUtil.java b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/util/ClassUtil.java new file mode 100644 index 0000000..a034fb5 --- /dev/null +++ b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/util/ClassUtil.java @@ -0,0 +1,43 @@ +/** + * Licensed to jclouds, Inc. (jclouds) under one or more + * contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. jclouds 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.util; + +import java.lang.reflect.Field; + +/** + * @author Nick Livens + */ +public class ClassUtil { + + public static Field findField(Class clazz, String fieldName) { + Field fieldToFind = null; + if (clazz.getSuperclass() != null) + fieldToFind = findField(clazz.getSuperclass(), fieldName); + + if (fieldToFind != null) + return fieldToFind; + + for (Field field : clazz.getDeclaredFields()) { + if (field.getName().equals(fieldName)) + return field; + } + return null; + } + +} http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/57a9087f/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/util/PredicateUtil.java ---------------------------------------------------------------------- diff --git a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/util/PredicateUtil.java b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/util/PredicateUtil.java new file mode 100644 index 0000000..27bef32 --- /dev/null +++ b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2_0/util/PredicateUtil.java @@ -0,0 +1,51 @@ +/** + * Licensed to jclouds, Inc. (jclouds) under one or more + * contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. jclouds 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.util; + +import com.google.common.base.Predicate; +import org.jclouds.javax.annotation.Nullable; + +import java.lang.reflect.Field; + +/** + * @author Nick Livens + */ +public class PredicateUtil { + + public static <T> Predicate<T> createIdEqualsPredicate(final String id) { + return new Predicate<T>() { + @Override + public boolean apply(@Nullable T input) { + if (input == null) return false; + + try { + Class clazz = input.getClass(); + Field field = ClassUtil.findField(clazz, "id"); + field.setAccessible(true); + String value = (String) field.get(input); + field.setAccessible(false); + return value != null && value.equals(id); + } catch (IllegalAccessException iae) { + return false; + } + } + }; + } + +} http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/57a9087f/openstack-neutron/src/test/resources/list_routers.json ---------------------------------------------------------------------- diff --git a/openstack-neutron/src/test/resources/list_routers.json b/openstack-neutron/src/test/resources/list_routers.json new file mode 100644 index 0000000..0e5b95d --- /dev/null +++ b/openstack-neutron/src/test/resources/list_routers.json @@ -0,0 +1,74 @@ +{"routers":[ + { + "status":"ACTIVE", + "name":"jclouds-test", + "tenant_id":"1234567890", + "id":"16dba3bc-f3fa-4775-afdc-237e12c72f6a" + }, + { + "status":"ACTIVE", + "name":"wibble", + "tenant_id":"1234567890", + "id":"1a104cf5-cb18-4d35-9407-2fd2646d9d0b" + }, + { + "status":"ACTIVE", + "name":"jclouds-test", + "tenant_id":"1234567890", + "id":"31083ae2-420d-48b2-ac98-9f7a4fd8dbdc" + }, + { + "status":"ACTIVE", + "name":"jclouds-test", + "tenant_id":"1234567890", + "id":"49c6d6fa-ff2a-459d-b975-75a8d31c9a89" + }, + { + "status":"ACTIVE", + "name":"wibble", + "tenant_id":"1234567890", + "id":"5cb3d6f4-62cb-41c9-b964-ba7d9df79e4e" + }, + { + "status":"ACTIVE", + "name":"jclouds-test", + "tenant_id":"1234567890", + "id":"5d51d012-3491-4db7-b1b5-6f254015015d" + }, + { + "status":"ACTIVE", + "name":"wibble", + "tenant_id":"1234567890", + "id":"5f9cf7dc-22ca-4097-8e49-1cc8b23faf17" + }, + { + "status":"ACTIVE", + "name":"jclouds-test", + "tenant_id":"1234567890", + "id":"6319ecad-6bff-48b2-9b53-02ede8cb7588" + }, + { + "status":"ACTIVE", + "name":"jclouds-test", + "tenant_id":"1234567890", + "id":"6ba4c788-661f-49ab-9bf8-5f10cbbb2f57" + }, + { + "status":"ACTIVE", + "name":"jclouds-test", + "tenant_id":"1234567890", + "id":"74ed170b-5069-4353-ab38-9719766dc57e" + }, + { + "status":"ACTIVE", + "name":"wibble", + "tenant_id":"1234567890", + "id":"b71fcac1-e864-4031-8c5b-edbecd9ece36" + }, + { + "status":"ACTIVE", + "name":"jclouds-test", + "tenant_id":"1234567890", + "id":"c7681895-d84d-4650-9ca0-82c72036b855" + } +]} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/57a9087f/openstack-neutron/src/test/resources/router.json ---------------------------------------------------------------------- diff --git a/openstack-neutron/src/test/resources/router.json b/openstack-neutron/src/test/resources/router.json new file mode 100644 index 0000000..0b45db9 --- /dev/null +++ b/openstack-neutron/src/test/resources/router.json @@ -0,0 +1,7 @@ +{"router":{ + "status":"ACTIVE", + "external_gateway_info":{"network_id":"624312ff-d14b-4ba3-9834-1c78d23d574d"}, + "name":"jclouds-wibble", + "tenant_id":"1234567890", + "id":"16dba3bc-f3fa-4775-afdc-237e12c72f6a" +}} \ No newline at end of file
