From 54da3f1d7f1d79068c3114d116a3d7c5a12fd0a4 Mon Sep 17 00:00:00 2001
From: florian <f.spreckelsen@inidscale.com>
Date: Thu, 12 Aug 2021 14:36:39 +0200
Subject: [PATCH] ENH: Add test for empty count query

---
 test/test_ccaosdb.cpp | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/test/test_ccaosdb.cpp b/test/test_ccaosdb.cpp
index 1bf3342..7c952a0 100644
--- a/test/test_ccaosdb.cpp
+++ b/test/test_ccaosdb.cpp
@@ -17,6 +17,7 @@
  * You should have received a copy of the GNU Affero General Public License
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
  */
+#include "caosdb/status_code.h"    // for StatusCode
 #include "ccaosdb.h"               // for caosdb_info_version_info, caosdb_...
 #include "gtest/gtest-message.h"   // for Message
 #include "gtest/gtest-test-part.h" // for TestPartResult
@@ -40,3 +41,34 @@ TEST(test_ccaosdb, connection_ssl_authentication_success) {
   EXPECT_EQ(minor, version_info.minor);
   EXPECT_STREQ(pre_release, version_info.pre_release);
 }
+
+TEST(test_ccaosdb, test_count_query) {
+
+  caosdb_connection_connection connection;
+  int return_code(
+    caosdb_connection_connection_manager_get_default_connection(&connection));
+  EXPECT_EQ(return_code, 0);
+
+  caosdb_transaction_transaction transaction;
+  return_code =
+    caosdb_connection_connection_create_transaction(&connection, &transaction);
+  EXPECT_EQ(return_code, 0);
+
+  // COUNT query with an empty result
+  return_code = caosdb_transaction_transaction_query(
+    &transaction, "COUNT ENTITY WITH id='non-existing'");
+  EXPECT_EQ(return_code, caosdb::StatusCode::GO_ON);
+
+  return_code = caosdb_transaction_transaction_execute(&transaction);
+  EXPECT_EQ(return_code, 0);
+
+  long dummy(-1);       // NOLINT
+  long *count = &dummy; // NOLINT
+  return_code =
+    caosdb_transaction_transaction_get_count_result(&transaction, count);
+  EXPECT_EQ(return_code, 0);
+  EXPECT_EQ(*count, 0);
+
+  return_code = caosdb_transaction_delete_transaction(&transaction);
+  EXPECT_EQ(return_code, 0);
+}
-- 
GitLab