1
0
mirror of https://github.com/falk-werner/webfuse-provider synced 2026-03-02 04:09:18 +00:00

added test for lookup

This commit is contained in:
Falk Werner
2020-06-25 21:19:45 +02:00
parent aa06846c15
commit b45b7873ab
4 changed files with 130 additions and 5 deletions

View File

@@ -11,6 +11,8 @@ using webfuse_test::WebfuseServer;
using webfuse_test::MockProviderClient;
using webfuse_test::Client;
using testing::Invoke;
using testing::_;
using testing::StrEq;
#define TIMEOUT (std::chrono::seconds(10))
@@ -42,6 +44,56 @@ TEST(Client, Connect)
wfp_client_config_dispose(config);
}
TEST(Client, Lookup)
{
MockProviderClient provider;
std::promise<void> connected;
EXPECT_CALL(provider, OnConnected()).Times(1)
.WillOnce(Invoke([&]() { connected.set_value(); }));
std::promise<void> disconnected;
EXPECT_CALL(provider, OnDisconnected()).Times(1)
.WillOnce(Invoke([&]() { disconnected.set_value(); }));
EXPECT_CALL(provider, Lookup(1,StrEq("foo"),_)).Times(1)
.WillOnce(Invoke([](ino_t, char const *, struct stat * result) {
result->st_ino = 42;
result->st_mode = S_IFREG | 0644;
}));
wfp_client_config * config = wfp_client_config_create();
provider.AttachTo(config);
{
WebfuseServer server;
Client client(config, server.GetUrl());
ASSERT_EQ(std::future_status::ready, connected.get_future().wait_for(TIMEOUT));
json_t * response = server.Lookup(1, "foo");
ASSERT_TRUE(json_is_object(response));
json_t * result = json_object_get(response, "result");
json_t * inode = json_object_get(result, "inode");
ASSERT_EQ(42, json_integer_value(inode));
json_t * mode = json_object_get(result, "mode");
ASSERT_EQ(0644, json_integer_value(mode));
json_t * type = json_object_get(result, "type");
ASSERT_STREQ("file", json_string_value(type));
json_decref(response);
client.Disconnect();
ASSERT_EQ(std::future_status::ready, disconnected.get_future().wait_for(TIMEOUT));
}
wfp_client_config_dispose(config);
}
TEST(Client, ConnectWithTls)
{
MockProviderClient provider;