summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/database.cpp13
-rw-r--r--tests/utils.cpp12
2 files changed, 24 insertions, 1 deletions
diff --git a/tests/database.cpp b/tests/database.cpp
index f49220a..aeddea3 100644
--- a/tests/database.cpp
+++ b/tests/database.cpp
@@ -7,13 +7,25 @@
TEST_CASE("Database")
{
#ifdef USE_DATABASE
+// Database::open("postgresql://test");
Database::open(":memory:");
+ Database::raw_exec("DELETE FROM " + Database::irc_server_options.get_name());
+ Database::raw_exec("DELETE FROM " + Database::irc_channel_options.get_name());
SECTION("Basic retrieve and update")
{
auto o = Database::get_irc_server_options("zouzou@example.com", "irc.example.com");
+ CHECK(Database::count(Database::irc_server_options) == 0);
o.save(Database::db);
+ CHECK(Database::count(Database::irc_server_options) == 1);
+ o.col<Database::Realname>() = "Different realname";
+ CHECK(o.col<Database::Realname>() == "Different realname");
+ o.save(Database::db);
+ CHECK(o.col<Database::Realname>() == "Different realname");
+ CHECK(Database::count(Database::irc_server_options) == 1);
+
auto a = Database::get_irc_server_options("zouzou@example.com", "irc.example.com");
+ CHECK(a.col<Database::Realname>() == "Different realname");
auto b = Database::get_irc_server_options("moumou@example.com", "irc.example.com");
// b does not yet exist in the db, the object is created but not yet
@@ -28,7 +40,6 @@ TEST_CASE("Database")
SECTION("channel options")
{
- Config::set("db_name", ":memory:");
auto o = Database::get_irc_channel_options("zouzou@example.com", "irc.example.com", "#foo");
CHECK(o.col<Database::EncodingIn>() == "");
diff --git a/tests/utils.cpp b/tests/utils.cpp
index c5ef7e7..6de19f0 100644
--- a/tests/utils.cpp
+++ b/tests/utils.cpp
@@ -11,6 +11,7 @@
#include <utils/system.hpp>
#include <utils/scopeguard.hpp>
#include <utils/dirname.hpp>
+#include <utils/is_one_of.hpp>
using namespace std::string_literals;
@@ -171,3 +172,14 @@ TEST_CASE("dirname")
CHECK(utils::dirname(".") == ".");
CHECK(utils::dirname("./") == "./");
}
+
+TEST_CASE("is_in")
+{
+ CHECK((is_one_of<int, float, std::string, int>) == true);
+ CHECK((is_one_of<int, float, std::string>) == false);
+ CHECK((is_one_of<int>) == false);
+ CHECK((is_one_of<int, int>) == true);
+ CHECK((is_one_of<bool, int>) == false);
+ CHECK((is_one_of<bool, bool>) == true);
+ CHECK((is_one_of<bool, bool, bool, bool, bool, int>) == true);
+}