Skip to content
Snippets Groups Projects
Verified Commit c3823fb2 authored by Timm Fitschen's avatar Timm Fitschen
Browse files

WIP: update entity

parent aa579a7e
No related branches found
No related tags found
1 merge request!5F update
Pipeline #11098 failed
......@@ -166,4 +166,66 @@ TEST(test_transaction, test_multi_retrieve) {
MessageCode::ENTITY_DOES_NOT_EXIST);
}
TEST(test_transaction, insert_update_delete) {
const auto &connection =
caosdb::connection::ConnectionManager::GetDefaultConnection();
// INSERT
auto insert_transaction(connection->CreateTransaction());
Entity entity;
entity.SetRole("RecordType");
entity.SetName("RT1");
insert_transaction->InsertEntity(&entity);
insert_transaction->ExecuteAsynchronously();
auto insert_status = insert_transaction->WaitForIt();
ASSERT_TRUE(insert_status.IsTerminated());
ASSERT_FALSE(insert_status.IsError());
const auto &insert_result_set =
dynamic_cast<const UniqueResult &>(insert_transaction->GetResultSet());
const auto &new_entity = insert_result_set.GetEntity();
EXPECT_FALSE(new_entity.GetId().empty());
EXPECT_EQ(new_entity.GetName(), "RT1");
EXPECT_FALSE(new_entity.HasErrors());
// UPDATE
auto update_transaction(connection->CreateTransaction());
auto update_entity = insert_result_set.GetEntity();
update_entity.SetName("RT1-Update");
update_transaction->UpdateEntity(update_entity);
update_transaction->ExecuteAsynchronously();
auto update_status = update_transaction->WaitForIt();
const auto &update_result_set =
dynamic_cast<const UniqueResult &>(update_transaction->GetResultSet());
const auto &updated_entity = insert_result_set.GetEntity();
EXPECT_EQ(updated_entity.GetId(), new_entity.GetId());
EXPECT_EQ(updated_entity.GetName(), "RT1-Update");
EXPECT_NEQ(updated_entity.GetVersionId(), new_entity.GetVersionId());
EXPECT_FALSE(updated_entity.HasErrors());
// DELETE
auto delete_transaction(connection->CreateTransaction());
delete_transaction->DeleteById(new_entity.GetId());
delete_transaction->ExecuteAsynchronously();
auto delete_status = delete_transaction->WaitForIt();
ASSERT_TRUE(delete_status.IsTerminated());
ASSERT_FALSE(delete_status.IsError());
const auto &delete_result_set =
dynamic_cast<const UniqueResult &>(delete_transaction->GetResultSet());
const auto &deleted_entity = delete_result_set.GetEntity();
EXPECT_EQ(deleted_entity.GetId(), new_entity.GetId());
EXPECT_FALSE(deleted_entity.HasErrors());
}
} // namespace caosdb::transaction
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment