From e1ea78fdda4252ab0b05bd361e887bff103fb23c Mon Sep 17 00:00:00 2001 From: Peinthor Rene Date: Wed, 25 Jun 2014 19:20:58 +0200 Subject: [PATCH] grammar: add tests for like operator and between --- src/tests/testsqlobjects.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/tests/testsqlobjects.cpp b/src/tests/testsqlobjects.cpp index 715d4b40..7307a62c 100644 --- a/src/tests/testsqlobjects.cpp +++ b/src/tests/testsqlobjects.cpp @@ -223,14 +223,24 @@ void TestTable::createTableWithIn() void TestTable::createTableWithNotLikeConstraint() { - QString sSQL = "CREATE TABLE hopefully_working(" - "value TEXT CONSTRAINT 'value' CHECK(value NOT LIKE 'prefix%')" + QString sSQL = "CREATE TABLE hopefully_working(\n" + "value TEXT CONSTRAINT 'value' CHECK(value NOT LIKE 'prefix%'),\n" + "value2 TEXT CONSTRAINT 'value' CHECK(value2 NOT MATCH 'prefix%'),\n" + "value3 TEXT CONSTRAINT 'value' CHECK(value3 NOT REGEXP 'prefix%'),\n" + "value4 TEXT CONSTRAINT 'value' CHECK(value4 NOT GLOB 'prefix%'),\n" + "value5 INTEGER CONSTRAINT 'value' CHECK(value5 BETWEEN 1+4 AND 100 OR 200),\n" + "value6 INTEGER CONSTRAINT 'value' CHECK(value6 NOT BETWEEN 1 AND 100)\n" ");"; Table tab = Table::parseSQL(sSQL); QVERIFY(tab.name() == "hopefully_working"); QVERIFY(tab.fields().at(0)->check() == "value NOT LIKE 'prefix%'"); + QVERIFY(tab.fields().at(1)->check() == "value2 NOT MATCH 'prefix%'"); + QVERIFY(tab.fields().at(2)->check() == "value3 NOT REGEXP 'prefix%'"); + QVERIFY(tab.fields().at(3)->check() == "value4 NOT GLOB 'prefix%'"); + QVERIFY(tab.fields().at(4)->check() == "value5 BETWEEN 1 + 4 AND 100 OR 200"); + QVERIFY(tab.fields().at(5)->check() == "value6 NOT BETWEEN 1 AND 100"); } QTEST_MAIN(TestTable)