From 1f943719c0600932bf9237cf65fd383ebb734577 Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Sun, 1 Aug 2021 12:22:33 +0200
Subject: [PATCH] WIP: multi retrieve

---
 test/test_transaction.cpp | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/test/test_transaction.cpp b/test/test_transaction.cpp
index 75a96ea..1caf49a 100644
--- a/test/test_transaction.cpp
+++ b/test/test_transaction.cpp
@@ -29,6 +29,7 @@
 #include "gtest/gtest_pred_impl.h"     // for Test, EXPECT_EQ, AssertionResult
 #include <memory>                      // for unique_ptr, allocator, __shar...
 #include <string>                      // for string
+#include <vector>                      // for vector
 
 namespace caosdb::transaction {
 using caosdb::entity::Entity;
@@ -135,4 +136,24 @@ TEST(test_transaction, insert_delete) {
   EXPECT_FALSE(deleted_entity.HasErrors());
 }
 
+TEST(test_transaction, test_multi_retrieve) {
+  const auto &connection =
+    caosdb::connection::ConnectionManager::GetDefaultConnection();
+
+  auto transaction(connection->CreateTransaction());
+
+  const std::vector<std::string> ids = {"20", "21", "22"};
+  transaction->RetrieveById(ids.begin(), ids.end());
+  transaction->ExecuteAsynchronously();
+
+  auto status = transaction->WaitForIt();
+
+  ASSERT_TRUE(status.IsTerminated());
+  ASSERT_FALSE(status.IsError());
+
+  const auto &result_set = transaction->GetResultSet();
+
+  EXPECT_EQ(result_set.Size(), 3);
+}
+
 } // namespace caosdb::transaction
-- 
GitLab