| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- #include "Test.h"
- #include "HttpClient.h"
- #include <Logging.h>
- #include <sstream>
- namespace Http {
- namespace Test {
- bool Execute(HttpClient& client, HttpRequest& request)
- {
- std::stringstream ss;
- try
- {
- client.Open(request);
- ss << "| SUCCESS |" << std::endl;
- Logging::Log(Logging::Severity::Info, ss.str());
- return true;
- }
- catch (const std::exception& e)
- {
- ss << "| FAIL |" << e.what() << std::endl;
- Logging::Log(Logging::Severity::Info, ss.str());
- return false;
- }
- }
- // -----
- bool TestHttpClientGet(HttpClient& client, HttpRequest& request)
- {
- std::stringstream ss;
- ss << "| GET |" << std::endl;
- Logging::Log(Logging::Severity::Info, ss.str());
- request.Method(HttpRequest::Method::GET);
- return Execute(client, request);
- }
- bool TestHttpClientHead(HttpClient& client, HttpRequest& request)
- {
- std::stringstream ss;
- ss << "| HEAD |" << std::endl;
- Logging::Log(Logging::Severity::Info, ss.str());
- request.Method(HttpRequest::Method::HEAD);
- return Execute(client, request);
- }
- bool TestHttpClientPost(HttpClient& client, HttpRequest& request)
- {
- std::stringstream ss;
- ss << "| POST |" << std::endl;
- Logging::Log(Logging::Severity::Info, ss.str());
- request.Method(HttpRequest::Method::POST);
- return Execute(client, request);
- }
- bool TestHttpClientPut(HttpClient& client, HttpRequest& request)
- {
- std::stringstream ss;
- ss << "| PUT |" << std::endl;
- Logging::Log(Logging::Severity::Info, ss.str());
- request.Method(HttpRequest::Method::PUT);
- return Execute(client, request);
- }
- bool TestHttpClientDelete(HttpClient& client, HttpRequest& request)
- {
- std::stringstream ss;
- ss << "| DELETE |" << std::endl;
- Logging::Log(Logging::Severity::Info, ss.str());
- request.Method(HttpRequest::Method::DELETE);
- return Execute(client, request);
- }
- bool TestHttpClientConnect(HttpClient& client, HttpRequest& request)
- {
- std::stringstream ss;
- ss << "| CONNECT |" << std::endl;
- Logging::Log(Logging::Severity::Info, ss.str());
- request.Method(HttpRequest::Method::CONNECT);
- return Execute(client, request);
- }
- bool TestHttpClientTrace(HttpClient& client, HttpRequest& request)
- {
- std::stringstream ss;
- ss << "| TRACE |" << std::endl;
- Logging::Log(Logging::Severity::Info, ss.str());
- request.Method(HttpRequest::Method::TRACE);
- return Execute(client, request);
- }
- bool TestHttpClientPatch(HttpClient& client, HttpRequest& request)
- {
- std::stringstream ss;
- ss << "| PATCH |" << std::endl;
- Logging::Log(Logging::Severity::Info, ss.str());
- request.Method(HttpRequest::Method::PATCH);
- return Execute(client, request);
- }
- // -----
- bool TestHttpClientNone(HttpClient& client, HttpRequest& request)
- {
- std::stringstream ss;
- ss << "| None |" << std::endl;
- Logging::Log(Logging::Severity::Info, ss.str());
- request.ReturnType(HttpRequest::ReturnType::Code);
- return Execute(client, request);
- }
- bool TestHttpClientCode(HttpClient& client, HttpRequest& request)
- {
- std::stringstream ss;
- ss << "| Code |" << std::endl;
- Logging::Log(Logging::Severity::Info, ss.str());
- request.ReturnType(HttpRequest::ReturnType::Code);
- return Execute(client, request);
- }
- bool TestHttpClientContent(HttpClient& client, HttpRequest& request)
- {
- std::stringstream ss;
- ss << "| Content |" << std::endl;
- Logging::Log(Logging::Severity::Info, ss.str());
- request.ReturnType(HttpRequest::ReturnType::Content);
- return Execute(client, request);
- }
- bool TestHttpClientRedirect(HttpClient& client, HttpRequest& request)
- {
- std::stringstream ss;
- ss << "| Redirect |";
- Logging::Log(Logging::Severity::Info, ss.str());
- request.ReturnType(HttpRequest::ReturnType::Redirect);
- return Execute(client, request);
- }
- // -----
- bool TestHttpClient()
- {
- std::stringstream ss;
- ss << "----------------------------------" << std::endl;
- ss << "| TestHttpClient |" << std::endl;
- ss << "----------------------------------" << std::endl;
- Logging::Log(Logging::Severity::Info, ss.str());
- HttpClient client;
- HttpRequest request("http://nginx.dierkse.nl");
- bool success = true;
- request.ReturnType(HttpRequest::ReturnType::Code);
- success = TestHttpClientGet(client, request) && success;
- success = TestHttpClientHead(client, request) && success;
- success = TestHttpClientPost(client, request) && success;
- success = TestHttpClientPut(client, request) && success;
- success = TestHttpClientDelete(client, request) && success;
- success = TestHttpClientConnect(client, request) && success;
- success = TestHttpClientTrace(client, request) && success;
- success = TestHttpClientPatch(client, request) && success;
- ss.str("");
- ss << "----------------------------------" << std::endl;
- Logging::Log(Logging::Severity::Info, ss.str());
- request.Method(HttpRequest::Method::GET);
- success = TestHttpClientNone(client, request) && success;
- success = TestHttpClientCode(client, request) && success;
- success = TestHttpClientContent(client, request) && success;
- success = TestHttpClientRedirect(client, request) && success;
- ss.str("");
- ss << "==================================" << std::endl << std::endl;
- Logging::Log(Logging::Severity::Info, ss.str());
- return success;
- }
- } // namespace Test
- } // namespace Http
|