286bc670410bf945acd239e4b7f47e7c77ef5539
[m6w6/libmemcached] / testing / lib / ReturnMatcher.hpp
1 #pragma once
2
3 #include "testing/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 ReturnMatcher &operator = (const ReturnMatcher &) = default;
14
15 ReturnMatcher(ReturnMatcher &&rm);
16 ReturnMatcher &operator = (ReturnMatcher &&rm);
17
18 bool match(const memcached_return_t &arg) const override;
19 ReturnMatcher success();
20 ReturnMatcher operator () (memcached_return_t expected_);
21
22 protected:
23 string describe() const override;
24
25 private:
26 const memcached_st *memc;
27 memcached_return_t expected{MEMCACHED_SUCCESS};
28 };
29
30 class LoneReturnMatcher {
31 public:
32 ReturnMatcher returns;
33 explicit LoneReturnMatcher(const memcached_st *memc) : returns{memc}
34 {}
35 };