PageRenderTime 30ms CodeModel.GetById 12ms app.highlight 16ms RepoModel.GetById 0ms app.codeStats 0ms

/providers/trmk-ecloud/src/test/java/org/jclouds/trmk/ecloud/compute/functions/TerremarkECloudParseOsFromVAppTemplateNameTest.java

https://github.com/regularfry/jclouds
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}