Skip to content
Snippets Groups Projects

F multi retrieve

Merged Timm Fitschen requested to merge f-multi-retrieve into dev
2 files
+ 31
2
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 30
1
@@ -30,7 +30,7 @@
#include <iostream> // for endl, basic_ostream, cout
#include <memory> // for unique_ptr, allocator, __shar...
#include <string> // for string
#include <vector> // for vector
namespace caosdb::transaction {
using caosdb::entity::Entity;
using caosdb::entity::MessageCode;
@@ -395,4 +395,33 @@ TEST(test_transaction, insert_delete_with_property) {
ASSERT_FALSE(prop_delete_status.IsError());
}
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);
EXPECT_EQ(result_set.At(1).GetId(), "21");
EXPECT_EQ(result_set.At(1).GetName(), "unit");
std::cout << result_set.At(1).ToString();
EXPECT_FALSE(result_set.At(1).HasErrors());
EXPECT_EQ(result_set.At(2).GetId(), "22");
EXPECT_TRUE(result_set.At(2).HasErrors());
EXPECT_EQ(result_set.At(2).GetErrors().At(0).GetCode(),
MessageCode::ENTITY_DOES_NOT_EXIST);
}
} // namespace caosdb::transaction
Loading