Skip to content
Snippets Groups Projects

TST: Add Tests for insert and delete

Merged Florian Spreckelsen requested to merge f-insert into dev
All threads resolved!
1 file
+ 41
12
Compare changes
  • Side-by-side
  • Inline
+ 41
12
@@ -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
Loading