aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/Tests
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/Tests')
-rw-r--r--SQLiteStudio3/Tests/ParserTest/tst_parsertest.cpp26
-rw-r--r--SQLiteStudio3/Tests/TestUtils/dbattachermock.cpp5
-rw-r--r--SQLiteStudio3/Tests/TestUtils/dbattachermock.h1
-rw-r--r--SQLiteStudio3/Tests/TestUtils/dbmanagermock.cpp15
-rw-r--r--SQLiteStudio3/Tests/TestUtils/dbmanagermock.h3
5 files changed, 50 insertions, 0 deletions
diff --git a/SQLiteStudio3/Tests/ParserTest/tst_parsertest.cpp b/SQLiteStudio3/Tests/ParserTest/tst_parsertest.cpp
index 4cec515..0dc58b0 100644
--- a/SQLiteStudio3/Tests/ParserTest/tst_parsertest.cpp
+++ b/SQLiteStudio3/Tests/ParserTest/tst_parsertest.cpp
@@ -20,6 +20,7 @@ class ParserTest : public QObject
Parser* parser3 = nullptr;
private Q_SLOTS:
+ void test();
void testUniqConflict();
void testGetTableTokens();
void testGetTableTokens2();
@@ -46,6 +47,31 @@ ParserTest::ParserTest()
{
}
+void ParserTest::test()
+{
+ QString sql = "CREATE TRIGGER param_insert_chk_enum "
+ "BEFORE INSERT "
+ "ON param "
+ "WHEN new.type = 'enum' AND "
+ "new.defval IS NOT NULL AND "
+ "new.defval != '' "
+ "BEGIN "
+ "SELECT RAISE(FAIL, 'param_insert_chk_enum failed') "
+ "WHERE NOT EXISTS ( "
+ "SELECT val "
+ "FROM valset "
+ "WHERE param_id = new.param_id AND "
+ "val = new.defval "
+ "); "
+ "END;";
+
+ parser3->parse(sql);
+ QVERIFY(parser3->getErrors().size() == 0);
+
+ SqliteQueryPtr query = parser3->getQueries()[0];
+ TokenList tokens = query->getContextTableTokens();
+}
+
void ParserTest::testGetTableTokens()
{
QString sql = "select someTable.* FROM someTable;";
diff --git a/SQLiteStudio3/Tests/TestUtils/dbattachermock.cpp b/SQLiteStudio3/Tests/TestUtils/dbattachermock.cpp
index 9f61d2d..32bfcaa 100644
--- a/SQLiteStudio3/Tests/TestUtils/dbattachermock.cpp
+++ b/SQLiteStudio3/Tests/TestUtils/dbattachermock.cpp
@@ -29,6 +29,11 @@ QString DbAttacherMock::getQuery() const
return QString();
}
+bool DbAttacherMock::getMainDbNameUsed() const
+{
+ return false;
+}
+
DbAttacher* DbAttacherFactoryMock::create(Db*)
{
return new DbAttacherMock();
diff --git a/SQLiteStudio3/Tests/TestUtils/dbattachermock.h b/SQLiteStudio3/Tests/TestUtils/dbattachermock.h
index b3ab345..c914acf 100644
--- a/SQLiteStudio3/Tests/TestUtils/dbattachermock.h
+++ b/SQLiteStudio3/Tests/TestUtils/dbattachermock.h
@@ -12,6 +12,7 @@ class DbAttacherMock : public DbAttacher
void detachDatabases();
BiStrHash getDbNameToAttach() const;
QString getQuery() const;
+ bool getMainDbNameUsed() const;
};
class DbAttacherFactoryMock : public DbAttacherFactory
diff --git a/SQLiteStudio3/Tests/TestUtils/dbmanagermock.cpp b/SQLiteStudio3/Tests/TestUtils/dbmanagermock.cpp
index 7d286c4..926e57b 100644
--- a/SQLiteStudio3/Tests/TestUtils/dbmanagermock.cpp
+++ b/SQLiteStudio3/Tests/TestUtils/dbmanagermock.cpp
@@ -67,6 +67,21 @@ bool DbManagerMock::isTemporary(Db*)
return false;
}
+DbPlugin* DbManagerMock::getPluginForDbFile(const QString&)
+{
+ return nullptr;
+}
+
+QString DbManagerMock::generateUniqueDbName(const QString&)
+{
+ return QString();
+}
+
+QString DbManagerMock::generateUniqueDbName(DbPlugin*, const QString&)
+{
+ return QString();
+}
+
QString DbManagerMock::quickAddDb(const QString &, const QHash<QString, QVariant> &)
{
return QString();
diff --git a/SQLiteStudio3/Tests/TestUtils/dbmanagermock.h b/SQLiteStudio3/Tests/TestUtils/dbmanagermock.h
index 045991e..ce7eb51 100644
--- a/SQLiteStudio3/Tests/TestUtils/dbmanagermock.h
+++ b/SQLiteStudio3/Tests/TestUtils/dbmanagermock.h
@@ -21,6 +21,9 @@ class DbManagerMock : public DbManager
Db*createInMemDb();
bool isTemporary(Db*);
QString quickAddDb(const QString &path, const QHash<QString, QVariant> &);
+ DbPlugin* getPluginForDbFile(const QString&);
+ QString generateUniqueDbName(const QString&);
+ QString generateUniqueDbName(DbPlugin*, const QString&);
public slots:
void notifyDatabasesAreLoaded();