Skip to content
Snippets Groups Projects

TST: Add Tests for insert and delete

Merged Florian Spreckelsen requested to merge f-insert into dev
All threads resolved!
1 file
+ 59
7
Compare changes
  • Side-by-side
  • Inline
+ 59
7
@@ -139,25 +139,77 @@ TEST(test_transaction, insert_delete) {
EXPECT_FALSE(deleted_entity.HasErrors());
}
// TODO(fspreck) Insert an RT and a Record of this type, check
// whether this is reflected correctly in the inserted Record, then
// delete everything.
// TODO(fspreck) Simplify inserts and deletes once we have
// multi-entity operations
TEST(test_transaction, insert_delete_with_parent) {
const auto &connection =
caosdb::connection::ConnectionManager::GetDefaultConnection();
auto insert_transaction(connection->CreateTransaction());
Entity entity;
entity.SetRole("RecordType");
entity.SetName("RT1");
insert_transaction->InsertEntity(&entity);
Entity rt;
rt.SetRole("RecordType");
rt.SetName("TestRT");
insert_transaction->InsertEntity(&rt);
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 &inserted_rt = insert_result_set.GetEntity();
Entity rec;
rec.SetRole("Record");
rec.SetName("TestRec");
Parent parent;
parent.SetName(rt.GetName());
rec.AppendParent(parent);
auto rec_transaction(connection->CreateTransaction());
rec_transaction->InsertEntity(&rec);
rec_transaction->ExecuteAsynchronously();
auto rec_insert_status = rec_transaction->WaitForIt();
ASSERT_TRUE(rec_insert_status.IsTerminated());
ASSERT_FALSE(rec_insert_status.IsError());
const auto &rec_result_set =
dynamic_cast<const UniqueResult &>(rec_transaction->GetResultSet());
const auto &inserted_rec = rec_result_set.GetEntity();
EXPECT_EQ(inserted_rec.GetName(), rec.GetName());
EXPECT_EQ(inserted_rec.GetParents().Size(), 1);
EXPECT_EQ(inserted_rec.GetParents().At(0).GetId(), inserted_rt.GetId());
EXPECT_EQ(inserted_rec.GetParents().At(0).GetName(), inserted_rt.GetName());
auto rec_deletion(connection->CreateTransaction());
rec_deletion->DeleteById(inserted_rec.GetId());
rec_deletion->ExecuteAsynchronously();
auto rec_delete_status = rec_deletion->WaitForIt();
ASSERT_TRUE(rec_delete_status.IsTerminated());
ASSERT_FALSE(rec_delete_status.IsError());
auto rt_deletion(connection->CreateTransaction());
rt_deletion->DeleteById(inserted_rt.GetId());
rt_deletion->ExecuteAsynchronously();
auto rt_delete_status = rt_deletion->WaitForIt();
ASSERT_TRUE(rt_delete_status.IsTerminated());
ASSERT_FALSE(rt_delete_status.IsError());
}
// TODO(fspreck) Insert a Record with a parent and a Property. Check
Loading