diff --git a/test/test_transaction.cpp b/test/test_transaction.cpp index 75a96eada22d77074ec4a0bbb62e1d5ba69c967e..1caf49ac66b7c02d5a6ba827672dc3d49f382545 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