1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
4 #ifndef CEPH_TEST_RBD_MIRROR_TEST_MOCK_FIXTURE_H
5 #define CEPH_TEST_RBD_MIRROR_TEST_MOCK_FIXTURE_H
7 #include "test/rbd_mirror/test_fixture.h"
8 #include "test/librados_test_stub/LibradosTestStub.h"
9 #include "common/WorkQueue.h"
10 #include "librbd/asio/ContextWQ.h"
11 #include <boost/shared_ptr.hpp>
12 #include <gmock/gmock.h>
13 #include "include/ceph_assert.h"
16 class TestRadosClient
;
17 class MockTestMemCluster
;
18 class MockTestMemIoCtxImpl
;
19 class MockTestMemRadosClient
;
26 ACTION_P(CopyInBufferlist
, str
) {
30 ACTION_P(CompleteContext
, r
) {
34 ACTION_P2(CompleteContext
, wq
, r
) {
35 auto context_wq
= reinterpret_cast<librbd::asio::ContextWQ
*>(wq
);
36 context_wq
->queue(arg0
, r
);
39 ACTION_P(GetReference
, ref_object
) {
43 MATCHER_P(ContentsEqual
, bl
, "") {
44 // TODO fix const-correctness of bufferlist
45 return const_cast<bufferlist
&>(arg
).contents_equal(
46 const_cast<bufferlist
&>(bl
));
52 class TestMockFixture
: public TestFixture
{
54 typedef boost::shared_ptr
<librados::TestCluster
> TestClusterRef
;
56 static void SetUpTestCase();
57 static void TearDownTestCase();
59 void TearDown() override
;
61 void expect_test_features(librbd::MockImageCtx
&mock_image_ctx
);
63 librados::MockTestMemCluster
& get_mock_cluster();
66 static TestClusterRef s_test_cluster
;
72 #endif // CEPH_TEST_RBD_MIRROR_TEST_MOCK_FIXTURE_H