diff --git a/test/test_transaction.cpp b/test/test_transaction.cpp
index 9eb3e808f996d58ec4432955472953a979113ba1..6d71ea4dc3f22dc6b34b861a635fd18995d23e10 100644
--- a/test/test_transaction.cpp
+++ b/test/test_transaction.cpp
@@ -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