http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/NetworkConnectionHandlerTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/NetworkConnectionHandlerTest.java b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/NetworkConnectionHandlerTest.java new file mode 100644 index 0000000..7895c81 --- /dev/null +++ b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/NetworkConnectionHandlerTest.java @@ -0,0 +1,55 @@ +/* + * 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.vcloud.xml; + +import static org.testng.Assert.assertEquals; + +import java.io.InputStream; +import java.net.UnknownHostException; + +import org.jclouds.http.functions.BaseHandlerTest; +import org.jclouds.vcloud.domain.NetworkConnection; +import org.jclouds.vcloud.domain.network.IpAddressAllocationMode; +import org.testng.annotations.Test; + +/** + * Tests behavior of {@code NetworkConnectionHandler} + */ +// NOTE:without testName, this will not call @Before* and fail w/NPE during surefire +@Test(groups = "unit", testName = "NetworkConnectionHandlerTest") +public class NetworkConnectionHandlerTest extends BaseHandlerTest { + + public void testDefault() throws UnknownHostException { + InputStream is = getClass().getResourceAsStream("/networkconnection.xml"); + + NetworkConnection result = factory.create(injector.getInstance(NetworkConnectionHandler.class)).parse(is); + + checkNetworkConnection(result); + + } + + @Test(enabled = false) + public static void checkNetworkConnection(NetworkConnection result) { + assertEquals(result.getNetwork(), "internet01"); + assertEquals(result.getNetworkConnectionIndex(), 0); + assertEquals(result.getIpAddress(), "174.47.101.164"); + assertEquals(result.getExternalIpAddress(), null); + assertEquals(result.isConnected(), true); + assertEquals(result.getMACAddress(), "00:50:56:01:01:f2"); + assertEquals(result.getIpAddressAllocationMode(), IpAddressAllocationMode.POOL); + } +}
http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/NetworkConnectionSectionHandlerTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/NetworkConnectionSectionHandlerTest.java b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/NetworkConnectionSectionHandlerTest.java new file mode 100644 index 0000000..632981e --- /dev/null +++ b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/NetworkConnectionSectionHandlerTest.java @@ -0,0 +1,61 @@ +/* + * 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.vcloud.xml; + +import static org.testng.Assert.assertEquals; + +import java.io.InputStream; +import java.net.URI; + +import org.jclouds.http.functions.ParseSax; +import org.jclouds.http.functions.ParseSax.Factory; +import org.jclouds.http.functions.config.SaxParserModule; +import org.jclouds.vcloud.VCloudMediaType; +import org.jclouds.vcloud.domain.NetworkConnectionSection; +import org.jclouds.vcloud.domain.internal.ReferenceTypeImpl; +import org.testng.annotations.Test; + +import com.google.common.collect.Iterables; +import com.google.inject.Guice; +import com.google.inject.Injector; + +/** + * Tests behavior of {@code NetworkConnectionSectionHandler} + */ +@Test(groups = "unit") +public class NetworkConnectionSectionHandlerTest { + public void testVCloud1_0() { + InputStream is = getClass().getResourceAsStream("/networkconnectionsection.xml"); + Injector injector = Guice.createInjector(new SaxParserModule()); + Factory factory = injector.getInstance(ParseSax.Factory.class); + NetworkConnectionSection result = factory.create(injector.getInstance(NetworkConnectionSectionHandler.class)) + .parse(is); + checkNetworkConnectionSection(result); + } + + @Test(enabled = false) + static void checkNetworkConnectionSection(NetworkConnectionSection result) { + assertEquals(result.getHref(), URI + .create("https://vcenterprise.bluelock.com/api/v1.0/vApp/vm-2087535248/networkConnectionSection/")); + assertEquals(result.getType(), VCloudMediaType.NETWORKCONNECTIONSECTION_XML); + assertEquals(result.getInfo(), "Specifies the available VM network connections"); + assertEquals(result.getPrimaryNetworkConnectionIndex(), Integer.valueOf(0)); + assertEquals(result.getEdit(), new ReferenceTypeImpl(null, VCloudMediaType.NETWORKCONNECTIONSECTION_XML, URI + .create("https://vcenterprise.bluelock.com/api/v1.0/vApp/vm-2087535248/networkConnectionSection/"))); + NetworkConnectionHandlerTest.checkNetworkConnection(Iterables.getOnlyElement(result.getConnections())); + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/OrgHandlerTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/OrgHandlerTest.java b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/OrgHandlerTest.java new file mode 100644 index 0000000..6c56e66 --- /dev/null +++ b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/OrgHandlerTest.java @@ -0,0 +1,122 @@ +/* + * 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.vcloud.xml; + +import static org.jclouds.vcloud.VCloudMediaType.CATALOG_XML; +import static org.jclouds.vcloud.VCloudMediaType.TASKSLIST_XML; +import static org.testng.Assert.assertEquals; + +import java.io.InputStream; +import java.net.URI; + +import org.jclouds.http.functions.ParseSax; +import org.jclouds.http.functions.ParseSax.Factory; +import org.jclouds.http.functions.config.SaxParserModule; +import org.jclouds.vcloud.VCloudMediaType; +import org.jclouds.vcloud.domain.Org; +import org.jclouds.vcloud.domain.ReferenceType; +import org.jclouds.vcloud.domain.Task; +import org.jclouds.vcloud.domain.internal.OrgImpl; +import org.jclouds.vcloud.domain.internal.ReferenceTypeImpl; +import org.testng.annotations.Test; + +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; +import com.google.inject.Guice; +import com.google.inject.Injector; + +/** + * Tests behavior of {@code OrgHandler} + */ +@Test(groups = "unit") +public class OrgHandlerTest { + + public void testApplyInputStream() { + InputStream is = getClass().getResourceAsStream("/org-1.0.xml"); + + Injector injector = Guice.createInjector(new SaxParserModule()); + Factory factory = injector.getInstance(ParseSax.Factory.class); + + Org result = factory.create(injector.getInstance(OrgHandler.class)).parse(is); + assertEquals(result.getName(), "ExampleOrg"); + assertEquals(result.getFullName(), "ExampleOrg"); + assertEquals(result.getDescription(), "Example Corp's Primary Organization."); + assertEquals(result.getHref(), URI.create("http://vcloud.example.com/api/v1.0/org/5")); + assertEquals(result.getCatalogs(), ImmutableMap.of("Main Catalog", new ReferenceTypeImpl("Main Catalog", + CATALOG_XML, URI.create("http://vcloud.example.com/api/v1.0/catalog/32")), "Shared Catalog", + new ReferenceTypeImpl("Shared Catalog", CATALOG_XML, URI + .create("http://vcloud.example.com/api/v1.0/catalog/37")))); + assertEquals(result.getVDCs(), ImmutableMap.of("ExampleVdc01", new ReferenceTypeImpl("ExampleVdc01", + VCloudMediaType.VDC_XML, URI.create("http://vcloud.example.com/api/v1.0/vdc/5")))); + assertEquals(result.getNetworks(), ImmutableMap.of("TestNetwork", new ReferenceTypeImpl("TestNetwork", + VCloudMediaType.NETWORK_XML, URI.create("http://vcloud.example.com/api/v1.0/network/14")), + "ProductionNetwork", new ReferenceTypeImpl("ProductionNetwork", VCloudMediaType.NETWORK_XML, URI + .create("http://vcloud.example.com/api/v1.0/network/54")))); + assertEquals(result.getTasksList(), new ReferenceTypeImpl(null, TASKSLIST_XML, URI + .create("http://vcloud.example.com/api/v1.0/tasksList/5"))); + } + + public void testTerremark() { + InputStream is = getClass().getResourceAsStream("/org.xml"); + + Injector injector = Guice.createInjector(new SaxParserModule()); + Factory factory = injector.getInstance(ParseSax.Factory.class); + + Org result = factory.create(injector.getInstance(OrgHandler.class)).parse(is); + assertEquals(result.getName(), "[email protected]"); + assertEquals(result.getFullName(), "[email protected]"); + assertEquals(result.getHref(), URI.create("https://services.vcloudexpress.terremark.com/api/v0.8/org/48")); + assertEquals(result.getCatalogs(), ImmutableMap.of("Miami Environment 1 Catalog", new ReferenceTypeImpl( + "Miami Environment 1 Catalog", CATALOG_XML, URI + .create("https://services.vcloudexpress.terremark.com/api/v0.8/vdc/32/catalog")))); + assertEquals(result.getVDCs(), ImmutableMap.of("Miami Environment 1", new ReferenceTypeImpl( + "Miami Environment 1", VCloudMediaType.VDC_XML, URI + .create("https://services.vcloudexpress.terremark.com/api/v0.8/vdc/32")))); + assertEquals(result.getTasksList(), new ReferenceTypeImpl("Miami Environment 1 Tasks List", TASKSLIST_XML, URI + .create("https://services.vcloudexpress.terremark.com/api/v0.8/tasksList/32"))); + } + + public void testHosting() { + InputStream is = getClass().getResourceAsStream("/org-hosting.xml"); + Injector injector = Guice.createInjector(new SaxParserModule()); + Factory factory = injector.getInstance(ParseSax.Factory.class); + Org result = factory.create(injector.getInstance(OrgHandler.class)).parse(is); + assertEquals(result.getName(), "Customer 188849"); + assertEquals(result.getFullName(), "Customer 188849"); + assertEquals(result.getHref(), URI.create("https://vcloud.safesecureweb.com/api/v0.8/org/188849")); + assertEquals(result.getCatalogs(), ImmutableMap.of("HMS Shared Catalog", new ReferenceTypeImpl( + "HMS Shared Catalog", CATALOG_XML, URI.create("https://vcloud.safesecureweb.com/api/v0.8/catalog/1")))); + assertEquals(result.getVDCs(), ImmutableMap.of("188849 Virtual DataCenter", new ReferenceTypeImpl( + "188849 Virtual DataCenter", VCloudMediaType.VDC_XML, URI + .create("https://vcloud.safesecureweb.com/api/v0.8/vdc/188849")))); + assertEquals(result.getTasksList(), new ReferenceTypeImpl("188849 Task List", TASKSLIST_XML, URI + .create("https://vcloud.safesecureweb.com/api/v0.8/tasksList/188849"))); + } + + public void testSavvis() { + InputStream is = getClass().getResourceAsStream("/org-savvis.xml"); + Injector injector = Guice.createInjector(new SaxParserModule()); + Factory factory = injector.getInstance(ParseSax.Factory.class); + Org result = factory.create(injector.getInstance(OrgHandler.class)).parse(is); + assertEquals(result, new OrgImpl("607968.0", null, null, "607968.0", "Gravitant Inc", ImmutableMap + .<String, ReferenceType> of(), ImmutableMap.<String, ReferenceType> of("GravDataCenter1(Saved)", + new ReferenceTypeImpl("GravDataCenter1(Saved)", "application/vnd.vmware.vcloud.vdc+xml", URI + .create("https://api.symphonyVPDC.savvis.net/rest/api/v0.8/org/607968.0/vdc/2826"))), + ImmutableMap.<String, ReferenceType> of(), null, ImmutableSet.<Task> of())); + + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/OrgListHandlerTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/OrgListHandlerTest.java b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/OrgListHandlerTest.java new file mode 100644 index 0000000..68bf197 --- /dev/null +++ b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/OrgListHandlerTest.java @@ -0,0 +1,55 @@ +/* + * 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.vcloud.xml; + +import static org.testng.Assert.assertEquals; + +import java.io.InputStream; +import java.net.URI; +import java.util.Map; + +import org.jclouds.http.functions.BaseHandlerTest; +import org.jclouds.vcloud.domain.ReferenceType; +import org.jclouds.vcloud.domain.internal.ReferenceTypeImpl; +import org.testng.annotations.Test; + +import com.google.common.collect.ImmutableMap; + +/** + * Tests behavior of {@code OrgListHandler} + */ +// NOTE:without testName, this will not call @Before* and fail w/NPE during surefire +@Test(groups = "unit", testName = "OrgListHandlerTest") +public class OrgListHandlerTest extends BaseHandlerTest { + + public void testApplyInputStream() { + InputStream is = getClass().getResourceAsStream("/orglist.xml"); + + Map<String, ReferenceType> result = factory.create(injector.getInstance(OrgListHandler.class)).parse(is); + assertEquals(result, ImmutableMap.of("[email protected]", new ReferenceTypeImpl("[email protected]", + "application/vnd.vmware.vcloud.org+xml", URI.create("https://services.vcloudexpress.terremark.com/api/v0.8/org/48")))); + } + + + public void testSavvis() { + InputStream is = getClass().getResourceAsStream("/orglist-savvis.xml"); + + Map<String, ReferenceType> result = factory.create(injector.getInstance(OrgListHandler.class)).parse(is); + assertEquals(result, ImmutableMap.of("SAVVISStation Integration Testing", new ReferenceTypeImpl("SAVVISStation Integration Testing", + "application/vnd.vmware.vcloud.org+xml", URI.create("https://api.sandbox.symphonyvpdc.savvis.net/rest/api/v0.8/org/100000.0")))); + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/OrgNetworkHandlerTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/OrgNetworkHandlerTest.java b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/OrgNetworkHandlerTest.java new file mode 100644 index 0000000..22b81c6 --- /dev/null +++ b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/OrgNetworkHandlerTest.java @@ -0,0 +1,102 @@ +/* + * 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.vcloud.xml; + +import static org.testng.Assert.assertEquals; + +import java.io.InputStream; +import java.net.URI; + +import org.jclouds.http.functions.ParseSax; +import org.jclouds.http.functions.ParseSax.Factory; +import org.jclouds.http.functions.config.SaxParserModule; +import org.jclouds.vcloud.VCloudMediaType; +import org.jclouds.vcloud.domain.internal.ReferenceTypeImpl; +import org.jclouds.vcloud.domain.network.DhcpService; +import org.jclouds.vcloud.domain.network.FenceMode; +import org.jclouds.vcloud.domain.network.IpRange; +import org.jclouds.vcloud.domain.network.IpScope; +import org.jclouds.vcloud.domain.network.OrgNetwork; +import org.testng.annotations.Test; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; +import com.google.inject.Guice; +import com.google.inject.Injector; + +/** + * Tests behavior of {@code OrgNetworkHandler} + */ +@Test(groups = "unit") +public class OrgNetworkHandlerTest { + public void testIsolated() { + InputStream is = getClass().getResourceAsStream("/orgnetwork-isolated.xml"); + Injector injector = Guice.createInjector(new SaxParserModule()); + Factory factory = injector.getInstance(ParseSax.Factory.class); + OrgNetwork result = factory.create(injector.getInstance(OrgNetworkHandler.class)).parse(is); + assertEquals(result.getName(), "isolation01"); + assertEquals(result.getHref(), URI.create("https://vcenterprise.bluelock.com/api/v1.0/network/990419644")); + assertEquals(result.getType(), "application/vnd.vmware.vcloud.network+xml"); + assertEquals(result.getOrg(), new ReferenceTypeImpl(null, VCloudMediaType.ORG_XML, URI + .create("https://vcenterprise.bluelock.com/api/v1.0/org/9566014"))); + assertEquals(result.getDescription(), null); + assertEquals(result.getTasks(), ImmutableList.of()); + assert result.getConfiguration() != null; + + assertEquals(result.getConfiguration().getIpScope(), new IpScope(false, "192.168.15.1", "255.255.255.0", + "23.172.173.113", null, null, + ImmutableSet.<IpRange> of(new IpRange("192.168.15.100", "192.168.15.199")), ImmutableSet.<String> of())); + assertEquals(result.getConfiguration().getParentNetwork(), null); + assertEquals(result.getConfiguration().getFenceMode(), FenceMode.ISOLATED); + assert result.getConfiguration().getFeatures() != null; + + assertEquals(result.getConfiguration().getFeatures().getDhcpService(), new DhcpService(false, 3600, 7200, + new IpRange("192.168.15.2", "192.168.15.99"))); + assertEquals(result.getConfiguration().getFeatures().getFirewallService(), null); + assertEquals(result.getConfiguration().getFeatures().getNatService(), null); + + assertEquals(result.getNetworkPool(), null); + assertEquals(result.getAllowedExternalIpAddresses(), ImmutableSet.<String> of()); + + } + + public void testBridged() { + InputStream is = getClass().getResourceAsStream("/orgnetwork-bridged.xml"); + Injector injector = Guice.createInjector(new SaxParserModule()); + Factory factory = injector.getInstance(ParseSax.Factory.class); + OrgNetwork result = factory.create(injector.getInstance(OrgNetworkHandler.class)).parse(is); + assertEquals(result.getName(), "internet01"); + assertEquals(result.getHref(), URI.create("https://vcenterprise.bluelock.com/api/v1.0/network/758634723")); + assertEquals(result.getType(), "application/vnd.vmware.vcloud.network+xml"); + assertEquals(result.getOrg(), new ReferenceTypeImpl(null, VCloudMediaType.ORG_XML, URI + .create("https://vcenterprise.bluelock.com/api/v1.0/org/9566014"))); + assertEquals(result.getDescription(), null); + assertEquals(result.getTasks(), ImmutableList.of()); + assert result.getConfiguration() != null; + + assertEquals(result.getConfiguration().getIpScope(), new IpScope(true, "174.47.101.161", "255.255.255.224", + "24.172.173.113", null, null, + ImmutableSet.<IpRange> of(new IpRange("174.47.101.164", "174.47.101.190")), ImmutableSet.<String> of())); + assertEquals(result.getConfiguration().getParentNetwork(), null); + assertEquals(result.getConfiguration().getFenceMode(), FenceMode.BRIDGED); + assert result.getConfiguration().getFeatures() == null; + assertEquals(result.getNetworkPool(), null); + assertEquals(result.getAllowedExternalIpAddresses(), ImmutableSet.<String> of()); + + } + +} http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/SupportedVersionsHandlerTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/SupportedVersionsHandlerTest.java b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/SupportedVersionsHandlerTest.java new file mode 100644 index 0000000..c264c60 --- /dev/null +++ b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/SupportedVersionsHandlerTest.java @@ -0,0 +1,51 @@ +/* + * 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.vcloud.xml; + +import static org.testng.Assert.assertEquals; + +import java.io.InputStream; +import java.net.URI; +import java.util.SortedMap; + +import org.jclouds.http.functions.ParseSax; +import org.jclouds.http.functions.ParseSax.Factory; +import org.jclouds.http.functions.config.SaxParserModule; +import org.testng.annotations.Test; + +import com.google.common.collect.ImmutableSortedMap; +import com.google.inject.Guice; +import com.google.inject.Injector; + +/** + * Tests behavior of {@code SupportedVersionsHandler} + */ +@Test(groups = "unit") +public class SupportedVersionsHandlerTest { + + public void testApplyInputStream() { + InputStream is = getClass().getResourceAsStream("/versions.xml"); + + Injector injector = Guice.createInjector(new SaxParserModule()); + Factory factory = injector.getInstance(ParseSax.Factory.class); + + SortedMap<String, URI> result = factory.create( + injector.getInstance(SupportedVersionsHandler.class)).parse(is); + assertEquals(result, ImmutableSortedMap.of("0.8", URI + .create("https://services.vcloudexpress.terremark.com/api/v0.8/login"))); + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/TaskHandlerTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/TaskHandlerTest.java b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/TaskHandlerTest.java new file mode 100644 index 0000000..f5a4688 --- /dev/null +++ b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/TaskHandlerTest.java @@ -0,0 +1,133 @@ +/* + * 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.vcloud.xml; + +import static org.testng.Assert.assertEquals; + +import java.io.InputStream; +import java.net.URI; + +import org.jclouds.date.DateService; +import org.jclouds.http.functions.BaseHandlerTest; +import org.jclouds.vcloud.VCloudMediaType; +import org.jclouds.vcloud.domain.Task; +import org.jclouds.vcloud.domain.TaskStatus; +import org.jclouds.vcloud.domain.VCloudError.MinorCode; +import org.jclouds.vcloud.domain.internal.ErrorImpl; +import org.jclouds.vcloud.domain.internal.ReferenceTypeImpl; +import org.jclouds.vcloud.domain.internal.TaskImpl; +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; + +/** + * Tests behavior of {@code TaskHandler} + */ +// NOTE:without testName, this will not call @Before* and fail w/NPE during surefire +@Test(groups = "unit", testName = "TaskHandlerTest") +public class TaskHandlerTest extends BaseHandlerTest { + + private DateService dateService; + + @BeforeTest + @Override + protected void setUpInjector() { + super.setUpInjector(); + dateService = injector.getInstance(DateService.class); + } + + public void testHrefWhenTaskElementIsNamespaced() { + InputStream is = getClass().getResourceAsStream("/task-vcd15.xml"); + Task result = factory.create(injector.getInstance(TaskHandler.class)).parse(is); + assertEquals(result.getHref(), URI.create("https://mycloud.greenhousedata.com/api/v1.0/task/77a33fd4-3401-423c-8167-6711fc51ee9a")); + } + + public void test() { + InputStream is = getClass().getResourceAsStream("/task-1.0.xml"); + + Task result = factory.create(injector.getInstance(TaskHandler.class)).parse(is); + + Task expects = new TaskImpl(URI.create("https://vcenterprise.bluelock.com/api/v1.0/task/3cc08ir8oczbze3n1a3"), + "Creating Virtual Application vApp_acole_2(607806320)", TaskStatus.RUNNING, dateService + .iso8601DateParse("2010-08-23T02:09:52.443-04:00"), dateService + .iso8601DateParse("9999-12-31T23:59:59.999-05:00"), dateService + .iso8601DateParse("2010-11-21T02:09:52.443-05:00"), new ReferenceTypeImpl("vApp_acole_2", + VCloudMediaType.VAPP_XML, URI + .create("https://vcenterprise.bluelock.com/api/v1.0/vApp/vapp-607806320")) + + , null + + ); + assertEquals(result, expects); + + } + + public void testTerremark() { + InputStream is = getClass().getResourceAsStream("/task.xml"); + + Task result = factory.create(injector.getInstance(TaskHandler.class)).parse(is); + Task expects = new TaskImpl(URI.create("https://services.vcloudexpress.terremark.com/api/v0.8/task/3299"), null, + TaskStatus.SUCCESS, dateService.iso8601DateParse("2009-08-24T21:29:32.983Z"), dateService + .iso8601DateParse("2009-08-24T21:29:44.65Z"), null, new ReferenceTypeImpl("Server1", + VCloudMediaType.VAPP_XML, URI + .create("https://services.vcloudexpress.terremark.com/api/v0.8/vapp/4012")), null + + ); + assertEquals(result, expects); + + } + + public void testSelf() { + InputStream is = getClass().getResourceAsStream("/task-self.xml"); + + Task result = factory.create(injector.getInstance(TaskHandler.class)).parse(is); + + Task expects = new TaskImpl(URI.create("https://vcloud.safesecureweb.com/api/v0.8/task/d188849-78"), null, + TaskStatus.QUEUED, null, null, null, null, null); + assertEquals(result, expects); + + } + + public void testApplyInputStream2() { + InputStream is = getClass().getResourceAsStream("/task-hosting.xml"); + + Task result = factory.create(injector.getInstance(TaskHandler.class)).parse(is); + + Task expects = new TaskImpl(URI.create("https://vcloud.safesecureweb.com/api/v0.8/task/97806"), null, + TaskStatus.SUCCESS, dateService.iso8601SecondsDateParse("2010-01-14T20:04:51Z"), dateService + .iso8601SecondsDateParse("2010-01-14T20:05:02Z"), dateService + .iso8601SecondsDateParse("2010-01-15T20:05:02Z"), + + new ReferenceTypeImpl("188849-96", VCloudMediaType.VAPP_XML, URI + .create("https://vcloud.safesecureweb.com/api/v0.8/vapp/188849-96")), null); + assertEquals(result, expects); + } + + public void testError() { + InputStream is = getClass().getResourceAsStream("/task-error.xml"); + + Task result = factory.create(injector.getInstance(TaskHandler.class)).parse(is); + + Task expects = new TaskImpl(URI.create("http://10.150.4.49/api/v0.8/task/23"), null, TaskStatus.ERROR, + dateService.iso8601SecondsDateParse("2009-12-07T19:05:02Z"), dateService + .iso8601SecondsDateParse("2009-12-10T14:40:32Z"), null, new ReferenceTypeImpl("testapp1", + VCloudMediaType.VAPP_XML, URI.create("http://10.150.4.49/api/v0.8/vapp/1")), new ErrorImpl( + "Error processing job", 500, MinorCode.UNRECOGNIZED, + " Error in runDailySummaries date used:2009-12-09 19:40:30.577326+00:00", null)); + assertEquals(result, expects); + + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/TasksListHandlerTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/TasksListHandlerTest.java b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/TasksListHandlerTest.java new file mode 100644 index 0000000..24552b0 --- /dev/null +++ b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/TasksListHandlerTest.java @@ -0,0 +1,80 @@ +/* + * 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.vcloud.xml; + +import static org.testng.Assert.assertEquals; + +import java.io.InputStream; +import java.net.URI; + +import org.jclouds.date.DateService; +import org.jclouds.http.functions.BaseHandlerTest; +import org.jclouds.vcloud.VCloudMediaType; +import org.jclouds.vcloud.domain.Task; +import org.jclouds.vcloud.domain.TaskStatus; +import org.jclouds.vcloud.domain.TasksList; +import org.jclouds.vcloud.domain.internal.ReferenceTypeImpl; +import org.jclouds.vcloud.domain.internal.TaskImpl; +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; + +import com.google.common.collect.ImmutableSortedSet; + +/** + * Tests behavior of {@code TasksListHandler} + */ +// NOTE:without testName, this will not call @Before* and fail w/NPE during surefire +@Test(groups = "unit", testName = "TasksListHandlerTest") +public class TasksListHandlerTest extends BaseHandlerTest { + + private DateService dateService; + + @BeforeTest + @Override + protected void setUpInjector() { + super.setUpInjector(); + dateService = injector.getInstance(DateService.class); + } + + public void testApplyInputStream() { + InputStream is = getClass().getResourceAsStream("/taskslist.xml"); + + TasksList result = factory.create(injector.getInstance(TasksListHandler.class)).parse(is); + assertEquals(result.getLocation(), URI + .create("https://services.vcloudexpress.terremark.com/api/v0.8/tasksList/1")); + Task task1 = new TaskImpl(URI.create("https://services.vcloudexpress.terremark.com/api/v0.8/task/3300"), + null, TaskStatus.SUCCESS, dateService.iso8601DateParse("2009-08-24T21:30:19.587Z"), dateService + .iso8601DateParse("2009-08-24T21:30:32.63Z"), null, new ReferenceTypeImpl("Server1", + VCloudMediaType.VAPP_XML, URI + .create("https://services.vcloudexpress.terremark.com/api/v0.8/vapp/4012")), null); + Task task2 = new TaskImpl(URI.create("https://services.vcloudexpress.terremark.com/api/v0.8/task/3299"), + null, TaskStatus.SUCCESS, dateService.iso8601DateParse("2009-08-24T21:29:32.983Z"), dateService + .iso8601DateParse("2009-08-24T21:29:44.65Z"), null, new ReferenceTypeImpl("Server1", + VCloudMediaType.VAPP_XML, URI + .create("https://services.vcloudexpress.terremark.com/api/v0.8/vapp/4012")), null); + assertEquals(result.getTasks(), ImmutableSortedSet.of(task1, task2)); + } + + public void testApplyInputStreamHosting() { + InputStream is = getClass().getResourceAsStream("/taskslist-hosting.xml"); + + TasksList result = factory.create(injector.getInstance(TasksListHandler.class)).parse(is); + assertEquals(result.getLocation(), URI.create("https://vcloud.safesecureweb.com/api/v0.8/tasksList/188849")); + + } + +} http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/VAppHandlerTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/VAppHandlerTest.java b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/VAppHandlerTest.java new file mode 100644 index 0000000..992e343 --- /dev/null +++ b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/VAppHandlerTest.java @@ -0,0 +1,75 @@ +/* + * 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.vcloud.xml; + +import static org.testng.Assert.assertEquals; + +import java.io.InputStream; +import java.net.URI; + +import org.jclouds.cim.xml.ResourceAllocationSettingDataHandler; +import org.jclouds.http.functions.ParseSax; +import org.jclouds.http.functions.ParseSax.Factory; +import org.jclouds.http.functions.config.SaxParserModule; +import org.jclouds.vcloud.VCloudMediaType; +import org.jclouds.vcloud.domain.Status; +import org.jclouds.vcloud.domain.VApp; +import org.jclouds.vcloud.domain.Vm; +import org.jclouds.vcloud.domain.internal.ReferenceTypeImpl; +import org.jclouds.vcloud.xml.ovf.VCloudResourceAllocationSettingDataHandler; +import org.testng.annotations.Test; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Iterables; +import com.google.inject.Guice; +import com.google.inject.Injector; + +/** + * Tests behavior of {@code VAppHandler} + */ +@Test(groups = "unit") +public class VAppHandlerTest { + + public void testRhelOffStatic() { + InputStream is = getClass().getResourceAsStream("/vapp-rhel-off-static.xml"); + Injector injector = Guice.createInjector(new SaxParserModule() { + + @Override + protected void configure() { + super.configure(); + bind(ResourceAllocationSettingDataHandler.class).to(VCloudResourceAllocationSettingDataHandler.class); + } + }); + Factory factory = injector.getInstance(ParseSax.Factory.class); + VApp result = factory.create(injector.getInstance(VAppHandler.class)).parse(is); + assertEquals(result.getName(), "vApp_acole_2"); + assertEquals(result.getDescription(), "foo"); + assertEquals(result.getHref(), URI.create("https://vcenterprise.bluelock.com/api/v1.0/vApp/vapp-607806320")); + assertEquals(result.getType(), "application/vnd.vmware.vcloud.vApp+xml"); + assertEquals(result.getStatus(), Status.OFF); + assertEquals( + result.getVDC(), + new ReferenceTypeImpl(null, VCloudMediaType.VDC_XML, URI + .create("https://vcenterprise.bluelock.com/api/v1.0/vdc/1014839439"))); + assertEquals(result.getTasks(), ImmutableList.of()); + assert result.isOvfDescriptorUploaded(); + assert result.getNetworkSection() != null; + Vm vm = Iterables.getOnlyElement(result.getChildren()); + VmHandlerTest.checkVm(vm); + } + +} http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/VAppTemplateHandlerTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/VAppTemplateHandlerTest.java b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/VAppTemplateHandlerTest.java new file mode 100644 index 0000000..c0cc110 --- /dev/null +++ b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/VAppTemplateHandlerTest.java @@ -0,0 +1,162 @@ +/* + * 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.vcloud.xml; + +import static org.testng.Assert.assertEquals; + +import java.io.InputStream; +import java.net.URI; + +import org.jclouds.date.DateService; +import org.jclouds.http.functions.ParseSax; +import org.jclouds.http.functions.ParseSax.Factory; +import org.jclouds.http.functions.config.SaxParserModule; +import org.jclouds.ovf.Network; +import org.jclouds.vcloud.VCloudMediaType; +import org.jclouds.vcloud.domain.GuestCustomizationSection; +import org.jclouds.vcloud.domain.Status; +import org.jclouds.vcloud.domain.TaskStatus; +import org.jclouds.vcloud.domain.VAppTemplate; +import org.jclouds.vcloud.domain.Vm; +import org.jclouds.vcloud.domain.internal.ReferenceTypeImpl; +import org.jclouds.vcloud.domain.internal.TaskImpl; +import org.jclouds.vcloud.domain.ovf.VCloudNetworkSection; +import org.testng.annotations.Test; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Iterables; +import com.google.inject.Guice; +import com.google.inject.Injector; + +/** + * Tests behavior of {@code VAppTemplateHandler} + */ +@Test(groups = "unit") +public class VAppTemplateHandlerTest { + + public void testUbuntuTemplate() { + VAppTemplate result = parseTemplate(); + assertEquals(result.getName(), "Ubuntu Template"); + assertEquals(result.getHref(), URI + .create("https://vcenterprise.bluelock.com/api/v1.0/vAppTemplate/vappTemplate-1201908921")); + assertEquals(result.getType(), "application/vnd.vmware.vcloud.vAppTemplate+xml"); + assertEquals(result.getStatus(), Status.OFF); + assertEquals(result.getVDC(), new ReferenceTypeImpl(null, VCloudMediaType.VDC_XML, URI + .create("https://vcenterprise.bluelock.com/api/v1.0/vdc/1014839439"))); + assertEquals(result.getDescription(), null); + assertEquals(result.getTasks(), ImmutableList.of()); + assertEquals(result.getVAppScopedLocalId(), null); + assert result.isOvfDescriptorUploaded(); + Vm vm = Iterables.getOnlyElement(result.getChildren()); + assertEquals(vm.getName(), "Ubuntu1004"); + assertEquals(vm.getHref(), URI.create("https://vcenterprise.bluelock.com/api/v1.0/vAppTemplate/vm-172837194")); + // NOTE this is vAppTemplate not VM! + assertEquals(vm.getType(), "application/vnd.vmware.vcloud.vAppTemplate+xml"); + assertEquals(vm.getStatus(), null); + assertEquals(vm.getParent(), new ReferenceTypeImpl(null, VCloudMediaType.VAPPTEMPLATE_XML, URI + .create("https://vcenterprise.bluelock.com/api/v1.0/vAppTemplate/vappTemplate-1201908921"))); + assertEquals(vm.getDescription(), null); + assertEquals(vm.getTasks(), ImmutableList.of()); + assertEquals(vm.getVAppScopedLocalId(), "02_ubuntu_template"); + + GuestCustomizationSection guestC = vm.getGuestCustomizationSection(); + + assertEquals(guestC.getType(), VCloudMediaType.GUESTCUSTOMIZATIONSECTION_XML); + assertEquals( + guestC.getHref(), + URI + .create("https://vcenterprise.bluelock.com/api/v1.0/vAppTemplate/vm-172837194/guestCustomizationSection/")); + assertEquals(guestC.getInfo(), "Specifies Guest OS Customization Settings"); + assertEquals(guestC.isEnabled(), Boolean.TRUE); + assertEquals(guestC.shouldChangeSid(), Boolean.FALSE); + assertEquals(guestC.getVirtualMachineId(), "172837194"); + assertEquals(guestC.isJoinDomainEnabled(), Boolean.FALSE); + assertEquals(guestC.useOrgSettings(), Boolean.FALSE); + assertEquals(guestC.getDomainName(), null); + assertEquals(guestC.getDomainUserName(), null); + assertEquals(guestC.getDomainUserPassword(), null); + assertEquals(guestC.isAdminPasswordEnabled(), Boolean.TRUE); + assertEquals(guestC.isAdminPasswordAuto(), Boolean.TRUE); + assertEquals(guestC.getAdminPassword(), "%3eD%gmF"); + assertEquals(guestC.isResetPasswordRequired(), Boolean.FALSE); + assertEquals( + guestC.getCustomizationScript(), + "#!/bin/bash if [ \"$1\" = \"postcustomization\" ]; then echo \"post customization\" touch /root/.postcustomization sleep 30 #regenerate keys /bin/rm /etc/ssh/ssh_host_* /usr/sbin/dpkg-reconfigure openssh-server echo \"completed\" fi"); + assertEquals(guestC.getComputerName(), "Ubuntu1004"); + assertEquals(guestC.getEdit(), null); + + VCloudNetworkSection network = result.getNetworkSection(); + assertEquals( + network.getHref(), + URI + .create("https://vcenterprise.bluelock.com/api/v1.0/vAppTemplate/vappTemplate-1201908921/networkSection/")); + assertEquals(network.getType(), VCloudMediaType.NETWORKSECTION_XML); + assertEquals(network.getInfo(), "The list of logical networks"); + assertEquals(network.getNetworks(), ImmutableSet.of(new Network("vAppNet-vApp Internal", null))); + + } + + public static VAppTemplate parseTemplate() { + InputStream is = VAppTemplateHandlerTest.class.getResourceAsStream("/vAppTemplate.xml"); + Injector injector = Guice.createInjector(new SaxParserModule()); + Factory factory = injector.getInstance(ParseSax.Factory.class); + VAppTemplate result = factory.create(injector.getInstance(VAppTemplateHandler.class)).parse(is); + return result; + } + + public void testCopyingTemplate() { + InputStream is = getClass().getResourceAsStream("/vAppTemplate-copying.xml"); + Injector injector = Guice.createInjector(new SaxParserModule()); + Factory factory = injector.getInstance(ParseSax.Factory.class); + DateService dateService = injector.getInstance(DateService.class); + + VAppTemplate result = factory.create(injector.getInstance(VAppTemplateHandler.class)).parse(is); + assertEquals(result.getName(), "Ubuntu10.04_v2"); + assertEquals(result.getHref(), URI + .create("https://vcenterprise.bluelock.com/api/v1.0/vAppTemplate/vappTemplate-699683881")); + assertEquals(result.getType(), "application/vnd.vmware.vcloud.vAppTemplate+xml"); + assertEquals(result.getStatus(), Status.UNRESOLVED); + assertEquals(result.getVDC(), new ReferenceTypeImpl(null, VCloudMediaType.VDC_XML, URI + .create("https://vcenterprise.bluelock.com/api/v1.0/vdc/105186609"))); + assertEquals(result.getDescription(), null); + assertEquals(result.getTasks(), ImmutableList.of(new TaskImpl(URI + .create("https://vcenterprise.bluelock.com/api/v1.0/task/q62gxhi32xgd9yrqvr"), + "Copying Virtual Application Template Ubuntu10.04_v2(699683881)", TaskStatus.RUNNING, dateService + .iso8601DateParse("2010-09-17T23:20:46.039-04:00"), dateService + .iso8601DateParse("9999-12-31T23:59:59.999-05:00"), dateService + .iso8601DateParse("2010-12-16T23:20:46.039-05:00"), new ReferenceTypeImpl("Ubuntu10.04_v2", + "application/vnd.vmware.vcloud.vAppTemplate+xml", + URI.create("https://vcenterprise.bluelock.com/api/v1.0/vAppTemplate/vappTemplate-699683881")), + null))); + assertEquals(result.getVAppScopedLocalId(), null); + assert result.isOvfDescriptorUploaded(); + assertEquals(result.getChildren(), ImmutableList.of()); + assertEquals(result.getNetworkSection(), null); + + } + + public void testVAppTemplateWithNewlinesAndNamespacedElements() { + InputStream is = getClass().getResourceAsStream("/vAppTemplate1.0-vcd15_withNewlines.xml"); + Injector injector = Guice.createInjector(new SaxParserModule()); + Factory factory = injector.getInstance(ParseSax.Factory.class); + + factory.create(injector.getInstance(VAppTemplateHandler.class)).parse(is); + } + + +} http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/VDCHandlerTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/VDCHandlerTest.java b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/VDCHandlerTest.java new file mode 100644 index 0000000..d5cc9da --- /dev/null +++ b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/VDCHandlerTest.java @@ -0,0 +1,134 @@ +/* + * 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.vcloud.xml; + +import static org.testng.Assert.assertEquals; + +import java.io.InputStream; +import java.net.URI; + +import org.jclouds.http.functions.ParseSax; +import org.jclouds.http.functions.ParseSax.Factory; +import org.jclouds.http.functions.config.SaxParserModule; +import org.jclouds.vcloud.VCloudMediaType; +import org.jclouds.vcloud.domain.AllocationModel; +import org.jclouds.vcloud.domain.Capacity; +import org.jclouds.vcloud.domain.ReferenceType; +import org.jclouds.vcloud.domain.VDC; +import org.jclouds.vcloud.domain.VDCStatus; +import org.jclouds.vcloud.domain.internal.ReferenceTypeImpl; +import org.testng.annotations.Test; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.inject.Guice; +import com.google.inject.Injector; + +/** + * Tests behavior of {@code VDCHandler} + */ +@Test(groups = "unit") +public class VDCHandlerTest { + public void testVCloud1_0() { + InputStream is = getClass().getResourceAsStream("/vdc-1.0.xml"); + Injector injector = Guice.createInjector(new SaxParserModule()); + Factory factory = injector.getInstance(ParseSax.Factory.class); + VDC result = factory.create(injector.getInstance(VDCHandler.class)).parse(is); + assertEquals(result.getName(), "Jclouds-Commit-compG1xstorA01"); + assertEquals(result.getHref(), URI.create("https://vcenterprise.bluelock.com/api/v1.0/vdc/1014839439")); + assertEquals(result.getType(), "application/vnd.vmware.vcloud.vdc+xml"); + assertEquals(result.getStatus(), VDCStatus.READY); + assertEquals(result.getOrg(), new ReferenceTypeImpl(null, VCloudMediaType.ORG_XML, URI + .create("https://vcenterprise.bluelock.com/api/v1.0/org/9566014"))); + assertEquals(result.getDescription(), null); + assertEquals(result.getTasks(), ImmutableList.of()); + assertEquals(result.getAllocationModel(), AllocationModel.ALLOCATION_POOL); + assertEquals(result.getStorageCapacity(), new Capacity("MB", 1024000, 1024000, 0, 0)); + assertEquals(result.getCpuCapacity(), new Capacity("MHz", 20000, 20000, 0, 0)); + assertEquals(result.getMemoryCapacity(), new Capacity("MB", 30720, 30720, 0, 0)); + assertEquals(result.getResourceEntities(), ImmutableMap.<String, ReferenceType> of()); + assertEquals(result.getAvailableNetworks(), ImmutableMap.of("isolation01", new ReferenceTypeImpl("isolation01", + "application/vnd.vmware.vcloud.network+xml", URI + .create("https://vcenterprise.bluelock.com/api/v1.0/network/990419644")), "internet01", + new ReferenceTypeImpl("internet01", "application/vnd.vmware.vcloud.network+xml", URI + .create("https://vcenterprise.bluelock.com/api/v1.0/network/758634723")))); + assertEquals(result.getNicQuota(), 0); + assertEquals(result.getNetworkQuota(), 100); + assertEquals(result.getVmQuota(), 50); + assert result.isEnabled(); + } + + public void testTerremark() { + InputStream is = getClass().getResourceAsStream("/vdc.xml"); + Injector injector = Guice.createInjector(new SaxParserModule()); + Factory factory = injector.getInstance(ParseSax.Factory.class); + VDC result = factory.create(injector.getInstance(VDCHandler.class)).parse(is); + assertEquals(result.getName(), "Miami Environment 1"); + assertEquals(result.getHref(), URI.create("https://services.vcloudexpress.terremark.com/api/v0.8/vdc/32")); + assertEquals(result.getDescription(), null); + assertEquals(result.getStorageCapacity(), new Capacity("bytes * 10^9", 100, 0, 8, 0)); + assertEquals(result.getCpuCapacity(), new Capacity("hz * 10^6", 5000, 0, 0, 0)); + assertEquals(result.getMemoryCapacity(), new Capacity("bytes * 2^20", 10240, 0, 0, 0)); + assertEquals(result.getVmQuota(), 0); + assertEquals(result.getResourceEntities(), ImmutableMap.<String, ReferenceType> of("adriantest", + new ReferenceTypeImpl("adriantest", VCloudMediaType.VAPP_XML, URI + .create("https://services.vcloudexpress.terremark.com/api/v0.8/vapp/15124")), "centos-53", + new ReferenceTypeImpl("centos-53", VCloudMediaType.VAPP_XML, URI + .create("https://services.vcloudexpress.terremark.com/api/v0.8/vapp/15120")))); + assertEquals(result.getAvailableNetworks(), ImmutableMap.of("10.114.34.128/26", new ReferenceTypeImpl( + "10.114.34.128/26", "application/vnd.vmware.vcloud.network+xml", URI + .create("https://services.vcloudexpress.terremark.com/api/v0.8/network/1708")))); + } + + public void testHostingDotCom() { + InputStream is = getClass().getResourceAsStream("/vdc-hosting.xml"); + Injector injector = Guice.createInjector(new SaxParserModule()); + Factory factory = injector.getInstance(ParseSax.Factory.class); + VDC result = factory.create(injector.getInstance(VDCHandler.class)).parse(is); + assertEquals(result.getName(), "vDC Name"); + assertEquals(result.getHref(), URI.create("https://vcloud.safesecureweb.com/api/v0.8/vdc/188849")); + assertEquals(result.getDescription(), "vDC Name"); + assertEquals(result.getStorageCapacity(), new Capacity("bytes * 10^9", 0, 0, 40960, 0)); + assertEquals(result.getCpuCapacity(), new Capacity("hz * 10^6", 0, 0, 2400, 0)); + assertEquals(result.getMemoryCapacity(), new Capacity("bytes * 10^9", 0, 0, 2, 0)); + assertEquals(result.getVmQuota(), 0); + assertEquals(result.getResourceEntities(), new ImmutableMap.Builder<String, ReferenceType>().put( + "Plesk (Linux) 64-bit Template", + new ReferenceTypeImpl("Plesk (Linux) 64-bit Template", "application/vnd.vmware.vcloud.vAppTemplate+xml", + URI.create("https://vcloud.safesecureweb.com/api/v0.8/vAppTemplate/1"))).put( + + "Windows 2008 Datacenter 64 Bit Template", + new ReferenceTypeImpl("Windows 2008 Datacenter 64 Bit Template", + "application/vnd.vmware.vcloud.vAppTemplate+xml", URI + .create("https://vcloud.safesecureweb.com/api/v0.8/vAppTemplate/2"))).put( + "Cent OS 64 Bit Template", + new ReferenceTypeImpl("Cent OS 64 Bit Template", "application/vnd.vmware.vcloud.vAppTemplate+xml", URI + .create("https://vcloud.safesecureweb.com/api/v0.8/vAppTemplate/3"))).put( + "cPanel (Linux) 64 Bit Template", + new ReferenceTypeImpl("cPanel (Linux) 64 Bit Template", + "application/vnd.vmware.vcloud.vAppTemplate+xml", URI + .create("https://vcloud.safesecureweb.com/api/v0.8/vAppTemplate/4"))).put( + "188849-1", + new ReferenceTypeImpl("188849-1", "application/vnd.vmware.vcloud.vApp+xml", URI + .create("https://vcloud.safesecureweb.com/api/v0.8/vApp/188849-1"))).put( + "188849-2", + new ReferenceTypeImpl("188849-2", "application/vnd.vmware.vcloud.vApp+xml", URI + .create("https://vcloud.safesecureweb.com/api/v0.8/vApp/188849-2"))).build()); + + assertEquals(result.getAvailableNetworks(), ImmutableMap.<String, ReferenceType> of()); + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/VmHandlerTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/VmHandlerTest.java b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/VmHandlerTest.java new file mode 100644 index 0000000..342b04a --- /dev/null +++ b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/VmHandlerTest.java @@ -0,0 +1,77 @@ +/* + * 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.vcloud.xml; + +import static org.testng.Assert.assertEquals; + +import java.io.InputStream; +import java.net.URI; + +import org.jclouds.cim.xml.ResourceAllocationSettingDataHandler; +import org.jclouds.http.functions.ParseSax; +import org.jclouds.http.functions.ParseSax.Factory; +import org.jclouds.http.functions.config.SaxParserModule; +import org.jclouds.vcloud.VCloudMediaType; +import org.jclouds.vcloud.domain.Status; +import org.jclouds.vcloud.domain.Vm; +import org.jclouds.vcloud.domain.internal.ReferenceTypeImpl; +import org.jclouds.vcloud.xml.ovf.VCloudOperatingSystemSectionHandlerTest; +import org.jclouds.vcloud.xml.ovf.VCloudResourceAllocationSettingDataHandler; +import org.jclouds.vcloud.xml.ovf.VCloudVirtualHardwareSectionHandlerTest; +import org.testng.annotations.Test; + +import com.google.common.collect.ImmutableList; +import com.google.inject.Guice; +import com.google.inject.Injector; + +/** + * Tests behavior of {@code VmHandler} + */ +@Test(groups = "unit") +public class VmHandlerTest { + public void testVCloud1_0() { + InputStream is = getClass().getResourceAsStream("/vm-rhel-off-static.xml"); + Injector injector = Guice.createInjector(new SaxParserModule() { + + @Override + protected void configure() { + super.configure(); + bind(ResourceAllocationSettingDataHandler.class).to(VCloudResourceAllocationSettingDataHandler.class); + } + }); + Factory factory = injector.getInstance(ParseSax.Factory.class); + Vm result = factory.create(injector.getInstance(VmHandler.class)).parse(is); + checkVm(result); + } + + static void checkVm(Vm result) { + assertEquals(result.getName(), "RHEL5"); + assertEquals(result.getHref(), URI.create("https://vcenterprise.bluelock.com/api/v1.0/vApp/vm-2087535248")); + assertEquals(result.getType(), "application/vnd.vmware.vcloud.vm+xml"); + assertEquals(result.getStatus(), Status.OFF); + assertEquals(result.getParent(), new ReferenceTypeImpl(null, VCloudMediaType.VAPP_XML, URI + .create("https://vcenterprise.bluelock.com/api/v1.0/vApp/vapp-607806320"))); + assertEquals(result.getDescription(), null); + assertEquals(result.getTasks(), ImmutableList.of()); + assertEquals(result.getVAppScopedLocalId(), "10_rhel_template"); + VCloudVirtualHardwareSectionHandlerTest.checkHardware(result.getVirtualHardwareSection()); + VCloudOperatingSystemSectionHandlerTest.checkOs(result.getOperatingSystemSection()); + NetworkConnectionSectionHandlerTest.checkNetworkConnectionSection(result.getNetworkConnectionSection()); + GuestCustomizationSectionHandlerTest.checkGuestCustomization(result.getGuestCustomizationSection()); + } + +} http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/ovf/VCloudOperatingSystemSectionHandlerTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/ovf/VCloudOperatingSystemSectionHandlerTest.java b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/ovf/VCloudOperatingSystemSectionHandlerTest.java new file mode 100644 index 0000000..307b3f1 --- /dev/null +++ b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/ovf/VCloudOperatingSystemSectionHandlerTest.java @@ -0,0 +1,59 @@ +/* + * 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.vcloud.xml.ovf; + +import static org.testng.Assert.assertEquals; + +import java.io.InputStream; +import java.net.URI; +import java.net.UnknownHostException; + +import org.jclouds.http.functions.BaseHandlerTest; +import org.jclouds.vcloud.domain.internal.ReferenceTypeImpl; +import org.jclouds.vcloud.domain.ovf.VCloudOperatingSystemSection; +import org.testng.annotations.Test; + +/** + * Tests behavior of {@code VCloudOperatingSystemSectionHandler} + */ +// NOTE:without testName, this will not call @Before* and fail w/NPE during surefire +@Test(groups = "unit", testName = "VCloudOperatingSystemSectionHandlerTest") +public class VCloudOperatingSystemSectionHandlerTest extends BaseHandlerTest { + + public void testDefault() throws UnknownHostException { + InputStream is = getClass().getResourceAsStream("/os.xml"); + + VCloudOperatingSystemSection result = factory.create(injector.getInstance(VCloudOperatingSystemHandler.class)).parse(is); + + checkOs(result); + + } + + @Test(enabled = false) + public static void checkOs(VCloudOperatingSystemSection result) { + assertEquals(result.getHref(), URI + .create("https://vcenterprise.bluelock.com/api/v1.0/vApp/vm-2087535248/operatingSystemSection/")); + assertEquals(result.getDescription(), "Red Hat Enterprise Linux 5 (64-bit)"); + assertEquals(result.getEdit(), new ReferenceTypeImpl(null, + "application/vnd.vmware.vcloud.operatingSystemSection+xml", + URI.create("https://vcenterprise.bluelock.com/api/v1.0/vApp/vm-2087535248/operatingSystemSection/"))); + assertEquals(result.getId(), Integer.valueOf(80)); + assertEquals(result.getVmwOsType(), "rhel5_64Guest"); + assertEquals(result.getType(), "application/vnd.vmware.vcloud.operatingSystemSection+xml"); + assertEquals(result.getInfo(), "Specifies the operating system installed"); + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/ovf/VCloudVirtualHardwareSectionHandlerTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/ovf/VCloudVirtualHardwareSectionHandlerTest.java b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/ovf/VCloudVirtualHardwareSectionHandlerTest.java new file mode 100644 index 0000000..72be94a --- /dev/null +++ b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/java/org/jclouds/vcloud/xml/ovf/VCloudVirtualHardwareSectionHandlerTest.java @@ -0,0 +1,151 @@ +/* + * 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.vcloud.xml.ovf; + +import static org.testng.Assert.assertEquals; + +import java.io.InputStream; +import java.net.URI; +import java.net.UnknownHostException; + +import org.jclouds.cim.ResourceAllocationSettingData; +import org.jclouds.cim.ResourceAllocationSettingData.ResourceType; +import org.jclouds.cim.VirtualSystemSettingData; +import org.jclouds.cim.xml.ResourceAllocationSettingDataHandler; +import org.jclouds.http.functions.BaseHandlerTest; +import org.jclouds.http.functions.ParseSax; +import org.jclouds.http.functions.config.SaxParserModule; +import org.jclouds.vcloud.domain.internal.ReferenceTypeImpl; +import org.jclouds.vcloud.domain.ovf.EditableResourceAllocationSettingData; +import org.jclouds.vcloud.domain.ovf.VCloudHardDisk; +import org.jclouds.vcloud.domain.ovf.VCloudNetworkAdapter; +import org.jclouds.vcloud.domain.ovf.VCloudVirtualHardwareSection; +import org.jclouds.vcloud.xml.VCloudVirtualHardwareHandler; +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; + +import com.google.common.collect.Iterables; +import com.google.inject.Guice; + +/** + * Tests behavior of {@code VCloudVirtualHardwareSectionHandler} + */ +// NOTE:without testName, this will not call @Before* and fail w/NPE during surefire +@Test(groups = "unit", testName = "VCloudVirtualHardwareSectionHandlerTest") +public class VCloudVirtualHardwareSectionHandlerTest extends BaseHandlerTest { + @BeforeTest + @Override + protected void setUpInjector() { + injector = Guice.createInjector(new SaxParserModule() { + public void configure() { + super.configure(); + bind(ResourceAllocationSettingDataHandler.class).to(VCloudResourceAllocationSettingDataHandler.class); + } + }); + factory = injector.getInstance(ParseSax.Factory.class); + assert factory != null; + } + + public void testDefault() throws UnknownHostException { + InputStream is = getClass().getResourceAsStream("/virtualhardwaresection.xml"); + + VCloudVirtualHardwareSection result = factory.create(injector.getInstance(VCloudVirtualHardwareHandler.class)) + .parse(is); + + checkHardware(result); + + } + + @Test(enabled = false) + public static void checkHardware(VCloudVirtualHardwareSection result) { + VirtualSystemSettingData system = VirtualSystemSettingData.builder().instanceID("0").elementName( + "Virtual Hardware Family").virtualSystemIdentifier("RHEL5").virtualSystemType("vmx-07").build(); + + assertEquals(result.getHref(), URI + .create("https://vcenterprise.bluelock.com/api/v1.0/vApp/vm-2087535248/virtualHardwareSection/")); + assertEquals(result.getType(), "application/vnd.vmware.vcloud.virtualHardwareSection+xml"); + assertEquals(result.getSystem().toString(), system.toString()); + assertEquals(result.getInfo(), "Virtual hardware requirements"); + + assertEquals(Iterables.get(result.getItems(), 0).toString(), VCloudNetworkAdapter.builder() + .instanceID("1").elementName("Network adapter 0").description("PCNet32 ethernet adapter").resourceType( + ResourceType.ETHERNET_ADAPTER).resourceSubType("PCNet32").automaticAllocation(true).connection( + "internet01").address("00:50:56:01:01:f2").addressOnParent("0").ipAddress("174.47.101.164") + .primaryNetworkConnection(true).ipAddressingMode("POOL").build().toString()); + + assertEquals(Iterables.get(result.getItems(), 1).toString(), ResourceAllocationSettingData + .builder().instanceID("2").elementName("SCSI Controller 0").description("SCSI Controller").resourceType( + ResourceType.PARALLEL_SCSI_HBA).resourceSubType("lsilogic").address("0").build().toString()); + + assertEquals(Iterables.get(result.getItems(), 2).toString(), VCloudHardDisk.builder().instanceID( + "2000").elementName("Hard disk 1").description("Hard disk").resourceType(ResourceType.DISK_DRIVE) + .addressOnParent("0").parent("2").capacity(30720).busType(6).busSubType("lsilogic").build().toString()); + + assertEquals(Iterables.get(result.getItems(), 3).toString(), ResourceAllocationSettingData + .builder().instanceID("3").elementName("IDE Controller 0").description("IDE Controller").resourceType( + ResourceType.IDE_CONTROLLER).address("0").build().toString()); + + assertEquals(Iterables.get(result.getItems(), 4).toString(), ResourceAllocationSettingData + .builder().instanceID("3002").elementName("CD/DVD Drive 1").description("CD/DVD Drive").resourceType( + ResourceType.CD_DRIVE).addressOnParent("0").automaticAllocation(false).parent("3").build() + .toString()); + + assertEquals(Iterables.get(result.getItems(), 5).toString(), ResourceAllocationSettingData + .builder().instanceID("8000").elementName("Floppy Drive 1").description("Floppy Drive").resourceType( + ResourceType.FLOPPY_DRIVE).addressOnParent("0").automaticAllocation(false).build().toString()); + + assertEquals( + Iterables.get(result.getItems(), 6).toString(), + EditableResourceAllocationSettingData + .builder() + .instanceID("4") + .elementName("1 virtual CPU(s)") + .description("Number of Virtual CPUs") + .resourceType(ResourceType.PROCESSOR) + .virtualQuantity(1l) + .allocationUnits("hertz * 10^6") + .reservation(0l) + .weight(0) + .edit( + new ReferenceTypeImpl( + null, + "application/vnd.vmware.vcloud.rasdItem+xml", + URI + .create("https://vcenterprise.bluelock.com/api/v1.0/vApp/vm-2087535248/virtualHardwareSection/cpu"),"edit")) + .build().toString()); + + assertEquals( + Iterables.get(result.getItems(), 7).toString(), + EditableResourceAllocationSettingData + .builder() + .instanceID("5") + .elementName("384 MB of memory") + .description("Memory Size") + .resourceType(ResourceType.MEMORY) + .virtualQuantity(384l) + .allocationUnits("byte * 2^20") + .reservation(0l) + .weight(0) + .edit( + new ReferenceTypeImpl( + null, + "application/vnd.vmware.vcloud.rasdItem+xml", + URI + .create("https://vcenterprise.bluelock.com/api/v1.0/vApp/vm-2087535248/virtualHardwareSection/memory"),"edit")) + .build().toString()); + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/resources/captureVApp-default.xml ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/resources/captureVApp-default.xml b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/resources/captureVApp-default.xml new file mode 100644 index 0000000..0570872 --- /dev/null +++ b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/resources/captureVApp-default.xml @@ -0,0 +1 @@ +<CaptureVAppParams xmlns="http://www.vmware.com/vcloud/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="my-template" xsi:schemaLocation="http://www.vmware.com/vcloud/v1 http://vcloud.safesecureweb.com/ns/vcloud.xsd"><Source href="https://vcenterprise.bluelock.com/api/v1.0/vapp/4181" type="application/vnd.vmware.vcloud.vApp+xml"/></CaptureVAppParams> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/resources/captureVApp.xml ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/resources/captureVApp.xml b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/resources/captureVApp.xml new file mode 100644 index 0000000..35e62d0 --- /dev/null +++ b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/resources/captureVApp.xml @@ -0,0 +1 @@ +<CaptureVAppParams xmlns="http://www.vmware.com/vcloud/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="my-template" xsi:schemaLocation="http://www.vmware.com/vcloud/v1 http://vcloud.safesecureweb.com/ns/vcloud.xsd"><Description>The description of the new vApp Template</Description><Source href="https://vcenterprise.bluelock.com/api/v1.0/vapp/201" type="application/vnd.vmware.vcloud.vApp+xml"/></CaptureVAppParams> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/resources/catalog-blank.xml ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/resources/catalog-blank.xml b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/resources/catalog-blank.xml new file mode 100644 index 0000000..6bc4038 --- /dev/null +++ b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/resources/catalog-blank.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Catalog xmlns="http://www.vmware.com/vcloud/v1" name="Jclouds-private" type="application/vnd.vmware.vcloud.catalog+xml" href="https://vcenterprise.bluelock.com/api/v1.0/catalog/921222081" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vmware.com/vcloud/v1 http://vcenterprise.bluelock.com/api/v1.0/schema/master.xsd"> + <Link rel="up" type="application/vnd.vmware.vcloud.org+xml" href="https://vcenterprise.bluelock.com/api/v1.0/org/9566014"/> + <Link rel="add" type="application/vnd.vmware.vcloud.catalogItem+xml" href="https://vcenterprise.bluelock.com/api/v1.0/catalog/921222081/catalogItems"/> + <CatalogItems/> + <IsPublished>false</IsPublished> +</Catalog> http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/resources/catalog-hosting.xml ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/resources/catalog-hosting.xml b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/resources/catalog-hosting.xml new file mode 100644 index 0000000..be510a9 --- /dev/null +++ b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/resources/catalog-hosting.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Catalog href="https://vcloud.safesecureweb.com/api/v0.8/catalog/1" + name="HMSCatalog" xsi:schemaLocation="http://www.vmware.com/vcloud/v0.8/catalog.xsd" + xmlns="http://www.vmware.com/vcloud/v0.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <Description>HMS Shared Catalog</Description> + + <Link rel="add" + href="https://vcloud.safesecureweb.com/api/v0.8/catalog/1/catalogItems" + type="application/vnd.vmware.vcloud.catalogItem+xml" /> + + <CatalogItems> + <CatalogItem type="application/vnd.vmware.vcloud.catalogItem+xml" + href="https://vcloud.safesecureweb.com/api/v0.8/catalogItem/1" + name="Plesk (Linux) 64-bit Template" /> + <CatalogItem type="application/vnd.vmware.vcloud.catalogItem+xml" + href="https://vcloud.safesecureweb.com/api/v0.8/catalogItem/2" + name="Windows 2008 Datacenter 64 Bit Template" /> + <CatalogItem type="application/vnd.vmware.vcloud.catalogItem+xml" + href="https://vcloud.safesecureweb.com/api/v0.8/catalogItem/3" + name="Cent OS 64 Bit Template" /> + <CatalogItem type="application/vnd.vmware.vcloud.catalogItem+xml" + href="https://vcloud.safesecureweb.com/api/v0.8/catalogItem/4" + name="cPanel (Linux) 64 Bit Template" /> + </CatalogItems> +</Catalog> http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/resources/catalog.xml ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/resources/catalog.xml b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/resources/catalog.xml new file mode 100644 index 0000000..f2d5eaa --- /dev/null +++ b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/resources/catalog.xml @@ -0,0 +1,27 @@ +<Catalog href="https://services.vcloudexpress.terremark.com/api/v0.8/vdc/32/catalog" type="application/vnd.vmware.vcloud.catalog+xml" name="Miami Environment 1" xmlns="http://www.vmware.com/vcloud/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <CatalogItems> + <CatalogItem href="https://services.vcloudexpress.terremark.com/api/v0.8/catalogItem/5" type="application/vnd.vmware.vcloud.catalogItem+xml" name="CentOS 5.3 (32-bit)"/> + <CatalogItem href="https://services.vcloudexpress.terremark.com/api/v0.8/catalogItem/6" type="application/vnd.vmware.vcloud.catalogItem+xml" name="CentOS 5.3 (64-bit)"/> + <CatalogItem href="https://services.vcloudexpress.terremark.com/api/v0.8/catalogItem/7" type="application/vnd.vmware.vcloud.catalogItem+xml" name="RHEL 5.3 (32-bit)"/> + <CatalogItem href="https://services.vcloudexpress.terremark.com/api/v0.8/catalogItem/8" type="application/vnd.vmware.vcloud.catalogItem+xml" name="RHEL 5.3 (64-bit)"/> + <CatalogItem href="https://services.vcloudexpress.terremark.com/api/v0.8/catalogItem/11" type="application/vnd.vmware.vcloud.catalogItem+xml" name="Ubuntu JeOS 9.04 (32-bit)"/> + <CatalogItem href="https://services.vcloudexpress.terremark.com/api/v0.8/catalogItem/12" type="application/vnd.vmware.vcloud.catalogItem+xml" name="Ubuntu JeOS 9.04 (64-bit)"/> + <CatalogItem href="https://services.vcloudexpress.terremark.com/api/v0.8/catalogItem/9" type="application/vnd.vmware.vcloud.catalogItem+xml" name="Ubuntu Server 9.04 (32-bit)"/> + <CatalogItem href="https://services.vcloudexpress.terremark.com/api/v0.8/catalogItem/10" type="application/vnd.vmware.vcloud.catalogItem+xml" name="Ubuntu Server 9.04 (64-bit)"/> + <CatalogItem href="https://services.vcloudexpress.terremark.com/api/v0.8/catalogItem/1" type="application/vnd.vmware.vcloud.catalogItem+xml" name="Windows 2003 Enterprise R2 (32-bit)"/> + <CatalogItem href="https://services.vcloudexpress.terremark.com/api/v0.8/catalogItem/2" type="application/vnd.vmware.vcloud.catalogItem+xml" name="Windows 2003 Enterprise R2 (64-bit)"/> + <CatalogItem href="https://services.vcloudexpress.terremark.com/api/v0.8/catalogItem/3" type="application/vnd.vmware.vcloud.catalogItem+xml" name="Windows 2003 Standard R2 (32-bit)"/> + <CatalogItem href="https://services.vcloudexpress.terremark.com/api/v0.8/catalogItem/4" type="application/vnd.vmware.vcloud.catalogItem+xml" name="Windows 2003 Standard R2 (64-bit)"/> + <CatalogItem href="https://services.vcloudexpress.terremark.com/api/v0.8/catalogItem/23" type="application/vnd.vmware.vcloud.catalogItem+xml" name="Windows 2003 Standard R2 w.SQL 2008 Web (64-bit)"/> + <CatalogItem href="https://services.vcloudexpress.terremark.com/api/v0.8/catalogItem/13" type="application/vnd.vmware.vcloud.catalogItem+xml" name="Windows Server 2008 Enterprise (32-bit)"/> + <CatalogItem href="https://services.vcloudexpress.terremark.com/api/v0.8/catalogItem/15" type="application/vnd.vmware.vcloud.catalogItem+xml" name="Windows Server 2008 Enterprise (64-bit)"/> + <CatalogItem href="https://services.vcloudexpress.terremark.com/api/v0.8/catalogItem/16" type="application/vnd.vmware.vcloud.catalogItem+xml" name="Windows Server 2008 Enterprise R2 (64-bit)"/> + <CatalogItem href="https://services.vcloudexpress.terremark.com/api/v0.8/catalogItem/17" type="application/vnd.vmware.vcloud.catalogItem+xml" name="Windows Server 2008 Standard (32-bit)"/> + <CatalogItem href="https://services.vcloudexpress.terremark.com/api/v0.8/catalogItem/18" type="application/vnd.vmware.vcloud.catalogItem+xml" name="Windows Server 2008 Standard (64-bit)"/> + <CatalogItem href="https://services.vcloudexpress.terremark.com/api/v0.8/catalogItem/19" type="application/vnd.vmware.vcloud.catalogItem+xml" name="Windows Server 2008 Standard R2 (64-bit)"/> + <CatalogItem href="https://services.vcloudexpress.terremark.com/api/v0.8/catalogItem/14" type="application/vnd.vmware.vcloud.catalogItem+xml" name="Windows Server 2008 Standard w.SQL 2008 Web (64-bit)"/> + <CatalogItem href="https://services.vcloudexpress.terremark.com/api/v0.8/catalogItem/20" type="application/vnd.vmware.vcloud.catalogItem+xml" name="Windows Web Server 2008 (32-bit)"/> + <CatalogItem href="https://services.vcloudexpress.terremark.com/api/v0.8/catalogItem/21" type="application/vnd.vmware.vcloud.catalogItem+xml" name="Windows Web Server 2008 (64-bit)"/> + <CatalogItem href="https://services.vcloudexpress.terremark.com/api/v0.8/catalogItem/22" type="application/vnd.vmware.vcloud.catalogItem+xml" name="Windows Web Server 2008 R2 (64-bit)"/> + </CatalogItems> +</Catalog> http://git-wip-us.apache.org/repos/asf/stratos/blob/b45ae00e/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/resources/catalog1.0-vcd15.xml ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/resources/catalog1.0-vcd15.xml b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/resources/catalog1.0-vcd15.xml new file mode 100644 index 0000000..0208e59 --- /dev/null +++ b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/test/resources/catalog1.0-vcd15.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Catalog xmlns="http://www.vmware.com/vcloud/v1" name="jclouds" type="application/vnd.vmware.vcloud.catalog+xml" href="https://zone.myvcloud.com/api/v1.0/catalog/3155f393-1e1d-4572-8c9c-d76f72ddb658" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vmware.com/vcloud/v1 https://zone.myvcloud.com/api/v1.0/schema/master.xsd"> + <Link rel="up" type="application/vnd.vmware.vcloud.org+xml" href="https://zone.myvcloud.com/api/v1.0/org/c076f90a-397a-49fa-89b8-b294c1599cd0"/> + <Link rel="add" type="application/vnd.vmware.vcloud.catalogItem+xml" href="https://zone.myvcloud.com/api/v1.0/catalog/3155f393-1e1d-4572-8c9c-d76f72ddb658/catalogItems"/> + <CatalogItems> + <CatalogItem type="application/vnd.vmware.vcloud.catalogItem+xml" name="UbuntuServer-x64-2GB" href="https://zone.myvcloud.com/api/v1.0/catalogItem/ceb369f7-1d07-4e32-9dbd-ebb5aa6ca55c"/> + </CatalogItems> + <IsPublished>false</IsPublished> +</Catalog> \ No newline at end of file
