From 316d20c495bf8c6ab4723411a18ed30016586a8f Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Fri, 3 Feb 2017 15:35:15 -0600 Subject: [PATCH] More unit tests --- SiaDrive.Api/SiaCurl.cpp | 17 +++++++++++++---- UnitTests/SiaApiTests.cpp | 4 ++-- UnitTests/SiaCurlTests.cpp | 20 +++++++++++++++----- UnitTests/SiaWalletApiTests.cpp | 2 +- UnitTests/UnitTestConfig.h | 2 ++ 5 files changed, 33 insertions(+), 12 deletions(-) diff --git a/SiaDrive.Api/SiaCurl.cpp b/SiaDrive.Api/SiaCurl.cpp index 73ab744..01c2222 100644 --- a/SiaDrive.Api/SiaCurl.cpp +++ b/SiaDrive.Api/SiaCurl.cpp @@ -55,12 +55,21 @@ SiaCurlError CSiaCurl::_Get(const String& path, json& response) const })); curl_easy_setopt(_curlHandle, CURLOPT_WRITEDATA, &result); const CURLcode res = curl_easy_perform(_curlHandle); - if (res != CURLE_OK) + if (res == CURLE_OK) { - ret = SiaCurlError::UnknownFailure; + ret = CheckApiError((response = json::parse(result.c_str()))); + } + else + { + if ((res == CURLE_COULDNT_RESOLVE_HOST) || (res == CURLE_COULDNT_CONNECT)) + { + ret = SiaCurlError::NoResponse; + } + else + { + ret = SiaCurlError::UnknownFailure; + } } - - ret = CheckApiError((response = json::parse(result.c_str()))); } return ret; diff --git a/UnitTests/SiaApiTests.cpp b/UnitTests/SiaApiTests.cpp index 531b613..25289fc 100644 --- a/UnitTests/SiaApiTests.cpp +++ b/UnitTests/SiaApiTests.cpp @@ -10,12 +10,12 @@ namespace UnitTests TEST_CLASS(SiaApi) { private: - const SiaHostConfig TEST_HOST_CONFIG = { L"localhost", 9980, TEST_SERVER_VERSION }; + const SiaHostConfig _hostConfig = { TEST_SERVER_AND_PORT, TEST_SERVER_VERSION }; public: TEST_METHOD(GetServerVersion) { - CSiaApi api(TEST_HOST_CONFIG); + CSiaApi api(_hostConfig); Assert::IsTrue(api.GetServerVersion() == TEST_SERVER_VERSION); } }; diff --git a/UnitTests/SiaCurlTests.cpp b/UnitTests/SiaCurlTests.cpp index 5ee1d95..d61a157 100644 --- a/UnitTests/SiaCurlTests.cpp +++ b/UnitTests/SiaCurlTests.cpp @@ -10,10 +10,20 @@ namespace UnitTests TEST_CLASS(SiaCurl) { public: + TEST_METHOD(InvalidHostConfiguration) + { + CSiaCurl s; + s.SetHostConfig({ L"localhoss", 9980, TEST_SERVER_VERSION }); + + json result; + SiaCurlError err = s.Get(L"/daemon/version", result); + Assert::IsTrue(err == SiaCurlError::NoResponse); + } + TEST_METHOD(GetBasicTest) { CSiaCurl s; - s.SetHostConfig({ L"localhost", 9980, TEST_SERVER_VERSION }); + s.SetHostConfig({ TEST_SERVER_AND_PORT, TEST_SERVER_VERSION }); json result; SiaCurlError err = s.Get(L"/daemon/version", result); @@ -23,7 +33,7 @@ namespace UnitTests TEST_METHOD(EmptyHostConfigRequiredVersion) { CSiaCurl s; - s.SetHostConfig({ L"localhost", 9980, L"" }); + s.SetHostConfig({ TEST_SERVER_AND_PORT, L"" }); json result; SiaCurlError err = s.Get(L"/daemon/version", result); @@ -33,7 +43,7 @@ namespace UnitTests TEST_METHOD(ServerVersionDoesNotMatchRequiredVersion) { CSiaCurl s; - s.SetHostConfig({ L"localhost", 9980, L"ouaoeuaoeuaoeu" }); + s.SetHostConfig({ TEST_SERVER_AND_PORT, L"ouaoeuaoeuaoeu" }); json result; SiaCurlError err = s.Get(L"/daemon/version", result); @@ -43,7 +53,7 @@ namespace UnitTests TEST_METHOD(MissingBeginningForwardSlash) { CSiaCurl s; - s.SetHostConfig({ L"localhost", 9980, TEST_SERVER_VERSION }); + s.SetHostConfig({ TEST_SERVER_AND_PORT, TEST_SERVER_VERSION }); json result; SiaCurlError err = s.Get(L"daemon/version", result); @@ -53,7 +63,7 @@ namespace UnitTests TEST_METHOD(InvalidCharactersInPath) { CSiaCurl s; - s.SetHostConfig({ L"localhost", 9980, TEST_SERVER_VERSION }); + s.SetHostConfig({ TEST_SERVER_AND_PORT, TEST_SERVER_VERSION }); json result; SiaCurlError err = s.Get(L"~~~^**()Z&%$#daemon/version", result); diff --git a/UnitTests/SiaWalletApiTests.cpp b/UnitTests/SiaWalletApiTests.cpp index 5250f51..6cc472b 100644 --- a/UnitTests/SiaWalletApiTests.cpp +++ b/UnitTests/SiaWalletApiTests.cpp @@ -10,7 +10,7 @@ namespace UnitTests TEST_CLASS(SiaWalletApi) { private: - CSiaApi _api = CSiaApi({ L"localhost", 9980, TEST_SERVER_VERSION }); + CSiaApi _api = CSiaApi({ TEST_SERVER_AND_PORT, TEST_SERVER_VERSION }); public: TEST_METHOD(GetWallet) diff --git a/UnitTests/UnitTestConfig.h b/UnitTests/UnitTestConfig.h index fce131e..6965785 100644 --- a/UnitTests/UnitTestConfig.h +++ b/UnitTests/UnitTestConfig.h @@ -1,4 +1,6 @@ #pragma once +#define TEST_SERVER_AND_PORT L"localhost", 9980 #define TEST_SERVER_VERSION L"1.1.0" + using namespace Sia::Api; \ No newline at end of file