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

fixed tests

This commit is contained in:
Falk Werner
2020-06-25 19:21:00 +02:00
parent dc6e05b1b8
commit aa06846c15
5 changed files with 95 additions and 40 deletions

View File

@@ -4,24 +4,40 @@
#include "webfuse_provider/test_util/client.hpp"
#include <gtest/gtest.h>
#include <future>
#include <chrono>
using webfuse_test::WebfuseServer;
using webfuse_test::MockProviderClient;
using webfuse_test::Client;
using testing::Invoke;
#define TIMEOUT (std::chrono::seconds(10))
TEST(Client, Connect)
{
MockProviderClient provider;
EXPECT_CALL(provider, OnConnected()).Times(1);
EXPECT_CALL(provider, OnDisconnected()).Times(1);
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(); }));
wfp_client_config * config = wfp_client_config_create();
provider.AttachTo(config);
WebfuseServer server;
Client client(config, server.GetUrl());
{
WebfuseServer server;
Client client(config, server.GetUrl());
server.AwaitConnection();
ASSERT_EQ(std::future_status::ready, connected.get_future().wait_for(TIMEOUT));
client.Disconnect();
ASSERT_EQ(std::future_status::ready, disconnected.get_future().wait_for(TIMEOUT));
}
wfp_client_config_dispose(config);
}
@@ -29,8 +45,14 @@ TEST(Client, Connect)
TEST(Client, ConnectWithTls)
{
MockProviderClient provider;
EXPECT_CALL(provider, OnConnected()).Times(1);
EXPECT_CALL(provider, OnDisconnected()).Times(1);
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(); }));
wfp_client_config * config = wfp_client_config_create();
wfp_client_config_set_certpath(config, "client-cert.pem");
@@ -38,10 +60,15 @@ TEST(Client, ConnectWithTls)
wfp_client_config_set_ca_filepath(config, "server-cert.pem");
provider.AttachTo(config);
WebfuseServer server(true);
Client client(config, server.GetUrl());
{
WebfuseServer server(true);
Client client(config, server.GetUrl());
server.AwaitConnection();
ASSERT_EQ(std::future_status::ready, connected.get_future().wait_for(TIMEOUT));
client.Disconnect();
ASSERT_EQ(std::future_status::ready, disconnected.get_future().wait_for(TIMEOUT));
}
wfp_client_config_dispose(config);
}