Nut/__tests/auto/tst_properties/tst_properties.cpp

71 lines
1.4 KiB
C++

#include <QtTest>
#include "tst_properties.h"
#include "sampledatabase.h"
#include "sampletable.h"
#include "../common/consts.h"
#include <QtNut/Query>
PropertiesTest::PropertiesTest(QObject *parent) : QObject(parent)
{
}
void PropertiesTest::initTestCase()
{
REGISTER(SampleTable);
REGISTER(SampleDataBase);
db.setDriver(DRIVER);
db.setHostName(HOST);
db.setDatabaseName(DATABASE);
db.setUserName(USERNAME);
db.setPassword(PASSWORD);
bool ok = db.open();
QVERIFY(ok);
db.items()->query().remove();
}
void PropertiesTest::insert()
{
auto s = new SampleTable;
s->setId(1);
s->setName("hamed");
s->setLastName("masafi");
db.items()->append(s);
auto c = db.saveChanges(); // returns count of affected rows
QCOMPARE(c, 1);
}
void PropertiesTest::select()
{
auto item = db.items()->query()
.where(SampleTable::nameField() == "hamed" && SampleTable::lastNameField() == "masafi")
.first();
QCOMPARE(item->name(), "hamed");
}
void PropertiesTest::parallelUpdate()
{
auto item1 = db.items()->query()
.first();
{
auto item2 = db.items()->query()
.first();
item2->setLastName("masafi 2");
db.saveChanges();
}
item1->setName("hamed 2");
db.saveChanges();
auto item = db.items()->query()
.first();
QCOMPARE(item->name(), "hamed 2");
QCOMPARE(item->lastName(), "masafi 2");
}
QTEST_MAIN(PropertiesTest)