Skip to content

Commit

Permalink
Testing ok.
Browse files Browse the repository at this point in the history
  • Loading branch information
Adrien4193 committed May 29, 2024
1 parent 55b6072 commit 824072c
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 2 deletions.
2 changes: 0 additions & 2 deletions src/brayns/core/api/Api.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@

#include <fmt/format.h>

#include <brayns/core/jsonrpc/Errors.h>

namespace brayns::experimental
{
Api::Api(std::map<std::string, Endpoint> endpoints):
Expand Down
1 change: 1 addition & 0 deletions src/brayns/core/api/Api.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
#include <string_view>
#include <type_traits>

#include <brayns/core/jsonrpc/Errors.h>
#include <brayns/core/jsonrpc/Messages.h>
#include <brayns/core/jsonv2/Json.h>
#include <brayns/core/utils/FunctorReflector.h>
Expand Down
47 changes: 47 additions & 0 deletions tests/core/api/TestApi.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,5 +62,52 @@ TEST_CASE("Api")
CHECK_EQ(std::get<int>(response.id), 0);
CHECK_EQ(response.result.extract<float>(), 3.0f);
CHECK_EQ(response.binary, "");

request.method = "invalid";
CHECK_THROWS_AS(api.execute(request), MethodNotFound);
request.method = "test";

request.params = "invalidString";
CHECK_THROWS_AS(api.execute(request), InvalidParams);
request.params = 2;

request.binary = "123";
CHECK_THROWS_AS(api.execute(request), InvalidParams);
request.binary = "";

CHECK_THROWS_AS(api.getSchema("invalidParams"), InvalidParams);
}
SUBCASE("No params or no results")
{
auto called = false;
auto buffer = 0;

auto builder = ApiBuilder();

builder.endpoint("test1", [] { return 0; });
builder.endpoint("test2", [&] { called = true; });
builder.endpoint("test3", [&](int value) { buffer = value; });

auto api = builder.build();

auto request = JsonRpcRequest{
.id = 0,
.method = "test1",
.params = {},
};

auto response = api.execute(request);
CHECK_EQ(response.result.extract<int>(), 0);

request.method = "test2";
response = api.execute(request);
CHECK(called);
CHECK(response.result.isEmpty());

request.method = "test3";
request.params = 3;
response = api.execute(request);
CHECK(response.result.isEmpty());
CHECK_EQ(buffer, 3);
}
}

0 comments on commit 824072c

Please sign in to comment.