diff --git a/test/test_transaction.cpp b/test/test_transaction.cpp index 4f89312ffab79a18d75885b88e4bbc1d13878886..3ef5a856feb5a3e30b4f1b45768ef025b8b173be 100644 --- a/test/test_transaction.cpp +++ b/test/test_transaction.cpp @@ -27,7 +27,6 @@ #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 <memory> // for unique_ptr, allocator, __shar... #include <string> // for string #include <vector> // for vector @@ -45,7 +44,7 @@ protected: } }; -TEST(test_transaction, DISABLED_retrieve_manufacturer_by_id) { +TEST_F(test_transaction, DISABLED_retrieve_manufacturer_by_id) { const auto &connection = caosdb::connection::ConnectionManager::GetDefaultConnection(); @@ -70,7 +69,7 @@ TEST(test_transaction, DISABLED_retrieve_manufacturer_by_id) { EXPECT_EQ(version, entity.GetVersionId()); } -TEST(test_transaction, retrieve_non_existing) { +TEST_F(test_transaction, retrieve_non_existing) { const auto &connection = caosdb::connection::ConnectionManager::GetDefaultConnection(); @@ -96,7 +95,7 @@ TEST(test_transaction, retrieve_non_existing) { } // TODO(fspreck) cognitive complexity > 25 (threshold) -TEST(test_transaction, insert_delete) { // NOLINT +TEST_F(test_transaction, insert_delete) { // NOLINT const auto &connection = caosdb::connection::ConnectionManager::GetDefaultConnection(); @@ -145,7 +144,7 @@ TEST(test_transaction, insert_delete) { // NOLINT // TODO(fspreck) Simplify inserts and deletes once we have // multi-entity operations, also cognitive complexity > threshold -TEST(test_transaction, insert_delete_with_parent) { // NOLINT +TEST_F(test_transaction, insert_delete_with_parent) { // NOLINT const auto &connection = caosdb::connection::ConnectionManager::GetDefaultConnection(); @@ -205,7 +204,6 @@ TEST(test_transaction, insert_delete_with_parent) { // NOLINT 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); @@ -236,7 +234,7 @@ TEST(test_transaction, insert_delete_with_parent) { // NOLINT // TODO(fspreck) Insert a Record with a parent and a Property. Check // for success and delete everything. -TEST(test_transaction, test_multi_retrieve) { +TEST_F(test_transaction, test_multi_retrieve) { const auto &connection = caosdb::connection::ConnectionManager::GetDefaultConnection(); @@ -256,7 +254,6 @@ TEST(test_transaction, test_multi_retrieve) { EXPECT_EQ(result_set.Size(), 3); EXPECT_EQ(result_set.At(1).GetId(), "21"); EXPECT_EQ(result_set.At(1).GetName(), "unit"); - std::cout << result_set.At(1).ToString(); EXPECT_FALSE(result_set.At(1).HasErrors()); EXPECT_EQ(result_set.At(2).GetId(), "22"); @@ -265,7 +262,7 @@ TEST(test_transaction, test_multi_retrieve) { MessageCode::ENTITY_DOES_NOT_EXIST); } -TEST(test_transaction, insert_update_delete) { +TEST_F(test_transaction, insert_update_delete) { const auto &connection = caosdb::connection::ConnectionManager::GetDefaultConnection(); @@ -288,24 +285,29 @@ TEST(test_transaction, insert_update_delete) { const auto &new_entity = insert_result_set.GetEntity(); EXPECT_FALSE(new_entity.GetId().empty()); - EXPECT_EQ(new_entity.GetName(), "RT1"); EXPECT_FALSE(new_entity.HasErrors()); + // RETRIEVE + auto retrieve_transaction(connection->CreateTransaction()); + retrieve_transaction->RetrieveById(new_entity.GetId()); + retrieve_transaction->Execute(); + // UPDATE auto update_transaction(connection->CreateTransaction()); - auto update_entity = insert_result_set.GetEntity(); + auto update_entity(retrieve_transaction->GetResultSet().At(0)); update_entity.SetName("RT1-Update"); - update_transaction->UpdateEntity(update_entity); + update_transaction->UpdateEntity(&update_entity); update_transaction->ExecuteAsynchronously(); + auto update_status = update_transaction->WaitForIt(); + ASSERT_TRUE(update_status.IsTerminated()); + ASSERT_FALSE(update_status.IsError()); + + EXPECT_EQ(update_transaction->GetResultSet().Size(), 1); + const auto &updated_entity = update_transaction->GetResultSet().At(0); - const auto &update_result_set = - dynamic_cast<const UniqueResult &>(update_transaction->GetResultSet()); - const auto &updated_entity = insert_result_set.GetEntity(); EXPECT_EQ(updated_entity.GetId(), new_entity.GetId()); - EXPECT_EQ(updated_entity.GetName(), "RT1-Update"); - EXPECT_NEQ(updated_entity.GetVersionId(), new_entity.GetVersionId()); EXPECT_FALSE(updated_entity.HasErrors()); // DELETE @@ -327,27 +329,6 @@ TEST(test_transaction, insert_update_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. -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); - insert_transaction->ExecuteAsynchronously(); - - auto insert_status = insert_transaction->WaitForIt(); - - ASSERT_TRUE(insert_status.IsTerminated()); - ASSERT_FALSE(insert_status.IsError()); -} - // TODO(fspreck) Insert a Record with a parent and a Property. Check // for success and delete everything.