diff options
author | louiz’ <louiz@louiz.org> | 2018-02-05 22:53:36 +0100 |
---|---|---|
committer | louiz’ <louiz@louiz.org> | 2018-02-05 22:53:36 +0100 |
commit | 56651cb5c29cc50ddf3c62c37167fa0b9389bfde (patch) | |
tree | ca652963cafeb02b0c6c7504b1cfbc27abdafe0b /tests/database.cpp | |
parent | ad1e0f8d52189e18df2d5a39228e255798a9de70 (diff) | |
parent | e0d1a0b44add408504e428d6ce4a8a2121ea7a00 (diff) | |
download | biboumi-56651cb5c29cc50ddf3c62c37167fa0b9389bfde.tar.gz biboumi-56651cb5c29cc50ddf3c62c37167fa0b9389bfde.tar.bz2 biboumi-56651cb5c29cc50ddf3c62c37167fa0b9389bfde.tar.xz biboumi-56651cb5c29cc50ddf3c62c37167fa0b9389bfde.zip |
Merge branch 'master' into debian
Diffstat (limited to 'tests/database.cpp')
-rw-r--r-- | tests/database.cpp | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/tests/database.cpp b/tests/database.cpp index f49220a..7ab6da8 100644 --- a/tests/database.cpp +++ b/tests/database.cpp @@ -1,19 +1,43 @@ #include "catch.hpp" +#include <biboumi.h> + +#ifdef USE_DATABASE + +#include <cstdlib> + #include <database/database.hpp> #include <config/config.hpp> TEST_CASE("Database") { -#ifdef USE_DATABASE - Database::open(":memory:"); +#ifdef PQ_FOUND + std::string postgresql_uri{"postgresql://"}; + const char* env_value = ::getenv("TEST_POSTGRES_URI"); + if (env_value != nullptr) + Database::open("postgresql://"s + env_value); + else +#endif + 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 +52,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>() == ""); @@ -95,5 +118,5 @@ TEST_CASE("Database") } Database::close(); -#endif } +#endif |