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