/* * Copyright (C) 2013 Intel Corporation * All rights reserved. */ package com.intel.mtwilson.datatypes; import com.intel.dcsg.cpg.validation.Fault; import com.intel.mtwilson.validators.ConnectionStringValidator; import java.net.MalformedURLException; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * * @author jbuhacoff */ public class ConnectionStringTest { private transient Logger log = LoggerFactory.getLogger(getClass()); private void validate(String input) { ConnectionStringValidator validator = new ConnectionStringValidator(); validator.setInput(input); if(!validator.isValid()) { log.error("Invalid connection string: {}", input); for(Fault fault : validator.getFaults()) { log.error("Validation error: {}", fault.toString()); } throw new IllegalArgumentException("Validation failed for: "+input); } } @Test public void testParseIntelVendorConnectionString() throws MalformedURLException { String url = "intel:https://server.com:9999"; ConnectionString.VendorConnection vc = ConnectionString.parseConnectionString(url); log.debug("Intel vendor: {}", vc.vendor); log.debug("Intel url: {}", vc.url); validate(url); } @Test public void testParseCitrixVendorConnectionString() throws MalformedURLException { String url = "citrix:https://server.com:443;username;password"; ConnectionString.VendorConnection vc = ConnectionString.parseConnectionString(url); log.debug("Citrix vendor: {}", vc.vendor); log.debug("Citrix url: {}", vc.url); log.debug("Citrix option username: {}", vc.options == null ? "no options" : vc.options.getString("u")); log.debug("Citrix option password: {}", vc.options == null ? "no options" : vc.options.getString("p")); validate(url); } @Test public void testParseCitrixVendorConnectionStringWithNamedOptions() throws MalformedURLException { String url = "citrix:https://server.com:443;u=username;p=password"; ConnectionString.VendorConnection vc = ConnectionString.parseConnectionString(url); log.debug("Citrix vendor: {}", vc.vendor); log.debug("Citrix url: {}", vc.url); log.debug("Citrix option username: {}", vc.options == null ? "no options" : vc.options.getString("u")); log.debug("Citrix option password: {}", vc.options == null ? "no options" : vc.options.getString("p")); validate(url); } @Test public void testParseVmwareVendorConnectionStringWithHostname() throws MalformedURLException { String url = "vmware:https://server.com:443/sdk;username;password;hostname"; ConnectionString.VendorConnection vc = ConnectionString.parseConnectionString(url); log.debug("Vmware vendor: {}", vc.vendor); log.debug("Vmware url: {}", vc.url); log.debug("Vmware option username: {}", vc.options == null ? "no options" : vc.options.getString("u")); log.debug("Vmware option password: {}", vc.options == null ? "no options" : vc.options.getString("p")); log.debug("Vmware option hostname: {}", vc.options == null ? "no options" : vc.options.getString("h")); validate(url); } @Test public void testParseVmwareVendorConnectionString() throws MalformedURLException { String url = "vmware:https://server.com:443/sdk;username;password"; ConnectionString.VendorConnection vc = ConnectionString.parseConnectionString(url); log.debug("Vmware vendor: {}", vc.vendor); log.debug("Vmware url: {}", vc.url); log.debug("Vmware option username: {}", vc.options == null ? "no options" : vc.options.getString("u")); log.debug("Vmware option password: {}", vc.options == null ? "no options" : vc.options.getString("p")); log.debug("Vmware option hostname: {}", vc.options == null ? "no options" : vc.options.getString("h")); validate(url); } @Test public void testParseVmwareVendorConnectionStringWithNamedOptions() throws MalformedURLException { String url = "vmware:https://server.com:443/sdk;u=username;p=password;h=hostname"; ConnectionString.VendorConnection vc = ConnectionString.parseConnectionString(url); log.debug("Vmware vendor: {}", vc.vendor); log.debug("Vmware url: {}", vc.url); log.debug("Vmware option username: {}", vc.options == null ? "no options" : vc.options.getString("u")); log.debug("Vmware option password: {}", vc.options == null ? "no options" : vc.options.getString("p")); log.debug("Vmware option hostname: {}", vc.options == null ? "no options" : vc.options.getString("h")); validate(url); } @Test public void testCitrixConnectionString() throws MalformedURLException { String url = "citrix:https://server.com:443;username;password"; ConnectionString cs = new ConnectionString(url); log.debug("Hostname: {}", cs.getHostname()); log.debug("Port: {}", cs.getPort()); log.debug("AddOnConnectionString: {}", cs.getAddOnConnectionString()); log.debug("ConnectionString: {}", cs.getConnectionString()); log.debug("ConnectionString with prefix: {}", cs.getConnectionStringWithPrefix()); log.debug("Management Server: {}", cs.getManagementServerName()); validate(url); } @Test public void testCitrixConnectionStringWithNamedParameters() throws MalformedURLException { String url = "citrix:https://server.com:443;u=username;p=password"; ConnectionString cs = new ConnectionString(url); log.debug("Hostname: {}", cs.getHostname().toString()); log.debug("Port: {}", cs.getPort()); log.debug("AddOnConnectionString: {}", cs.getAddOnConnectionString()); log.debug("ConnectionString: {}", cs.getConnectionString()); log.debug("ConnectionString with prefix: {}", cs.getConnectionStringWithPrefix()); log.debug("Management Server: {}", cs.getManagementServerName()); validate(url); } @Test public void testVmwareConnectionString() throws MalformedURLException { String url = "vmware:https://server.com:443/sdk;username;password;hostname"; ConnectionString cs = new ConnectionString(url); log.debug("Hostname: {}", cs.getHostname()); log.debug("Port: {}", cs.getPort()); log.debug("AddOnConnectionString: {}", cs.getAddOnConnectionString()); log.debug("ConnectionString: {}", cs.getConnectionString()); log.debug("ConnectionString with prefix: {}", cs.getConnectionStringWithPrefix()); log.debug("Management Server: {}", cs.getManagementServerName()); validate(url); } @Test public void testVmwareConnectionStringWithNamedParameters() throws MalformedURLException { String url = "vmware:https://server.com:443/sdk;u=username;p=password;h=hostname"; ConnectionString cs = new ConnectionString(url); log.debug("Hostname: {}", cs.getHostname().toString()); log.debug("Port: {}", cs.getPort()); log.debug("AddOnConnectionString: {}", cs.getAddOnConnectionString()); log.debug("ConnectionString: {}", cs.getConnectionString()); log.debug("ConnectionString with prefix: {}", cs.getConnectionStringWithPrefix()); log.debug("Management Server: {}", cs.getManagementServerName()); validate(url); } @Test public void testGuessIntelConnectionStringFromTxtHost() throws MalformedURLException { TxtHostRecord txtHostRecord = new TxtHostRecord(); txtHostRecord.AddOn_Connection_String = null; txtHostRecord.IPAddress = "1.2.3.4"; txtHostRecord.Port = 9999; ConnectionString cs = ConnectionString.from(txtHostRecord); log.debug("Intel vendor: {}", cs.getVendor()); log.debug("Intel url: {}", cs.getConnectionStringWithPrefix()); } }