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
+ 55
2
Compare changes
  • Side-by-side
  • Inline
+ 55
2
@@ -323,7 +323,6 @@ TEST(test_transaction, insert_delete_with_property) {
rec.SetRole("Record");
rec.AppendParent(parent);
rec.AppendProperty(prop_rec);
std::cout << rec.ToString() << std::endl;
auto rec_insertion(connection->CreateTransaction());
rec_insertion->InsertEntity(&rec);
@@ -331,7 +330,6 @@ TEST(test_transaction, insert_delete_with_property) {
auto rec_insert_status = rec_insertion->WaitForIt();
std::cout << rec_insert_status.GetCode() << std::endl;
ASSERT_TRUE(rec_insert_status.IsTerminated());
ASSERT_FALSE(rec_insert_status.IsError());
@@ -340,6 +338,61 @@ TEST(test_transaction, insert_delete_with_property) {
const auto &inserted_rec = rec_result_set.GetEntity();
EXPECT_FALSE(inserted_rec.GetId().empty());
// Retrieve the record and verify paretn and property
auto rec_retrieval(connection->CreateTransaction());
rec_retrieval->RetrieveById(inserted_rec.GetId());
rec_retrieval->ExecuteAsynchronously();
auto rec_retrieve_status = rec_retrieval->WaitForIt();
ASSERT_TRUE(rec_retrieve_status.IsTerminated());
ASSERT_FALSE(rec_retrieve_status.IsError());
const auto &rec_retrieve_results =
dynamic_cast<const UniqueResult &>(rec_retrieval->GetResultSet());
const auto &retrieved_rec = rec_retrieve_results.GetEntity();
EXPECT_EQ(rec.GetName(), retrieved_rec.GetName());
EXPECT_EQ(inserted_rec.GetId(), retrieved_rec.GetId());
EXPECT_EQ(retrieved_rec.GetParents().Size(), 1);
EXPECT_EQ(retrieved_rec.GetProperties().Size(), 1);
const auto &retrieved_parent_rec = retrieved_rec.GetParents().At(0);
EXPECT_EQ(retrieved_parent_rec.GetName(), rt.GetName());
EXPECT_EQ(retrieved_parent_rec.GetId(), inserted_rt.GetId());
const auto &retrieved_prop_rec = retrieved_rec.GetProperties().At(0);
EXPECT_EQ(retrieved_prop_rec.GetName(), prop_ent.GetName());
EXPECT_EQ(retrieved_prop_rec.GetId(), inserted_prop.GetId());
EXPECT_EQ(retrieved_prop_rec.GetDatatype(), prop_ent.GetDatatype());
EXPECT_EQ(retrieved_prop_rec.GetValue(), prop_rec.GetValue());
// Delete eveything: First record ...
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());
// ... then parent ...
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());
// ... then property.
auto prop_deletion(connection->CreateTransaction());
prop_deletion->DeleteById(inserted_prop.GetId());
prop_deletion->ExecuteAsynchronously();
auto prop_delete_status = prop_deletion->WaitForIt();
ASSERT_TRUE(prop_delete_status.IsTerminated());
ASSERT_FALSE(prop_delete_status.IsError());
}
} // namespace caosdb::transaction
Loading