From a7dd793eed30fd391ee9c2244655eb2a6f8eda9d Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Fri, 6 Aug 2021 17:21:38 +0200
Subject: [PATCH] TST: test for multi-deletion

---
 src/caosdb/transaction.cpp |  2 --
 test/test_transaction.cpp  | 12 ++++++++++++
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/caosdb/transaction.cpp b/src/caosdb/transaction.cpp
index ca8ebd4..61f5278 100644
--- a/src/caosdb/transaction.cpp
+++ b/src/caosdb/transaction.cpp
@@ -161,8 +161,6 @@ auto Transaction::RetrieveById(const std::string &id) noexcept -> StatusCode {
   return this->status.GetCode();
 }
 
-// TODO(fspreck) What about count queries (mixed with retrievals),
-// what about unique queries?
 auto Transaction::Query(const std::string &query) noexcept -> StatusCode {
   ASSERT_CAN_ADD_QUERY
 
diff --git a/test/test_transaction.cpp b/test/test_transaction.cpp
index 86d3294..6e04976 100644
--- a/test/test_transaction.cpp
+++ b/test/test_transaction.cpp
@@ -177,4 +177,16 @@ TEST(test_transaction, test_update_entity) {
   EXPECT_EQ(error, StatusCode::ORIGINAL_ENTITY_MISSING_ID);
 }
 
+TEST(test_transaction, test_multi_deletion) {
+  const auto *host = "localhost";
+  auto configuration = InsecureConnectionConfiguration(host, 8000);
+  Connection connection(configuration);
+  auto transaction = connection.CreateTransaction();
+  EXPECT_EQ(transaction.GetStatus().GetCode(), StatusCode::INITIAL);
+  for (int i = 0; i < 3; i++) {
+    auto status = transaction->DeleteById("asdf");
+    EXPECT_EQ(status, StatusCode::GO_ON);
+  }
+}
+
 } // namespace caosdb::transaction
-- 
GitLab