From 56deb05b113597fcf017212dc4cbbaffb05ee4c6 Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Thu, 5 Aug 2021 15:15:39 +0200
Subject: [PATCH] WIP: fix tests

---
 test/test_transaction.cpp | 46 +++++++++++++++++++++++++++++++++------
 1 file changed, 39 insertions(+), 7 deletions(-)

diff --git a/test/test_transaction.cpp b/test/test_transaction.cpp
index 88df3a6..b9fe935 100644
--- a/test/test_transaction.cpp
+++ b/test/test_transaction.cpp
@@ -56,7 +56,7 @@ protected:
   }
 };
 
-TEST_F(test_transaction, DISABLED_retrieve_manufacturer_by_id) {
+TEST(test_transaction, DISABLED_retrieve_manufacturer_by_id) {
   const auto &connection =
     caosdb::connection::ConnectionManager::GetDefaultConnection();
 
@@ -81,7 +81,7 @@ TEST_F(test_transaction, DISABLED_retrieve_manufacturer_by_id) {
   EXPECT_EQ(version, entity.GetVersionId());
 }
 
-TEST_F(test_transaction, retrieve_non_existing) {
+TEST(test_transaction, retrieve_non_existing) {
   const auto &connection =
     caosdb::connection::ConnectionManager::GetDefaultConnection();
 
@@ -106,7 +106,7 @@ TEST_F(test_transaction, retrieve_non_existing) {
             MessageCode::ENTITY_DOES_NOT_EXIST);
 }
 
-TEST_F(test_transaction, insert_delete) {
+TEST(test_transaction, insert_delete) {
   const auto &connection =
     caosdb::connection::ConnectionManager::GetDefaultConnection();
 
@@ -153,7 +153,7 @@ TEST_F(test_transaction, insert_delete) {
   EXPECT_FALSE(deleted_entity.HasErrors());
 }
 
-TEST_F(test_transaction, insert_delete_with_parent) {
+TEST(test_transaction, insert_delete_with_parent) {
   const auto &connection =
     caosdb::connection::ConnectionManager::GetDefaultConnection();
 
@@ -242,7 +242,7 @@ TEST_F(test_transaction, insert_delete_with_parent) {
 
 // TODO(fspreck) Insert a Record with a parent and a Property. Check
 // for success and delete everything.
-TEST_F(test_transaction, insert_delete_with_property) {
+TEST(test_transaction, insert_delete_with_property) {
   const auto &connection =
     caosdb::connection::ConnectionManager::GetDefaultConnection();
 
@@ -404,7 +404,7 @@ TEST_F(test_transaction, insert_delete_with_property) {
   ASSERT_FALSE(prop_delete_status.IsError());
 }
 
-TEST_F(test_transaction, test_multi_retrieve) {
+TEST(test_transaction, test_multi_retrieve) {
   const auto &connection =
     caosdb::connection::ConnectionManager::GetDefaultConnection();
 
@@ -432,7 +432,7 @@ TEST_F(test_transaction, test_multi_retrieve) {
             MessageCode::ENTITY_DOES_NOT_EXIST);
 }
 
-TEST_F(test_transaction, insert_update_delete) {
+TEST(test_transaction, insert_update_delete) {
   const auto &connection =
     caosdb::connection::ConnectionManager::GetDefaultConnection();
 
@@ -499,6 +499,38 @@ TEST_F(test_transaction, insert_update_delete) {
   EXPECT_FALSE(deleted_entity.HasErrors());
 }
 
+TEST(test_transaction, test_query) {
+  const auto &connection =
+    caosdb::connection::ConnectionManager::GetDefaultConnection();
+
+  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_FALSE(new_entity.HasErrors());
+
+  auto query_transaction(connection->CreateTransaction());
+  query_transaction->Query("FIND ENTITY WITH id = " + new_entity.GetId());
+  query_transaction->Execute();
+  EXPECT_EQ(query_transaction->GetResultSet().Size(), 1);
+  EXPECT_EQ(query_transaction->GetResultSet().At(0).GetId(),
+            new_entity.GetId());
+}
+
 // TODO(fspreck) Insert a Record with a parent and a Property. Check
 // for success and delete everything.
 
-- 
GitLab