You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.5 KiB
49 lines
1.5 KiB
#include <Catch/fakeit.hpp> |
|
#include <ServerContext.hpp> |
|
#include <SessionContext.hpp> |
|
#include <torrents.hpp> |
|
|
|
using namespace std; |
|
|
|
const nlohmann::json torrent = { |
|
{"hash", "12a"}, |
|
{"paused", false}, |
|
{"seeding", false}, |
|
{"state", 0}, |
|
{"priority", 0}, |
|
{"name", "Arch"} |
|
}; |
|
|
|
SCENARIO("We are running a GET /session/torrents resource") { |
|
auto torrent_session = TestSession(); |
|
auto response = std::make_shared<TestResponse>(); |
|
auto request = std::make_shared<TestRequest>(); |
|
GIVEN("the server is not working properly") { |
|
AND_WHEN("we recive a request") { |
|
tr::session::torrents::get(torrent_session, response, request); |
|
THEN("the server should reply with service unavailable") { |
|
CommonResponse::service_unavailable(response); |
|
} |
|
} |
|
} |
|
GIVEN("the server is working properly") { |
|
torrent_session.valid = true; |
|
WHEN("we recive a valid request") { |
|
GIVEN("we have no torrents") { |
|
THEN("the server should reply with an empty array") { |
|
tr::session::torrents::get(torrent_session,response,request); |
|
CommonResponse::ok(response, {{"torrents", nlohmann::json::array()}}); |
|
} |
|
} |
|
GIVEN("we have at least one torrent"){ |
|
auto t_torrent=TestTorrent(); |
|
torrent_session.get_torrents().emplace_back(t_torrent); |
|
THEN("the server should reply with an array of torrents"){ |
|
tr::session::torrents::get(torrent_session,response,request); |
|
CommonResponse::ok(response, {{"torrents", {torrent}}}); |
|
} |
|
} |
|
} |
|
} |
|
|
|
} |