#ifndef __TEST_ENVIRONMENT_HPP #define __TEST_ENVIRONMENT_HPP #include "session/SessionManagerProperties.hpp" #include "se/StandardCommandType.hpp" #include /// Provides a trivial, fixed implememtnation of SessionManagerProperties /// for unit testing. // @todo Load from env file, not hard code. class TestEnvironment : public SessionManagerProperties { public: TestEnvironment(const std::string& sitePropsFile = "") { using namespace std; const std::string sitePropsEnvName("EPP_SITE_PROPERTIES"); const std::string defaultFile("etc/site.properties"); string file(sitePropsFile); if (file.size() == 0) { if (getenv(sitePropsEnvName.c_str())) { file = getenv(sitePropsEnvName.c_str()); } else { file = defaultFile; } } try { siteProps.load(file); } catch (PropertyConfigException& e) { EPPException err("Could not open site configuration file. Tried '" + defaultFile + "', the environment variable '" + sitePropsEnvName + "' and the passed in file '" + sitePropsFile + "'."); err.causedBy(e); throw err; } pw = siteProps.getProperty("epp.client.password"); } virtual ~TestEnvironment() { } // SessionProperties API [begin] std::string getHostname() const { return siteProps.getProperty("epp.server.hostname"); } int getPort() const { return siteProps.getIntProperty("epp.server.port"); } std::string getClientID() const { return siteProps.getProperty("epp.client.clID"); } std::string getClientPW() const { return pw;} std::string getVersion() const { return "1.0";} std::string getLanguage() const { return "en";} std::vector getObjURIs() const { std::vector vec; vec.push_back("urn:ietf:params:xml:ns:domain-1.0"); vec.push_back("urn:ietf:params:xml:ns:contact-1.0"); vec.push_back("urn:ietf:params:xml:ns:host-1.0"); return vec; } std::vector getExtURIs() const { std::vector vec; vec.push_back("urn:X-au:params:xml:ns:auext-1.1"); return vec; } std::string getPrivateKeyFilename() const { return siteProps.getProperty("ssl.privatekey.location"); } std::string getCertFilename() const { return siteProps.getProperty("ssl.cert.location"); } std::string getCAFilename() const { return siteProps.getProperty("ssl.ca.location"); } std::string getPrivateKeyPassphrase() const { return siteProps.getProperty("ssl.privatekey.pass"); } std::string getSSLVersion() const { return "TLSv1";} long getWaitTimeout() const { return 120000;} int getCommandLimit() const { return 1000; } int getCommandLimit(const CommandType* type) const { const StandardCommandType* t = dynamic_cast(type); if (t == NULL) return 10; if (t == StandardCommandType::POLL()) { return 5; } return 1; } long getCommandLimitInterval() const { return 5000; } long getAcquireTimeout() const { return 20000L; } // SessionProperties API [end] // SessionPoolProperties API [begin] int getMaximumPoolSize() const { return 10; } int getSocketTimeout() const { return 60000; } long getServerTimeout() const { return 600000L; } long getClientTimeout() const { return 120000L; } // SessionPoolProperties API [end] void setClientPW(const std::string& p) { pw = p; } bool enforceStrictValidation() const { return true; } public: std::string pw; std::string sitePropsFile; Properties siteProps; TestEnvironment(const TestEnvironment&); TestEnvironment& operator=(const TestEnvironment&); }; #endif // __TEST_ENVIRONMENT_HPP