|
|
|
|
#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}}});
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|