|
|
|
|
@ -5,8 +5,28 @@
|
|
|
|
|
using namespace std; |
|
|
|
|
|
|
|
|
|
class TestTorrent {}; |
|
|
|
|
class TestRequest : public std::stringstream {}; |
|
|
|
|
class TestResponse : public std::stringstream {}; |
|
|
|
|
class TestRequest { |
|
|
|
|
std::stringstream content; |
|
|
|
|
}; |
|
|
|
|
class TestResponse : public std::stringstream { |
|
|
|
|
public: |
|
|
|
|
std::string buffer; |
|
|
|
|
auto string() { |
|
|
|
|
buffer = str(); |
|
|
|
|
return buffer; |
|
|
|
|
} |
|
|
|
|
auto message() { |
|
|
|
|
if (buffer.empty()) |
|
|
|
|
string(); |
|
|
|
|
auto msg = buffer.substr(13, buffer.find('\r') - 13); |
|
|
|
|
return msg; |
|
|
|
|
} |
|
|
|
|
auto code() { |
|
|
|
|
if (buffer.empty()) |
|
|
|
|
string(); |
|
|
|
|
return buffer.substr(9, 3); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
class TestSessionSettings { |
|
|
|
|
public: |
|
|
|
|
@ -53,13 +73,26 @@ SCENARIO("We recive a GET request to the /session resource") {
|
|
|
|
|
auto request = std::make_shared<TestResponse>(); |
|
|
|
|
tr::session::get(torrent_session, response, request); |
|
|
|
|
THEN("the server should reply with service unavailable") { |
|
|
|
|
REQUIRE(response->str() == service_unavailable_json); |
|
|
|
|
REQUIRE(response->string() == service_unavailable_json); |
|
|
|
|
REQUIRE(response->code() == "503"); |
|
|
|
|
REQUIRE(response->message() == "Service Unavailable"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
GIVEN("the session is valid") { |
|
|
|
|
auto request = std::make_shared<TestResponse>(); |
|
|
|
|
torrent_session.valid = true; |
|
|
|
|
tr::session::get(torrent_session, response, request); |
|
|
|
|
THEN("the server should reply with status 200 OK") { |
|
|
|
|
REQUIRE(response->string() == ok_json); |
|
|
|
|
REQUIRE(response->code() == "200"); |
|
|
|
|
REQUIRE(response->message() == "OK"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
GIVEN("the session is paused") { |
|
|
|
|
auto request = std::make_shared<TestResponse>(); |
|
|
|
|
torrent_session.valid = true; |
|
|
|
|
torrent_session.paused = true; |
|
|
|
|
tr::session::get(torrent_session, response, request); |
|
|
|
|
THEN("the server should reply with service unavailable") { |
|
|
|
|
REQUIRE(response->str() == ok_json); |
|
|
|
|
} |
|
|
|
|
|