diff options
author | louiz’ <louiz@louiz.org> | 2019-09-27 20:55:15 +0200 |
---|---|---|
committer | louiz’ <louiz@louiz.org> | 2019-09-27 20:57:30 +0200 |
commit | 4b8d3430c7fff8b869ec895dbffac748db72a237 (patch) | |
tree | cc472dec9485f7cb4886900f313d5231229507c8 /tests | |
parent | 05ba076a0ec451a5a67410731f5ea23ec1faaa74 (diff) | |
download | biboumi-async_sql.tar.gz biboumi-async_sql.tar.bz2 biboumi-async_sql.tar.xz biboumi-async_sql.zip |
Add an AsyncResult type to iterate over the Select resultsasync_sql
Diffstat (limited to 'tests')
-rw-r--r-- | tests/database.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/database.cpp b/tests/database.cpp index 070a460..aab10f4 100644 --- a/tests/database.cpp +++ b/tests/database.cpp @@ -8,6 +8,7 @@ #include <database/database.hpp> #include <database/save.hpp> +#include <database/select_query.hpp> #include <config/config.hpp> @@ -165,6 +166,28 @@ TEST_CASE("Database") CHECK(after_connection_commands.size() == 2); } + SECTION("async_select") + { + constexpr auto db_size = 8; + CHECK(Database::count(Database::muc_log_lines) == 0); + auto uuid = Database::store_muc_message("owner", "#chan", "irc.example.com", std::chrono::system_clock::now(), "hello!", "louiz'"); + CHECK(Database::count(Database::muc_log_lines) == 1); + CHECK(uuid.size() == 36); + + for (int i = 1; i < db_size; ++i) + Database::store_muc_message("owner", "#chan", "irc.example.com", std::chrono::system_clock::now(), "hello "s + std::to_string(i) + "!"s, "louiz'"); + CHECK(Database::count(Database::muc_log_lines) == db_size); + + auto query = select(Database::muc_log_lines); + query.where() << Database::Owner{} << "=" << "owner"s; + auto async_result = query.execute_async(*Database::db); + + int i = 0; + for (auto rows: async_result) + ++i; + CHECK(i == db_size); + } + Database::close(); } #endif |