Add Tests
This commit is contained in:
@@ -0,0 +1,195 @@
|
||||
#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
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../Makefile
|
||||
@@ -0,0 +1,24 @@
|
||||
#include "Test.h"
|
||||
#include <Logging.h>
|
||||
|
||||
|
||||
int main(int /*argc*/, char** /*argv*/)
|
||||
{
|
||||
Logging::OpenLog();
|
||||
Logging::SetLogMask(Logging::Severity::Info);
|
||||
|
||||
if (
|
||||
Http::Test::TestHttpClient()
|
||||
)
|
||||
{
|
||||
Logging::Log(Logging::Severity::Info, "Pass");
|
||||
Logging::CloseLog();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Logging::Log(Logging::Severity::Info, "Error");
|
||||
Logging::CloseLog();
|
||||
|
||||
return -1;
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace Http {
|
||||
namespace Test {
|
||||
|
||||
bool TestHttpClient();
|
||||
|
||||
} // namespace Test
|
||||
} // namespace Http
|
||||
Reference in New Issue
Block a user