From af64d3f24f20a2b4f26baf5269488a220f4d3c09 Mon Sep 17 00:00:00 2001 From: Hamed Masafi Date: Sun, 10 Feb 2019 18:16:21 +0330 Subject: [PATCH] wip;uuid as primary key [skip ci] --- test/test.pro | 6 +-- test/tst_commands/maintest.cpp | 1 + test/tst_quuid/test.h | 7 +--- test/tst_quuid/tst_quuid.pro | 10 ++--- test/tst_quuid/{maintest.cpp => tst_uuid.cpp} | 39 +++++++++++-------- test/tst_quuid/{maintest.h => tst_uuid.h} | 10 +++-- 6 files changed, 41 insertions(+), 32 deletions(-) rename test/tst_quuid/{maintest.cpp => tst_uuid.cpp} (56%) rename test/tst_quuid/{maintest.h => tst_uuid.h} (64%) diff --git a/test/test.pro b/test/test.pro index 3ffe21c..4497124 100644 --- a/test/test.pro +++ b/test/test.pro @@ -3,9 +3,9 @@ TEMPLATE = subdirs SUBDIRS += \ tst_basic \ tst_benckmark \ - tst_commands \ - tst_datatypes +# tst_commands \ + tst_datatypes \ #tst_join \ # tst_phrases -# tst_quuid + tst_quuid diff --git a/test/tst_commands/maintest.cpp b/test/tst_commands/maintest.cpp index bc53ca6..8f4462b 100644 --- a/test/tst_commands/maintest.cpp +++ b/test/tst_commands/maintest.cpp @@ -13,6 +13,7 @@ #include "post.h" #include "comment.h" #include "user.h" +#include "score.h" MainTest::MainTest(QObject *parent) : QObject(parent) { diff --git a/test/tst_quuid/test.h b/test/tst_quuid/test.h index edff96c..e960c5f 100644 --- a/test/tst_quuid/test.h +++ b/test/tst_quuid/test.h @@ -11,13 +11,10 @@ class Test : public Nut::Table NUT_PRIMARY_KEY(id) NUT_DECLARE_FIELD(QUuid, id, id, setId) - - NUT_NOT_NULL(username) - NUT_LEN(username, 50) - NUT_DECLARE_FIELD(QString, username, username, setUsername) + NUT_DECLARE_FIELD(QUuid, uuid, uuid, setUuid) public: - Q_INVOKABLE Test(QObject *parentTableSet = 0); + Q_INVOKABLE Test(QObject *parentTableSet = nullptr); }; Q_DECLARE_METATYPE(Test*) diff --git a/test/tst_quuid/tst_quuid.pro b/test/tst_quuid/tst_quuid.pro index 0a702dc..fc0a34e 100644 --- a/test/tst_quuid/tst_quuid.pro +++ b/test/tst_quuid/tst_quuid.pro @@ -1,7 +1,7 @@ QT += qml quick testlib sql QT -= gui -TARGET = tst_nut +TARGET = tst_uuid TEMPLATE = app CONFIG += warn_on qmltestcase c++11 @@ -9,12 +9,12 @@ INCLUDEPATH += $$PWD/../../src $$PWD/../common include(../../nut.pri) IMPORTPATH += $$OUT_PWD/../src/imports SOURCES += \ - maintest.cpp \ testdatabase.cpp \ - test.cpp + test.cpp \ + tst_uuid.cpp HEADERS += \ - maintest.h \ ../common/consts.h \ testdatabase.h \ - test.h + test.h \ + tst_uuid.h diff --git a/test/tst_quuid/maintest.cpp b/test/tst_quuid/tst_uuid.cpp similarity index 56% rename from test/tst_quuid/maintest.cpp rename to test/tst_quuid/tst_uuid.cpp index dc43140..03f127d 100644 --- a/test/tst_quuid/maintest.cpp +++ b/test/tst_quuid/tst_uuid.cpp @@ -6,58 +6,65 @@ #include "consts.h" -#include "maintest.h" +#include "tst_uuid.h" #include "query.h" #include "tableset.h" #include "tablemodel.h" #include "test.h" -MainTest::MainTest(QObject *parent) : QObject(parent) +UuidTest::UuidTest(QObject *parent) : QObject(parent) { } -void MainTest::initTestCase() +void UuidTest::initTestCase() { qDebug() << "Test type id:" << qRegisterMetaType(); qDebug() << "DB type id:" << qRegisterMetaType(); + QFile::remove(DATABASE); + db.setDriver(DRIVER); db.setHostName(HOST); - db.setDatabaseName("nut_tst_quuid"); + db.setDatabaseName(DATABASE); db.setUserName(USERNAME); db.setPassword(PASSWORD); bool ok = db.open(); db.tests()->query()->remove(); + uuid = QUuid::createUuid(); QTEST_ASSERT(ok); } -void MainTest::add() +void UuidTest::save() { TIC(); - QUuid uuid = QUuid::createUuid(); Test t; - t.setId(uuid); - t.setUsername("test username"); + t.setId(QUuid::createUuid()); + t.setUuid(uuid); db.tests()->append(&t); - db.saveChanges(); + int n = db.saveChanges(); TOC(); - Test *t2 = db.tests()->query() - ->where(Test::idField() == uuid) - ->first(); - TOC(); - QTEST_ASSERT(t2->id() == uuid); + QTEST_ASSERT(n == 1); } -void MainTest::cleanupTestCase() +void UuidTest::restore() +{ + TIC(); + auto test = db.tests()->query()->first(); + TOC(); + QTEST_ASSERT(!test->id().isNull()); + QTEST_ASSERT(test->uuid() == uuid); +} + +void UuidTest::cleanupTestCase() { qDeleteAll(Nut::TableModel::allModels()); // Nut::DatabaseModel::deleteAllModels(); } -QTEST_MAIN(MainTest) +QTEST_MAIN(UuidTest) diff --git a/test/tst_quuid/maintest.h b/test/tst_quuid/tst_uuid.h similarity index 64% rename from test/tst_quuid/maintest.h rename to test/tst_quuid/tst_uuid.h index 32fad84..42300f0 100644 --- a/test/tst_quuid/maintest.h +++ b/test/tst_quuid/tst_uuid.h @@ -4,21 +4,25 @@ #include #include +#include + #include "testdatabase.h" class Test; -class MainTest : public QObject +class UuidTest : public QObject { Q_OBJECT TestDatabase db; + QUuid uuid; public: - explicit MainTest(QObject *parent = 0); + explicit UuidTest(QObject *parent = nullptr); signals: private slots: void initTestCase(); - void add(); + void save(); + void restore(); void cleanupTestCase(); };