1
0
mirror of https://github.com/falk-werner/webfuse synced 2025-06-13 12:54:15 +00:00

adds mock of wpf_request

This commit is contained in:
Falk Werner 2019-04-20 10:05:36 +02:00
parent fc21b7ee2b
commit 27553a14d7
4 changed files with 103 additions and 0 deletions

View File

@ -290,6 +290,7 @@ pkg_check_modules(GMOCK gmock)
add_executable(alltests
test/msleep.cc
test/mock_authenticator.cc
test/mock_request.cc
test/test_container_of.cc
test/test_response_parser.cc
test/test_server.cc
@ -302,6 +303,7 @@ add_executable(alltests
test/test_string.cc
test/test_slist.cc
test/test_path.cc
test/test_static_filesystem.cc
)
target_link_libraries(alltests PUBLIC webfuse-adapter-static webfuse-provider-static webfuse-core ${EXTRA_LIBS} ${GMOCK_LIBRARIES} ${GTEST_LIBRARIES})

37
test/mock_request.cc Normal file
View File

@ -0,0 +1,37 @@
#include "mock_request.hpp"
#include <cstdlib>
namespace
{
extern "C" void
respond(
json_t * response,
void * user_data)
{
(void) response;
webfuse_test::Request * request = reinterpret_cast<webfuse_test::Request*>(user_data);
request->respond_error(nullptr, 0);
}
}
namespace webfuse_test
{
struct wfp_request *
request_create(
Request * req,
int id)
{
struct wfp_request * request = reinterpret_cast<struct wfp_request *>(malloc(sizeof(struct wfp_request)));
request->id = id;
request->user_data = reinterpret_cast<void*>(req);
request->respond = &respond;
}
}

35
test/mock_request.hpp Normal file
View File

@ -0,0 +1,35 @@
#ifndef WF_MOCK_REQUEST_HPP
#define WF_MOCK_REQUEST_HPP
#include <gmock/gmock.h>
#include <jansson.h>
#include "webfuse/provider/impl/request.h"
namespace webfuse_test
{
class Request
{
public:
virtual ~Request() { }
virtual void respond(json_t * result, int id) = 0;
virtual void respond_error(json_t * error, int id) = 0;
};
class MockRequest: public Request
{
public:
MOCK_METHOD2(respond, void(json_t * result, int id));
MOCK_METHOD2(respond_error, void(json_t * error, int id));
};
extern struct wfp_request *
request_create(
Request * req,
int id);
}
#endif

View File

@ -0,0 +1,29 @@
#include <gtest/gtest.h>
#include "webfuse/provider/impl/static_filesystem.h"
#include "webfuse/provider/client_config.h"
#include "webfuse/provider/impl/client_config.h"
#include "mock_request.hpp"
using webfuse_test::request_create;
using webfuse_test::MockRequest;
using testing::_;
TEST(wfp_static_filesystem, init)
{
struct wfp_client_config * config = wfp_client_config_create();
struct wfp_static_filesystem * filesystem = wfp_impl_static_filesystem_create(config);
MockRequest mock;
struct wfp_request * request = request_create(&mock, 42);
EXPECT_CALL(mock, respond_error(_,_)).Times(1);
config->provider.getattr(request, 1, config->user_data);
wfp_impl_static_filesystem_dispose(filesystem);
wfp_client_config_dispose(config);
}