/providers/trmk-ecloud/src/test/java/org/jclouds/trmk/ecloud/compute/functions/TerremarkECloudParseOsFromVAppTemplateNameTest.java
Java | 172 lines | 108 code | 11 blank | 53 comment | 0 complexity | c2a0de898179ae2cd724c9785200fd8f MD5 | raw file
1/**
2 * Licensed to jclouds, Inc. (jclouds) under one or more
3 * contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. jclouds licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 */
19package org.jclouds.trmk.ecloud.compute.functions;
20
21import static org.testng.Assert.assertEquals;
22
23import java.io.InputStream;
24import java.util.Map;
25import java.util.Set;
26
27import org.jclouds.compute.domain.OperatingSystem;
28import org.jclouds.compute.domain.OsFamily;
29import org.jclouds.compute.reference.ComputeServiceConstants;
30import org.jclouds.http.functions.ParseSax;
31import org.jclouds.http.functions.ParseSax.Factory;
32import org.jclouds.http.functions.config.SaxParserModule;
33import org.jclouds.json.Json;
34import org.jclouds.json.config.GsonModule;
35import org.jclouds.trmk.vcloud_0_8.xml.CatalogHandler;
36import org.testng.annotations.Test;
37
38import com.google.common.collect.ImmutableSet;
39import com.google.common.collect.Iterables;
40import com.google.common.collect.Sets;
41import com.google.inject.Guice;
42import com.google.inject.Injector;
43import com.google.inject.TypeLiteral;
44
45/**
46 * @author Adrian Cole
47 */
48@Test(groups = "unit", testName = "TerremarkECloudParseOsFromVAppTemplateNameTest")
49public class TerremarkECloudParseOsFromVAppTemplateNameTest {
50
51 public Set<String> parseNames(String resource) {
52 InputStream is = getClass().getResourceAsStream(resource);
53 Injector injector = Guice.createInjector(new SaxParserModule());
54 Factory factory = injector.getInstance(ParseSax.Factory.class);
55 return factory.create(injector.getInstance(CatalogHandler.class)).parse(is).keySet();
56 }
57
58 public void test() {
59
60 TerremarkECloudParseOsFromVAppTemplateName function = new TerremarkECloudParseOsFromVAppTemplateName(Guice
61 .createInjector(new GsonModule())
62 .getInstance(Json.class)
63 .<Map<OsFamily, Map<String, String>>> fromJson(
64 new ComputeServiceConstants.ReferenceData().osVersionMapJson,
65 new TypeLiteral<Map<OsFamily, Map<String, String>>>() {
66 }.getType()));
67 Set<String> names = parseNames("/catalog-ecloud.xml");
68 assertEquals(
69 Sets.newLinkedHashSet(Iterables.transform(names, function)),
70 ImmutableSet.of(
71
72 // CentOS 5 (x64)
73 new OperatingSystem.Builder().family(OsFamily.CENTOS).version("5.0").description("CentOS 5 (x64)")
74 .is64Bit(true).build(),
75 // CentOS 5 (x86)
76 new OperatingSystem.Builder().family(OsFamily.CENTOS).version("5.0").description("CentOS 5 (x86)")
77 .is64Bit(false).build(),
78 // CentOS 5.5 x32
79 new OperatingSystem.Builder().family(OsFamily.CENTOS).version("5.5").description("CentOS 5.5 x32")
80 .is64Bit(false).build(),
81 // CentOS 5.5 x64
82 new OperatingSystem.Builder().family(OsFamily.CENTOS).version("5.5").description("CentOS 5.5 x64")
83 .is64Bit(true).build(),
84 // Red Hat Enterprise Linux 5 (x64)
85 new OperatingSystem.Builder().family(OsFamily.RHEL).version("5.0")
86 .description("Red Hat Enterprise Linux 5 (x64)").is64Bit(true).build(),
87 // Red Hat Enterprise Linux 5 (x86)
88 new OperatingSystem.Builder().family(OsFamily.RHEL).version("5.0")
89 .description("Red Hat Enterprise Linux 5 (x86)").is64Bit(false).build(),
90 // Red Hat Enterprise Linux 5.5 x32
91 new OperatingSystem.Builder().family(OsFamily.RHEL).version("5.5")
92 .description("Red Hat Enterprise Linux 5.5 x32").is64Bit(false).build(),
93 // Red Hat Enterprise Linux 5.5 x64
94 new OperatingSystem.Builder().family(OsFamily.RHEL).version("5.5")
95 .description("Red Hat Enterprise Linux 5.5 x64").is64Bit(true).build(),
96 // Sun Solaris 10 (x64)
97 new OperatingSystem.Builder().family(OsFamily.SOLARIS).version("10")
98 .description("Sun Solaris 10 (x64)").is64Bit(true).build(),
99 // Ubuntu 8.04 LTS (x64)
100 new OperatingSystem.Builder().family(OsFamily.UBUNTU).version("8.04")
101 .description("Ubuntu 8.04 LTS (x64)").is64Bit(true).build(),
102 // Ubuntu 8.04 LTS (x86)
103 new OperatingSystem.Builder().family(OsFamily.UBUNTU).version("8.04")
104 .description("Ubuntu 8.04 LTS (x86)").is64Bit(false).build(),
105 // Ubuntu Server 10.04 x32
106 new OperatingSystem.Builder().family(OsFamily.UBUNTU).version("10.04")
107 .description("Ubuntu Server 10.04 x32").is64Bit(false).build(),
108 // Ubuntu Server 10.04 x64
109 new OperatingSystem.Builder().family(OsFamily.UBUNTU).version("10.04")
110 .description("Ubuntu Server 10.04 x64").is64Bit(true).build(),
111 // -Windows 2003 Std. R2 SQL 2005 Std. (x64)
112 new OperatingSystem.Builder().family(OsFamily.WINDOWS).version("2003 R2")
113 .description("-Windows 2003 Std. R2 SQL 2005 Std. (x64)").is64Bit(true).build(),
114 // -Windows 2003 Std. R2 SQL 2008 Std. (x64)
115 new OperatingSystem.Builder().family(OsFamily.WINDOWS).version("2003 R2")
116 .description("-Windows 2003 Std. R2 SQL 2008 Std. (x64)").is64Bit(true).build(),
117 // -Windows 2008 R2 Std wSQL 2008 R2 Std (x64)
118 new OperatingSystem.Builder().family(OsFamily.WINDOWS).version("2008 R2")
119 .description("-Windows 2008 R2 Std wSQL 2008 R2 Std (x64)").is64Bit(true).build(),
120 // -Windows 2008 R2 Std wSQL 2008 R2 Web (x64)
121 new OperatingSystem.Builder().family(OsFamily.WINDOWS).version("2008 R2")
122 .description("-Windows 2008 R2 Std wSQL 2008 R2 Web (x64)").is64Bit(true).build(),
123 // -Windows 2008 Std wSQL 2008 Std (x64)
124 new OperatingSystem.Builder().family(OsFamily.WINDOWS).version("2008")
125 .description("-Windows 2008 Std wSQL 2008 Std (x64)").is64Bit(true).build(),
126 // -Windows 2008 Std wSQL 2008 Web (x64)
127 new OperatingSystem.Builder().family(OsFamily.WINDOWS).version("2008")
128 .description("-Windows 2008 Std wSQL 2008 Web (x64)").is64Bit(true).build(),
129 // -Windows Server 2003 R2 Enterprise Edition (x64)
130 new OperatingSystem.Builder().family(OsFamily.WINDOWS).version("2003 R2")
131 .description("-Windows Server 2003 R2 Enterprise Edition (x64)").is64Bit(true).build(),
132 // -Windows Server 2003 R2 Enterprise Edition (x86)
133 new OperatingSystem.Builder().family(OsFamily.WINDOWS).version("2003 R2")
134 .description("-Windows Server 2003 R2 Enterprise Edition (x86)").is64Bit(false).build(),
135 // -Windows Server 2003 R2 Standard Edition (x64)
136 new OperatingSystem.Builder().family(OsFamily.WINDOWS).version("2003 R2")
137 .description("-Windows Server 2003 R2 Standard Edition (x64)").is64Bit(true).build(),
138 // -Windows Server 2003 R2 Standard Edition (x86)
139 new OperatingSystem.Builder().family(OsFamily.WINDOWS).version("2003 R2")
140 .description("-Windows Server 2003 R2 Standard Edition (x86)").is64Bit(false).build(),
141 // -Windows Server 2008 Enterprise Edition (x64)
142 new OperatingSystem.Builder().family(OsFamily.WINDOWS).version("2008")
143 .description("-Windows Server 2008 Enterprise Edition (x64)").is64Bit(true).build(),
144 // -Windows Server 2008 Enterprise Edition (x86)
145 new OperatingSystem.Builder().family(OsFamily.WINDOWS).version("2008")
146 .description("-Windows Server 2008 Enterprise Edition (x86)").is64Bit(false).build(),
147 // -Windows Server 2008 R2 Enterprise Edition (x64)
148 new OperatingSystem.Builder().family(OsFamily.WINDOWS).version("2008 R2")
149 .description("-Windows Server 2008 R2 Enterprise Edition (x64)").is64Bit(true).build(),
150 // -Windows Server 2008 R2 Standard Edition (x64)
151 new OperatingSystem.Builder().family(OsFamily.WINDOWS).version("2008 R2")
152 .description("-Windows Server 2008 R2 Standard Edition (x64)").is64Bit(true).build(),
153 // -Windows Server 2008 R2 Web Edition (x64)
154 new OperatingSystem.Builder().family(OsFamily.WINDOWS).version("2008 R2")
155 .description("-Windows Server 2008 R2 Web Edition (x64)").is64Bit(true).build(),
156 // -Windows Server 2008 Standard Edition (x64)
157 new OperatingSystem.Builder().family(OsFamily.WINDOWS).version("2008")
158 .description("-Windows Server 2008 Standard Edition (x64)").is64Bit(true).build(),
159 // -Windows Server 2008 Standard Edition (x86)
160 new OperatingSystem.Builder().family(OsFamily.WINDOWS).version("2008")
161 .description("-Windows Server 2008 Standard Edition (x86)").is64Bit(false).build(),
162 // -Windows Server 2008 Web Edition (x64)
163 new OperatingSystem.Builder().family(OsFamily.WINDOWS).version("2008")
164 .description("-Windows Server 2008 Web Edition (x64)").is64Bit(true).build(),
165 // -Windows Server 2008 Web Edition (x86)
166 new OperatingSystem.Builder().family(OsFamily.WINDOWS).version("2008")
167 .description("-Windows Server 2008 Web Edition (x86)").is64Bit(false).build()
168
169 ));
170
171 }
172}