From de6a284fc2c78f55a401820c29ca241889588051 Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Tue, 3 Aug 2021 19:43:12 +0200
Subject: [PATCH] TST: fix insert_delete_with_parents test

---
 test/test_transaction.cpp | 36 +++++++++++++++++++++++++-----------
 1 file changed, 25 insertions(+), 11 deletions(-)

diff --git a/test/test_transaction.cpp b/test/test_transaction.cpp
index b94ffa9..3aa75e7 100644
--- a/test/test_transaction.cpp
+++ b/test/test_transaction.cpp
@@ -27,7 +27,7 @@
 #include "gtest/gtest-message.h"       // for Message
 #include "gtest/gtest-test-part.h"     // for TestPartResult, SuiteApiResolver
 #include "gtest/gtest_pred_impl.h"     // for Test, EXPECT_EQ, AssertionResult
-#include <iostream>                     // for endl, basic_ostream, cout
+#include <iostream>                    // for endl, basic_ostream, cout
 #include <memory>                      // for unique_ptr, allocator, __shar...
 #include <string>                      // for string
 
@@ -172,7 +172,7 @@ TEST(test_transaction, insert_delete_with_parent) { // NOLINT
   rec.SetName("TestRec");
 
   Parent parent;
-  parent.SetName(inserted_rt.GetName());
+  parent.SetName(rt.GetName());
   parent.SetId(inserted_rt.GetId());
   rec.AppendParent(parent);
 
@@ -183,24 +183,38 @@ TEST(test_transaction, insert_delete_with_parent) { // NOLINT
   auto rec_insert_status = rec_transaction->WaitForIt();
 
   ASSERT_TRUE(rec_insert_status.IsTerminated());
-  std::cout << rec.ToString() << std::endl;
-  std::cout << rec_insert_status.GetCode() << std::endl;
   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();
-  std::cout << inserted_rec.ToString() << std::endl;
-  
-  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());
+
+  EXPECT_FALSE(inserted_rec.GetId().empty());
+
+  auto retrieve_transaction(connection->CreateTransaction());
+  retrieve_transaction->RetrieveById(inserted_rec.GetId());
+
+  retrieve_transaction->ExecuteAsynchronously();
+
+  auto rec_retrieve_status = retrieve_transaction->WaitForIt();
+
+  ASSERT_TRUE(rec_retrieve_status.IsTerminated());
+  ASSERT_FALSE(rec_retrieve_status.IsError());
+
+  const auto &retrieve_result_set =
+    dynamic_cast<const UniqueResult &>(retrieve_transaction->GetResultSet());
+  const auto &retrieved_rec = retrieve_result_set.GetEntity();
+  std::cout << retrieved_rec.ToString() << std::endl;
+
+  EXPECT_EQ(retrieved_rec.GetName(), rec.GetName());
+  EXPECT_EQ(retrieved_rec.GetParents().Size(), 1);
+  EXPECT_EQ(retrieved_rec.GetParents().At(0).GetId(), inserted_rt.GetId());
+  EXPECT_EQ(retrieved_rec.GetParents().At(0).GetName(), rt.GetName());
 
   auto rec_deletion(connection->CreateTransaction());
 
-  rec_deletion->DeleteById(inserted_rec.GetId());
+  rec_deletion->DeleteById(retrieved_rec.GetId());
   rec_deletion->ExecuteAsynchronously();
 
   auto rec_delete_status = rec_deletion->WaitForIt();
-- 
GitLab