diff --git a/test/test_ccaosdb.cpp b/test/test_ccaosdb.cpp
index 1bf33420edef2b62f4dbfa395ffd2b401b43ea68..7c952a020d01eccb3e504335596834e48c5b6e23 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);
+}