diff --git a/test/test_transaction.cpp b/test/test_transaction.cpp index e136f41c266a7d77b96858d9dff0df5b97533599..c6caa79ebf0e1eee7fd8e00d238fa78732030892 100644 --- a/test/test_transaction.cpp +++ b/test/test_transaction.cpp @@ -28,8 +28,10 @@ #include "gtest/gtest-test-part.h" // for TestPartResult, SuiteApiResolver #include "gtest/gtest_pred_impl.h" // for Test, EXPECT_EQ, AssertionResult #include <memory> // for unique_ptr, allocator, __shar... +#include <string> // for string namespace caosdb::transaction { +using caosdb::entity::Entity; using caosdb::entity::MessageCode; TEST(test_transaction, DISABLED_retrieve_manufacturer_by_id) { @@ -84,4 +86,30 @@ TEST(test_transaction, retrieve_non_existing) { MessageCode::ENTITY_DOES_NOT_EXIST); } +TEST(test_transaction, insert_delete) { + const auto &connection = + caosdb::connection::ConnectionManager::GetDefaultConnection(); + + auto transaction(connection->CreateTransaction()); + + Entity entity; + entity.SetRole("RecordType"); + entity.SetName("RT1"); + transaction->InsertEntity(&entity); + transaction->ExecuteAsynchronously(); + + auto status = transaction->WaitForIt(); + + ASSERT_TRUE(status.IsTerminated()); + ASSERT_FALSE(status.IsError()); + + const auto &result_set = + dynamic_cast<const caosdb::transaction::UniqueResult &>( + transaction->GetResultSet()); + + const auto &new_entity = result_set.GetEntity(); + EXPECT_FALSE(new_entity.GetId().empty()); + EXPECT_FALSE(new_entity.HasErrors()); +} + } // namespace caosdb::transaction