Sqlite: Add pathExists function

The 'pathExists' function can be registered to the database connection
and is then callable in Sql.

Task-number: QDS-9217
Change-Id: I21afc5cd38765854daa0b1058cc5e8946b551924
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
This commit is contained in:
Marco Bubke
2023-02-20 17:24:19 +01:00
parent b4ab1e173b
commit 18157d0b24
5 changed files with 105 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#include "googletest.h"
#include <sqlitefunctionregistry.h>
namespace {
class SqliteFunctionRegistry : public testing::Test
{
public:
SqliteFunctionRegistry() { Sqlite::FunctionRegistry::registerPathExists(database); }
protected:
Sqlite::Database database{":memory:", Sqlite::JournalMode::Memory};
};
TEST_F(SqliteFunctionRegistry, PathExists)
{
std::lock_guard lock{database};
Sqlite::ReadStatement<1> statement{"SELECT pathExists('" TESTDATA_DIR "/sqlite_database.db')",
database};
auto pathExists = statement.value<bool>();
ASSERT_TRUE(pathExists);
}
TEST_F(SqliteFunctionRegistry, PathDoesntExists)
{
std::lock_guard lock{database};
Sqlite::ReadStatement<1> statement{"SELECT pathExists('" TESTDATA_DIR "/sqlite_database2.db')",
database};
auto pathExists = statement.value<bool>();
ASSERT_FALSE(pathExists);
}
} // namespace