summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2025-08-27 20:48:27 +0100
committerDan Goodliffe <dan@randomdan.homeip.net>2025-09-01 20:02:59 +0100
commit720b701fac13f464addb2116301d9a9a2998d041 (patch)
treee25f2d1b37684fbd0896825ba846a1813b6263ab
parente93b2fe92eb172d7c7b76209bf489d9c0da59cca (diff)
downloadwebstat-720b701fac13f464addb2116301d9a9a2998d041.tar.bz2
webstat-720b701fac13f464addb2116301d9a9a2998d041.tar.xz
webstat-720b701fac13f464addb2116301d9a9a2998d041.zip
Add MockDBPool
Feels like this should be provided by libdbpp, but it isn't.
-rw-r--r--test/test-util.cpp8
-rw-r--r--test/test-util.hpp14
2 files changed, 21 insertions, 1 deletions
diff --git a/test/test-util.cpp b/test/test-util.cpp
index feb58c7..4648498 100644
--- a/test/test-util.cpp
+++ b/test/test-util.cpp
@@ -3,4 +3,12 @@
namespace WebStat {
MockDB::MockDB() :
DB::PluginMock<PQ::Mock>("webstat", {SRC_DIR / "schema.sql"}, "user=postgres dbname=postgres") { }
+
+ MockDBPool::MockDBPool(std::string name) : DB::BasicConnectionPool(1, 1), name {std::move(name)} { }
+
+ DB::ConnectionPtr
+ MockDBPool::createResource() const
+ {
+ return DB::MockDatabase::openConnectionTo(name);
+ }
}
diff --git a/test/test-util.hpp b/test/test-util.hpp
index 20020f8..5b2a968 100644
--- a/test/test-util.hpp
+++ b/test/test-util.hpp
@@ -1,7 +1,8 @@
#pragma once
-#include "pq-mock.h"
+#include <connectionPool.h>
#include <filesystem>
+#include <pq-mock.h>
namespace WebStat {
#define XSTR(s) STR(s)
@@ -20,5 +21,16 @@ namespace WebStat {
MockDB();
};
+ class MockDBPool : public DB::BasicConnectionPool {
+ public:
+ MockDBPool(std::string);
+
+ protected:
+ DB::ConnectionPtr createResource() const;
+
+ private:
+ std::string name;
+ };
+
template<typename Out> using ParseData = std::tuple<std::string_view, Out>;
}