#include "se/PollResponse.hpp" #include "se/CLTRID.hpp" #include "common/init.hpp" #include "se/EPPDateFormatter.hpp" #include "xml/XMLParser.hpp" #include "session/Timer.hpp" #include "common/Test.hpp" #include using namespace std; void testContactTransferApprovePoll(); void testDomainTransferApprovePoll(); PollResponse& getPollResponse(const string xml); void doWork() { init("./etc/toolkit2.conf"); testContactTransferApprovePoll(); testDomainTransferApprovePoll(); } void testContactTransferApprovePoll() { const string xml = "Command completed successfully; ack to dequeue2000-06-08T22:00:00.0ZTransfer requested.ACTKUTSTpendingClientX2000-06-08T22:00:00.0ZClientY2000-06-13T22:00:00.0ZABC-1234554321-XYZ"; PollResponse& response(getPollResponse(xml)); const ContactTransferResponse* ctr = response.getContactTransferResponse(); ASSERT(ctr != NULL); ASSERT_EQ("ACTKUTST", ctr->getID()); ASSERT_EQ("pending", ctr->getTransferStatus()); ASSERT_EQ("ClientX", ctr->getRequestingClID()); ASSERT_EQ("ClientY", ctr->getActioningClID()); const vector& results(response.getResults()); ASSERT_EQ(1, results.size()); ASSERT_EQ(1301, results[0].getResultCode()); ASSERT_EQ( "Command completed successfully; ack to dequeue", results[0].getResultMessage()); ASSERT_EQ("ABC-12345", response.getCLTRID()); const XMLGregorianCalendar *qDate1 = response.getMessageEnqueueDate(); std::string res = EPPDateFormatter::toXSDateTime(*qDate1); ASSERT_EQ(res, "2000-06-08T22:00:00.0Z"); ASSERT_EQ("Transfer requested.", response.getMessage()); ASSERT_EQ("en", response.getMessageLanguage()); ASSERT_EQ(5, response.getMsgCount()); ASSERT_EQ("12345", response.getMsgID()); } void testDomainTransferApprovePoll() { const string xml = "Command completed successfully; ack to dequeue2000-06-08T22:00:00.0ZTransfer requested.example.compendingClientX2000-06-08T22:00:00.0ZClientY2000-06-13T22:00:00.0Z2002-09-08T22:00:00.0ZABC-1234554321-XYZ"; PollResponse& response(getPollResponse(xml)); const DomainTransferResponse* dtr = response.getDomainTransferResponse(); ASSERT(dtr != NULL); ASSERT_EQ("example.com", dtr->getName()); ASSERT_EQ("pending", dtr->getTransferStatus()); ASSERT_EQ("ClientX", dtr->getRequestingClID()); ASSERT_EQ("ClientY", dtr->getActioningClID()); const vector& results(response.getResults()); ASSERT_EQ(1, results.size()); ASSERT_EQ(1301, results[0].getResultCode()); ASSERT_EQ( "Command completed successfully; ack to dequeue", results[0].getResultMessage()); ASSERT_EQ("ABC-12345", response.getCLTRID()); const XMLGregorianCalendar *qDate1 = response.getMessageEnqueueDate(); std::string res = EPPDateFormatter::toXSDateTime(*qDate1); ASSERT_EQ(res, "2000-06-08T22:00:00.0Z"); ASSERT_EQ("Transfer requested.", response.getMessage()); ASSERT_EQ("en", response.getMessageLanguage()); ASSERT_EQ(5, response.getMsgCount()); ASSERT_EQ("12345", response.getMsgID()); } PollResponse& getPollResponse(const string xml) { PollResponse *response = new PollResponse(); XMLParser parser; response->fromXML(parser.parse(xml)); return *response; } int main(int argc, char* argv[]) { TEST_run(doWork); return TEST_errorCount(); }