summaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/Tests/DbVersionConverterTest/tst_dbversionconvertertesttest.cpp
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2014-12-06 17:33:25 -0500
committerLibravatarUnit 193 <unit193@ubuntu.com>2014-12-06 17:33:25 -0500
commit7167ce41b61d2ba2cdb526777a4233eb84a3b66a (patch)
treea35c14143716e1f2c98f808c81f89426045a946f /SQLiteStudio3/Tests/DbVersionConverterTest/tst_dbversionconvertertesttest.cpp
Imported Upstream version 2.99.6upstream/2.99.6
Diffstat (limited to 'SQLiteStudio3/Tests/DbVersionConverterTest/tst_dbversionconvertertesttest.cpp')
-rw-r--r--SQLiteStudio3/Tests/DbVersionConverterTest/tst_dbversionconvertertesttest.cpp119
1 files changed, 119 insertions, 0 deletions
diff --git a/SQLiteStudio3/Tests/DbVersionConverterTest/tst_dbversionconvertertesttest.cpp b/SQLiteStudio3/Tests/DbVersionConverterTest/tst_dbversionconvertertesttest.cpp
new file mode 100644
index 0000000..7d69e7e
--- /dev/null
+++ b/SQLiteStudio3/Tests/DbVersionConverterTest/tst_dbversionconvertertesttest.cpp
@@ -0,0 +1,119 @@
+#include "dbversionconverter.h"
+#include "parser/lexer.h"
+#include "parser/keywords.h"
+#include <QString>
+#include <QtTest>
+
+class DbVersionConverterTestTest : public QObject
+{
+ Q_OBJECT
+
+ public:
+ DbVersionConverterTestTest();
+
+ private Q_SLOTS:
+ void initTestCase();
+ void init();
+ void cleanupTestCase();
+ void testColumnAutoIncr();
+ void testIndexedColumn();
+ void testInsertMultiValues();
+ void testSelectWith();
+ void testTableWithoutRowId();
+ void testTableWithDefaultCtime();
+
+ private:
+ void printErrors();
+
+ DbVersionConverter* converter = nullptr;
+};
+
+DbVersionConverterTestTest::DbVersionConverterTestTest()
+{
+}
+
+void DbVersionConverterTestTest::testColumnAutoIncr()
+{
+ QString query = "CREATE TABLE test (col INTEGER PRIMARY KEY AUTOINCREMENT);";
+ QString result = converter->convert3To2(query);
+
+ printErrors();
+ QVERIFY(converter->getErrors().size() == 0);
+ QVERIFY(result == "CREATE TABLE test (col INTEGER PRIMARY KEY);");
+}
+
+void DbVersionConverterTestTest::testIndexedColumn()
+{
+ QString query = "CREATE INDEX idx ON test (col COLLATE NOCASE ASC);";
+ QString result = converter->convert3To2(query);
+
+ printErrors();
+ QVERIFY(converter->getErrors().size() == 0);
+ QVERIFY(result == "CREATE INDEX idx ON test (col ASC);");
+}
+
+void DbVersionConverterTestTest::testInsertMultiValues()
+{
+ QString query = "INSERT INTO test (col1, col2) VALUES (1, 'a'), (2, 'b');";
+ QString result = converter->convert3To2(query);
+
+ printErrors();
+ QVERIFY(converter->getErrors().size() == 0);
+ QVERIFY(result == "INSERT INTO test (col1, col2) SELECT 1, 'a' UNION ALL SELECT 2, 'b';");
+}
+
+void DbVersionConverterTestTest::testSelectWith()
+{
+ QString query = "WITH RECURSIVE cnt (x) AS (VALUES(1) UNION ALL SELECT x + 1 FROM cnt WHERE x < 1000000) SELECT x FROM cnt;";
+ QString result = converter->convert3To2(query);
+
+ QVERIFY(converter->getErrors().size() == 1);
+ QVERIFY(result == ";");
+}
+
+void DbVersionConverterTestTest::testTableWithoutRowId()
+{
+ QString query = "CREATE TABLE test (col PRIMARY KEY) WITHOUT ROWID;";
+ QString result = converter->convert3To2(query);
+
+ printErrors();
+ QVERIFY(converter->getErrors().size() == 0);
+ QVERIFY(result == "CREATE TABLE test (col PRIMARY KEY);");
+}
+
+void DbVersionConverterTestTest::testTableWithDefaultCtime()
+{
+ QString query = "CREATE TABLE test (col INT DEFAULT current_date NOT NULL);";
+ QString result = converter->convert3To2(query);
+
+ printErrors();
+ QVERIFY(converter->getErrors().size() == 0);
+ QVERIFY(result == "CREATE TABLE test (col INT NOT NULL);");
+}
+
+void DbVersionConverterTestTest::printErrors()
+{
+ for (const QString& err : converter->getErrors())
+ qWarning() << err;
+}
+
+void DbVersionConverterTestTest::initTestCase()
+{
+ initKeywords();
+ Lexer::staticInit();
+ converter = new DbVersionConverter();
+}
+
+void DbVersionConverterTestTest::init()
+{
+ converter->reset();
+}
+
+void DbVersionConverterTestTest::cleanupTestCase()
+{
+ delete converter;
+}
+
+QTEST_APPLESS_MAIN(DbVersionConverterTestTest)
+
+#include "tst_dbversionconvertertesttest.moc"