Newer
Older
#include <vereign/grpc/server.hh>
#include <vereign/core/scope_guard.hh>
#include <vereign/client_library/passport_api.gen.grpc.pb.h>
#include <util/env.hh>
#include <util/protobuf.hh>
#include "catch.hpp"
#include <grpcpp/create_channel.h>
TEST_CASE("Server", "[vereign/grpc/server][.integration]") {
auto publicKey = vereign::test::RequireEnv("TEST_VEREIGN_PUB_KEY");
auto host = vereign::test::RequireEnv("TEST_VEREIGN_API_HOST");
auto port = vereign::test::GetEnv("TEST_VEREIGN_API_PORT", "https");
vereign::grpc::Server server{"localhost:", host, port, publicKey};
auto on_exit = vereign::core::MakeScopeGuard([&server] {
server.Shutdown();
});
auto channel = ::grpc::CreateChannel(
"localhost:" + std::to_string(server.SelectedPort()),
::grpc::InsecureChannelCredentials()
);
auto client = vereign::client_library::PassportAPI::NewStub(channel);
vereign::client_library::ListPassportsForm req;
vereign::client_library::ListPassportsFormResponse resp;
::grpc::ClientContext ctx;
auto status = client->ListPassports(&ctx, req, &resp);
// std::cout << vereign::test::ProtobufToJson(resp) << std::endl;
REQUIRE(status.error_message() == "");
REQUIRE(resp.error() == "");
CHECK(resp.status() == "OK");
CHECK(resp.code() == "200");
CHECK(resp.data().size() > 0);
for (auto& passport : resp.data()) {
CHECK(passport.uuid().size() == 36);
}
req.Clear();
resp.Clear();
::grpc::ClientContext manually_ctx;
status = client->ListPassportsManually(&manually_ctx, req, &resp);
// std::cout << vereign::test::ProtobufToJson(resp) << std::endl;
REQUIRE(status.error_message() == "");
REQUIRE(resp.error() == "");
CHECK(resp.status() == "OK");
CHECK(resp.code() == "200");
CHECK(resp.data().size() > 0);
for (auto& passport : resp.data()) {
CHECK(passport.uuid().size() == 36);
}
grpc_shutdown();
google::protobuf::ShutdownProtobufLibrary();
}