From 15c1e5566f7ad8448985ca6e52805ceb4ec389a8 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Mon, 24 May 2021 01:01:30 +0100 Subject: Basic support for queries with bound parameters Bit of a reshuffle to make the types not DB specific, add some basic tests over query execution, no selects yet and no validation anything is actually right. --- test/test-mysql.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 test/test-mysql.cpp (limited to 'test/test-mysql.cpp') diff --git a/test/test-mysql.cpp b/test/test-mysql.cpp new file mode 100644 index 0000000..5a22567 --- /dev/null +++ b/test/test-mysql.cpp @@ -0,0 +1,25 @@ +#define BOOST_TEST_MODULE MySQL +#include + +#include +#include +#include + +BOOST_AUTO_TEST_CASE(simple) +{ + BOOST_CHECK_THROW(([]() { + MyGrate::Input::MySQLConn {"192.168.1.38", "repl", "repl", 3306}; + }()), + std::runtime_error); + MyGrate::Input::MySQLConn c {"192.168.1.38", "repl", "r3pl", 3306}; + BOOST_CHECK_NO_THROW(c.query("SET @var = ''")); + BOOST_CHECK_NO_THROW(c.query("SET @var = 'something'")); + BOOST_CHECK_THROW(c.query("SET @var = "), std::runtime_error); + BOOST_CHECK_THROW(c.query("SET @var = ?", {}), std::logic_error); + BOOST_CHECK_NO_THROW(c.query("SET @var = ''", {})); + BOOST_CHECK_NO_THROW(c.query("SET @var = ?", {1})); + BOOST_CHECK_NO_THROW(c.query("SET @var = ?", {"string_view"})); + BOOST_CHECK_NO_THROW(c.query("SET @var = ?", {nullptr})); + BOOST_CHECK_NO_THROW(c.query("SET @var = ?", {1.2})); + BOOST_CHECK_THROW(c.query("SET @var = ?", {MyGrate::Time {}}), std::runtime_error); +} -- cgit v1.2.3