From 942131ce3beed9fc7e6def241603061ca2d3d00a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20Lien=20Sell=C3=A6g?= Date: Mon, 1 May 2017 00:28:06 +0200 Subject: [PATCH] Test status codes --- toREST/tests/session_test.cpp | 39 ++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/toREST/tests/session_test.cpp b/toREST/tests/session_test.cpp index af12426..ee79d1a 100644 --- a/toREST/tests/session_test.cpp +++ b/toREST/tests/session_test.cpp @@ -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(); 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(); 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(); + 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); }