diff --git a/3rdparty/serializer b/3rdparty/serializer index e2d8a72..b3c550c 160000 --- a/3rdparty/serializer +++ b/3rdparty/serializer @@ -1 +1 @@ -Subproject commit e2d8a726ef1396c47bf35347ea8b55ca47c6af3b +Subproject commit b3c550c5bb7c570b1b10492fcedf287c1915af39 diff --git a/ci-test-init.pri b/ci-test-init.pri index 021efb9..c3d1f7b 100644 --- a/ci-test-init.pri +++ b/ci-test-init.pri @@ -1 +1 @@ -QT -= gui +#QT -= gui diff --git a/src/database.cpp b/src/database.cpp index e6ebfd3..2b38e67 100644 --- a/src/database.cpp +++ b/src/database.cpp @@ -625,6 +625,12 @@ void Database::add(TableSetBase *t) int Database::saveChanges(bool cleanUp) { Q_D(Database); + + if (!d->db.isOpen()) { + qWarning("Database is not open"); + return 0; + } + int rowsAffected = 0; foreach (TableSetBase *ts, d->tableSets) rowsAffected += ts->save(this, cleanUp); diff --git a/src/generators/sqlgeneratorbase.cpp b/src/generators/sqlgeneratorbase.cpp index 22b0757..45460b3 100644 --- a/src/generators/sqlgeneratorbase.cpp +++ b/src/generators/sqlgeneratorbase.cpp @@ -152,6 +152,7 @@ QString SqlGeneratorBase::fieldDeclare(FieldModel *field) QStringList SqlGeneratorBase::constraints(TableModel *table) { + Q_UNUSED(table); return QStringList(); } diff --git a/src/table.cpp b/src/table.cpp index c2c3636..b45f98d 100644 --- a/src/table.cpp +++ b/src/table.cpp @@ -45,7 +45,7 @@ Table::Table(QObject *parent) : QObject(parent), { Q_D(Table); d->status = NewCreated; - d->model = TableModel::findByClassName(metaObject()->className()); +// d->model = TableModel::findByClassName(metaObject()->className()); } Table::~Table() @@ -86,15 +86,15 @@ QVariant Table::primaryValue() const void Table::propertyChanged(const QString &propName) { Q_D(Table); - if (!d->model) - d->model = TableModel::findByClassName(metaObject()->className()); +// if (!d->model) +// d->model = TableModel::findByClassName(metaObject()->className()); - if (!d->model) - qFatal ("model for class '%s' not found", qPrintable(metaObject()->className())); +// if (!d->model) +// qFatal ("model for class '%s' not found", qPrintable(metaObject()->className())); - foreach (FieldModel *f, d->model->fields()) - if(f->isPrimaryKey && propName == f->name && f->isAutoIncrement) - return; +// foreach (FieldModel *f, d->model->fields()) +// if(f->isPrimaryKey && propName == f->name && f->isAutoIncrement) +// return; d->changedProperties.insert(propName); if (d->status == FeatchedFromDB) diff --git a/src/tablemodel.cpp b/src/tablemodel.cpp index aa5d416..ce302be 100644 --- a/src/tablemodel.cpp +++ b/src/tablemodel.cpp @@ -300,6 +300,7 @@ TableModel::TableModel(const QJsonObject &json, const QString &tableName) : _typ QJsonObject relations = json.value(__FOREIGN_KEYS).toObject(); foreach (QString key, fields.keys()) { QJsonObject fieldObject = fields.value(key).toObject(); + //TODO: use FieldModel(QJsonObject) ctor auto *f = new FieldModel; f->name = fieldObject.value(__NAME).toString(); f->type = static_cast(QMetaType::type(fieldObject.value(__TYPE).toString().toLatin1().data())); diff --git a/test/common/consts.h b/test/common/consts.h index 1a1a479..901bd2a 100644 --- a/test/common/consts.h +++ b/test/common/consts.h @@ -1,6 +1,8 @@ #ifndef CONSTS_H #define CONSTS_H +#include + #define REGISTER(x) qDebug() << (#x) << "type id:" << qMetaTypeId() #define PRINT(x) qDebug() << (#x "=") << (x); #define TIC() QElapsedTimer timer; timer.start() @@ -11,8 +13,8 @@ #define DRIVER "QPSQL" #define DATABASE QString("nut_test_%1_db").arg(metaObject()->className()).toLower() #define HOST "127.0.0.1" -#define USERNAME "postgres" -#define PASSWORD "" +#define USERNAME "nut" +#define PASSWORD "856856" #ifdef Q_OS_LINUX # define OS "Linux" diff --git a/test/common/nut-lib.pri b/test/common/nut-lib.pri index 02daed5..8bf4a5b 100644 --- a/test/common/nut-lib.pri +++ b/test/common/nut-lib.pri @@ -1,10 +1,10 @@ -win32 { - CONFIG(debug,debug|release): LIBDIR = $$absolute_path($$OUT_PWD/../../src/debug) - CONFIG(release,debug|release): LIBDIR = $$absolute_path($$OUT_PWD/../../src/release) -} else { - LIBDIR = $$absolute_path($$OUT_PWD/../../src) -} - -LIBS += -L$$LIBDIR -lnut +#win32 { +# CONFIG(debug,debug|release): LIBDIR = $$absolute_path($$OUT_PWD/../../src/debug) +# CONFIG(release,debug|release): LIBDIR = $$absolute_path($$OUT_PWD/../../src/release) +#} else { +# LIBDIR = $$absolute_path($$OUT_PWD/../../src) +#} +#LIBS += -L$$LIBDIR -lnut +include(../../src/src.pri) INCLUDEPATH += $$PWD/../../src $$PWD/../common diff --git a/test/tst_json/tst_json.cpp b/test/tst_json/tst_json.cpp index 3129b16..3ae5b61 100644 --- a/test/tst_json/tst_json.cpp +++ b/test/tst_json/tst_json.cpp @@ -38,7 +38,15 @@ void TestJson::store() DB db; initDb(db); - QTEST_ASSERT(db.open()); + db.open(); + + Table *t = new Table; + QJsonDocument doc = QJsonDocument::fromJson("{a: 4, b:3.14}"); + t->setDoc(doc); + db.sampleTable()->append(t); + db.saveChanges(true); + +// QTEST_ASSERT(db.open()); } QTEST_APPLESS_MAIN(TestJson)