testing: fix osx
[awesomized/libmemcached] / test / lib / ReturnMatcher.cpp
diff --git a/test/lib/ReturnMatcher.cpp b/test/lib/ReturnMatcher.cpp
new file mode 100644 (file)
index 0000000..863945e
--- /dev/null
@@ -0,0 +1,28 @@
+#include "ReturnMatcher.hpp"
+
+ReturnMatcher &ReturnMatcher::operator=(ReturnMatcher &&rm) {
+  memc = exchange(rm.memc, nullptr);
+  expected = rm.expected;
+  return *this;
+}
+
+bool ReturnMatcher::match(const memcached_return_t &arg) const {
+  return arg == expected;
+}
+
+ReturnMatcher ReturnMatcher::success() {
+  return ReturnMatcher{memc};
+}
+
+ReturnMatcher ReturnMatcher::operator()(memcached_return_t expected_) {
+  return ReturnMatcher{memc, expected_};
+}
+
+string ReturnMatcher::describe() const {
+  return "is " + to_string(expected)
+         + "\n  actual: " + memcached_last_error_message(memc);
+}
+
+ReturnMatcher::ReturnMatcher(ReturnMatcher &&rm) {
+  *this = move(rm);
+}