diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d81b6e4ad2475604755798318be85371cd21484a..49579705b8acdc8faf7d2ac232a6c1dc9faa08fa 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -91,6 +91,8 @@ test:
     - cmake -DCMAKE_BUILD_TYPE=Debug ..
     - cmake --build .
     - cmake --build . --target unit_test_coverage
+    - cmake --build . --target cxxcaosdbcli
+    - cmake --build . --target ccaosdbcli
 
 # trigger the integration tests
 trigger_inttest:
diff --git a/src/cxxcaosdbcli.cpp b/src/cxxcaosdbcli.cpp
index 1760975460281614051c1ac9790be840d7c36c4f..a86c9ebbc81bf1cb5fd3d758282b9044452fda12 100644
--- a/src/cxxcaosdbcli.cpp
+++ b/src/cxxcaosdbcli.cpp
@@ -26,7 +26,7 @@
 #include "caosdb/entity.h"      // for Entity
 #include "caosdb/exceptions.h"  // for ConfigurationError
 #include "caosdb/info.h"        // for VersionInfo
-#include "caosdb/transaction.h" // for Transaction, UniqueResult, ResultSet
+#include "caosdb/transaction.h" // for Transaction, ResultSet
 #include <iostream>             // for operator<<, basic_ostream, basic_ost...
 #include <memory>               // for unique_ptr, allocator, __shared_ptr_...
 #include <string>               // for operator<<, char_traits
@@ -52,11 +52,10 @@ auto main() -> int {
     auto transaction(connection->CreateTransaction());
     transaction->RetrieveById("20");
     transaction->Execute();
-    const auto &result_set =
-      dynamic_cast<const caosdb::transaction::UniqueResult &>(transaction->GetResultSet());
+    const auto &result_set = transaction->GetResultSet();
 
     // print description
-    std::cout << "Entity Description: " << result_set.GetEntity().GetDescription() << std::endl;
+    std::cout << "Entity Description: " << result_set.at(0).GetDescription() << std::endl;
 
     return 0;
   } catch (const caosdb::exceptions::ConfigurationError &exc) {