aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/Tests/UtilsTest
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/Tests/UtilsTest')
-rw-r--r--SQLiteStudio3/Tests/UtilsTest/UtilsTest.pro21
-rw-r--r--SQLiteStudio3/Tests/UtilsTest/tst_utilssqltest.cpp75
2 files changed, 96 insertions, 0 deletions
diff --git a/SQLiteStudio3/Tests/UtilsTest/UtilsTest.pro b/SQLiteStudio3/Tests/UtilsTest/UtilsTest.pro
new file mode 100644
index 0000000..394c7b0
--- /dev/null
+++ b/SQLiteStudio3/Tests/UtilsTest/UtilsTest.pro
@@ -0,0 +1,21 @@
+#-------------------------------------------------
+#
+# Project created by QtCreator 2016-10-03T10:48:04
+#
+#-------------------------------------------------
+
+include($$PWD/../TestUtils/test_common.pri)
+
+QT += testlib
+
+QT -= gui
+
+TARGET = tst_utilssqltest
+CONFIG += console
+CONFIG -= app_bundle
+
+TEMPLATE = app
+
+
+SOURCES += tst_utilssqltest.cpp
+DEFINES += SRCDIR=\\\"$$PWD/\\\"
diff --git a/SQLiteStudio3/Tests/UtilsTest/tst_utilssqltest.cpp b/SQLiteStudio3/Tests/UtilsTest/tst_utilssqltest.cpp
new file mode 100644
index 0000000..97c9234
--- /dev/null
+++ b/SQLiteStudio3/Tests/UtilsTest/tst_utilssqltest.cpp
@@ -0,0 +1,75 @@
+#include <QString>
+#include <QtTest>
+#include "common/utils_sql.h"
+
+class UtilsSqlTest : public QObject
+{
+ Q_OBJECT
+
+public:
+ UtilsSqlTest();
+
+private Q_SLOTS:
+ void testCaseDefault();
+ void testRemoveEmpties();
+ void testRemoveComments();
+ void testRemoveCommentsAndEmpties();
+};
+
+UtilsSqlTest::UtilsSqlTest()
+{
+}
+
+void UtilsSqlTest::testCaseDefault()
+{
+ QString sql = "select 'dfgh ;sdg '' dfga' from aa; insert into x values ('sdg', ';drghd;;;''', 4); select 1, ''; select 2;";
+ QStringList sp = quickSplitQueries(sql);
+
+ QString failure = "Failure, got: \"%1\"";
+
+ QVERIFY2(sp.size() == 4, failure.arg(sp.size()).toLatin1().data());
+ QVERIFY2(sp[0] == "select 'dfgh ;sdg '' dfga' from aa;", failure.arg(sp[0]).toLatin1().data());
+ QVERIFY2(sp[1] == " insert into x values ('sdg', ';drghd;;;''', 4);", failure.arg(sp[1]).toLatin1().data());
+ QVERIFY2(sp[2] == " select 1, '';", failure.arg(sp[2]).toLatin1().data());
+ QVERIFY2(sp[3] == " select 2;", failure.arg(sp[3]).toLatin1().data());
+}
+
+void UtilsSqlTest::testRemoveEmpties()
+{
+ QString sql = "select 'dfgh ;sdg '' dfga' from aa; ; select 1, '';";
+ QStringList sp = quickSplitQueries(sql, false);
+
+ QString failure = "Failure, got: \"%1\"";
+
+ QVERIFY2(sp.size() == 2, failure.arg(sp.size()).toLatin1().data());
+ QVERIFY2(sp[0] == "select 'dfgh ;sdg '' dfga' from aa;", failure.arg(sp[0]).toLatin1().data());
+ QVERIFY2(sp[1] == " select 1, '';", failure.arg(sp[1]).toLatin1().data());
+}
+
+void UtilsSqlTest::testRemoveComments()
+{
+ QString sql = "select 'dfgh ;sdg '' dfga' from aa; select 1/*, ''*/;--select 1\nselect 2;";
+ QStringList sp = quickSplitQueries(sql, true, true);
+
+ QString failure = "Failure, got: \"%1\"";
+
+ QVERIFY2(sp.size() == 3, failure.arg(sp.size()).toLatin1().data());
+ QVERIFY2(sp[0] == "select 'dfgh ;sdg '' dfga' from aa;", failure.arg(sp[0]).toLatin1().data());
+ QVERIFY2(sp[1] == " select 1;", failure.arg(sp[1]).toLatin1().data());
+ QVERIFY2(sp[2] == "select 2;", failure.arg(sp[2]).toLatin1().data());
+}
+
+void UtilsSqlTest::testRemoveCommentsAndEmpties()
+{
+ QString sql = "select 'dfgh ;sdg /*''*/ dfga' from aa; /*select 1, ''*/;--select 1\n--select 2;";
+ QStringList sp = quickSplitQueries(sql, false, true);
+
+ QString failure = "Failure, got: \"%1\"";
+
+ QVERIFY2(sp.size() == 1, failure.arg(sp.size()).toLatin1().data());
+ QVERIFY2(sp[0] == "select 'dfgh ;sdg /*''*/ dfga' from aa;", failure.arg(sp[0]).toLatin1().data());
+}
+
+QTEST_APPLESS_MAIN(UtilsSqlTest)
+
+#include "tst_utilssqltest.moc"