Skip to content
Snippets Groups Projects
Verified Commit 113840e5 authored by Timm Fitschen's avatar Timm Fitschen
Browse files

WIP: insert delete

parent 5d91ccc0
No related branches found
No related tags found
1 merge request!3TST: Add Tests for insert and delete
Pipeline #10905 failed
......@@ -34,6 +34,16 @@ namespace caosdb::transaction {
using caosdb::entity::Entity;
using caosdb::entity::MessageCode;
class test_transaction : public ::testing::Test {
protected:
void SetUp() override {
}
void TearDown() override {
// TODO(tf): delete all created entities
}
};
TEST(test_transaction, DISABLED_retrieve_manufacturer_by_id) {
const auto &connection =
caosdb::connection::ConnectionManager::GetDefaultConnection();
......@@ -49,7 +59,7 @@ TEST(test_transaction, DISABLED_retrieve_manufacturer_by_id) {
transaction->Execute();
const auto &result_set =
dynamic_cast<const caosdb::transaction::UniqueResult &>(
dynamic_cast<const UniqueResult &>(
transaction->GetResultSet());
const auto &entity = result_set.GetEntity();
......@@ -75,7 +85,7 @@ TEST(test_transaction, retrieve_non_existing) {
ASSERT_EQ(status.GetCode(), StatusCode::SUCCESS);
const auto &result_set =
dynamic_cast<const caosdb::transaction::UniqueResult &>(
dynamic_cast<const UniqueResult &>(
transaction->GetResultSet());
const auto &entity = result_set.GetEntity();
......@@ -90,26 +100,45 @@ TEST(test_transaction, insert_delete) {
const auto &connection =
caosdb::connection::ConnectionManager::GetDefaultConnection();
auto transaction(connection->CreateTransaction());
auto insert_transaction(connection->CreateTransaction());
Entity entity;
entity.SetRole("RecordType");
entity.SetName("RT1");
transaction->InsertEntity(&entity);
transaction->ExecuteAsynchronously();
insert_transaction->InsertEntity(&entity);
insert_transaction->ExecuteAsynchronously();
auto status = transaction->WaitForIt();
auto insert_status = insert_transaction->WaitForIt();
ASSERT_TRUE(status.IsTerminated());
ASSERT_FALSE(status.IsError());
ASSERT_TRUE(insert_status.IsTerminated());
ASSERT_FALSE(insert_status.IsError());
const auto &result_set =
dynamic_cast<const caosdb::transaction::UniqueResult &>(
transaction->GetResultSet());
const auto &insert_result_set =
dynamic_cast<const UniqueResult &>(
insert_transaction->GetResultSet());
const auto &new_entity = result_set.GetEntity();
const auto &new_entity = insert_result_set.GetEntity();
EXPECT_FALSE(new_entity.GetId().empty());
EXPECT_FALSE(new_entity.HasErrors());
auto delete_transaction(connection->CreateTransaction());
delete_transaction->DeleteById(new_entity.GetId());
delete_transaction->ExecuteAsynchronously();
auto delete_status = delete_transaction->WaitForIt();
ASSERT_TRUE(delete_status.IsTerminated());
ASSERT_FALSE(delete_status.IsError());
const auto &delete_result_set =
dynamic_cast<const UniqueResult &>(
delete_transaction->GetResultSet());
const auto &deleted_entity = delete_result_set.GetEntity();
EXPECT_EQ(deleted_entity.GetId(), new_entity.GetId());
EXPECT_FALSE(deleted_entity.HasErrors());
}
} // namespace caosdb::transaction
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment