package de.epages.ws; import java.net.MalformedURLException; import java.net.URL; /** * Common configuration data for all web service tests. * * It can be configured by * - setting System property "wsUrl" (e.g. https://yourhost/epages/Store.soap * default will be from reading wsHostName and appending /epages/Store.soap * - setting System property "wsHostName" (e.g. yourhost * default will be from reading "SystemDomainName" from epages.conf * - setting System property "wsUser" (e.g. /Shops/SomeShop/Users/someUser * default will be /Shops/DemoShop/Users/admin * - setting System property "wsPassword" (e.g. somPassXX) * default will be admin * - setting System property "wsAppName" (e.g. somApp) * default will be none * - setting System property "wsAppPassword" (e.g. somAppPassword) * default will be none */ public class ShopWebServiceTestConfiguration implements WebServiceConfiguration { private String wsLogin; private String wsPassword; private final URL wsUrl; public ShopWebServiceTestConfiguration() { String wsUrl = System.getProperty("wsUrl"); wsLogin = System.getProperty("wsUser", "/Shops/DemoShop/Users/admin"); wsPassword = System.getProperty("wsPassword", "admin"); if (System.getProperty("wsAppName") != null) { wsLogin += (char)1 + System.getProperty("wsAppName"); } if (System.getProperty("wsAppPassword") != null) { wsPassword += (char)1 + System.getProperty("wsAppPassword"); } try { this.wsUrl = wsUrl != null ? new URL(wsUrl) : new URL(deriveWebserviceUrl()); } catch (MalformedURLException e) { throw new IllegalArgumentException("could not derive webservice url (tried wsUrl and wsHostName properties, and reading local epages.conf)", e); } } @Override public URL getWebserviceURL() { return wsUrl; } @Override public String getUsername() { return wsLogin; } @Override public String getPassword() { return wsPassword; } private static String deriveWebserviceUrl() { String ep6HostName = System.getProperty("wsHostName"); if (ep6HostName == null) { ep6HostName = LocalEpagesConfReader.getHostNameFromEpagesConf(); } return String.format("http://%1$s/epages/Store.soap", ep6HostName); } }