From f4187521eead22d1e249f572d63ee8e11c75ec14 Mon Sep 17 00:00:00 2001 From: Peinthor Rene Date: Fri, 22 Mar 2013 15:50:26 +0100 Subject: [PATCH] improve the unittests for create table parsing --- src/tests/testsqlobjects.cpp | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/src/tests/testsqlobjects.cpp b/src/tests/testsqlobjects.cpp index 98cba41e..2d6eaf7b 100644 --- a/src/tests/testsqlobjects.cpp +++ b/src/tests/testsqlobjects.cpp @@ -13,6 +13,7 @@ private slots: void notnull(); void parseSQL(); + void parseSQLdefaultexpr(); void parseSQLMultiPk(); }; @@ -73,7 +74,7 @@ void TestTable::notnull() void TestTable::parseSQL() { - QString sSQL = "CREATE TABLE hero (\n" + QString sSQL = "create TABLE hero (\n" "\tid integer PRIMARY KEY AUTOINCREMENT,\n" "\tname text NOT NULL DEFAULT 'xxxx',\n" "\tinfo VARCHAR(255) CHECK (info == x)\n" @@ -92,8 +93,35 @@ void TestTable::parseSQL() QVERIFY(tab.fields().at(0)->autoIncrement()); QVERIFY(tab.fields().at(1)->notnull()); + QCOMPARE(tab.fields().at(1)->defaultValue(), QString("'xxxx'")); QCOMPARE(tab.fields().at(1)->check(), QString("")); - QCOMPARE(tab.fields().at(2)->check(), QString("(info==x)")); + QCOMPARE(tab.fields().at(2)->check(), QString("info==x")); + + QVERIFY(tab.primarykey().contains(tab.fields().at(0))); +} + +void TestTable::parseSQLdefaultexpr() +{ + QString sSQL = "CREATE TABLE chtest(\n" + "id integer primary key,\n" + "dumpytext text default('axa') CHECK(dumpytext == \"aa\"),\n" + "zoi integer)"; + + Table tab = Table::parseSQL(sSQL); + + QVERIFY(tab.name() == "chtest"); + QVERIFY(tab.fields().at(0)->name() == "id"); + QVERIFY(tab.fields().at(1)->name() == "dumpytext"); + QVERIFY(tab.fields().at(2)->name() == "zoi"); + + QVERIFY(tab.fields().at(0)->type() == "integer"); + QVERIFY(tab.fields().at(1)->type() == "text"); + QVERIFY(tab.fields().at(2)->type() == "integer"); + + QCOMPARE(tab.fields().at(1)->defaultValue(), QString("('axa')")); + QCOMPARE(tab.fields().at(1)->check(), QString("dumpytext==\"aa\"")); + QCOMPARE(tab.fields().at(2)->defaultValue(), QString("")); + QCOMPARE(tab.fields().at(2)->check(), QString("")); QVERIFY(tab.primarykey().contains(tab.fields().at(0))); }