summaryrefslogtreecommitdiff
path: root/libdbpp/unittests
diff options
context:
space:
mode:
Diffstat (limited to 'libdbpp/unittests')
-rw-r--r--libdbpp/unittests/testUtils.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/libdbpp/unittests/testUtils.cpp b/libdbpp/unittests/testUtils.cpp
index 6ff9edd..1911d9f 100644
--- a/libdbpp/unittests/testUtils.cpp
+++ b/libdbpp/unittests/testUtils.cpp
@@ -92,6 +92,25 @@ BOOST_AUTO_TEST_CASE( stdforOverRowsStructuredBinding )
BOOST_REQUIRE_EQUAL(totalOfc, "Some textSome text");
}
+BOOST_AUTO_TEST_CASE( stdforOverRowsStructuredBindingOptional )
+{
+ auto db = DB::MockDatabase::openConnectionTo("pqmock");
+ unsigned int count = 0;
+ int64_t totalOfa = 0;
+ std::string totalOfc;
+ auto sel = db->select("SELECT a, c FROM forEachRow ORDER BY a DESC");
+ for (const auto [ a, c ] : sel->as<std::optional<int64_t>, std::optional<std::string>>()) {
+ count += 1;
+ BOOST_REQUIRE(a);
+ totalOfa += *a;
+ BOOST_REQUIRE(c);
+ totalOfc += *c;
+ }
+ BOOST_REQUIRE_EQUAL(count, 2);
+ BOOST_REQUIRE_EQUAL(totalOfa, 3);
+ BOOST_REQUIRE_EQUAL(totalOfc, "Some textSome text");
+}
+
BOOST_AUTO_TEST_CASE( execute )
{
auto db = DB::ConnectionPtr(DB::MockDatabase::openConnectionTo("pqmock"));