docs: add changelogs [ci skip]
[m6w6/libmemcached] / test / lib / ReturnMatcher.hpp
1 #pragma once
2
3 #include "test/lib/common.hpp"
4
5 class ReturnMatcher : public Catch::MatcherBase<memcached_return_t> {
6 public:
7 explicit ReturnMatcher(const memcached_st *memc_, memcached_return_t expected_ = MEMCACHED_SUCCESS)
8 : memc{memc_}
9 , expected{expected_}
10 {}
11
12 ReturnMatcher(const ReturnMatcher &) = default;
13
14 ReturnMatcher(ReturnMatcher &&rm);
15 ReturnMatcher &operator = (ReturnMatcher &&rm);
16
17 bool match(const memcached_return_t &arg) const override;
18 ReturnMatcher success();
19 ReturnMatcher operator () (memcached_return_t expected_);
20
21 protected:
22 string describe() const override;
23
24 private:
25 const memcached_st *memc;
26 memcached_return_t expected{MEMCACHED_SUCCESS};
27 };
28
29 class LoneReturnMatcher {
30 public:
31 ReturnMatcher returns;
32 explicit LoneReturnMatcher(const memcached_st *memc) : returns{memc}
33 {}
34 };