diff options
Diffstat (limited to 'SQLiteStudio3/Tests')
| -rw-r--r-- | SQLiteStudio3/Tests/ParserTest/tst_parsertest.cpp | 26 | ||||
| -rw-r--r-- | SQLiteStudio3/Tests/TestUtils/dbattachermock.cpp | 5 | ||||
| -rw-r--r-- | SQLiteStudio3/Tests/TestUtils/dbattachermock.h | 1 | ||||
| -rw-r--r-- | SQLiteStudio3/Tests/TestUtils/dbmanagermock.cpp | 15 | ||||
| -rw-r--r-- | SQLiteStudio3/Tests/TestUtils/dbmanagermock.h | 3 |
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(); |
