Nut/test/tst_generators/tst_generators.cpp

129 lines
3.1 KiB
C++
Raw Normal View History

2019-02-11 14:44:49 +08:00
#include <QtTest>
#include <QMetaType>
#include <QList>
#include <QString>
#include <QObject>
#include "tablemodel.h"
#include "generators/sqlitegenerator.h"
#include "generators/sqlservergenerator.h"
#include "generators/mysqlgenerator.h"
2019-02-11 16:00:00 +08:00
#include "generators/postgresqlgenerator.h"
2019-02-11 14:44:49 +08:00
2019-02-11 16:00:00 +08:00
#include "tst_generators.h"
2019-02-11 14:44:49 +08:00
2019-02-11 16:00:00 +08:00
GeneratorsTest::GeneratorsTest(QObject *parent) : QObject(parent)
2019-02-11 14:44:49 +08:00
{
}
2019-02-11 16:00:00 +08:00
void GeneratorsTest::types(Nut::SqlGeneratorBase *g)
2019-02-11 14:44:49 +08:00
{
QList<QMetaType::Type> types;
types
2019-02-11 16:00:00 +08:00
<< QMetaType::Bool
<< QMetaType::Char
<< QMetaType::SChar
<< QMetaType::UChar
<< QMetaType::QChar
<< QMetaType::Short
<< QMetaType::UShort
<< QMetaType::Int
<< QMetaType::UInt
<< QMetaType::Long
<< QMetaType::LongLong
<< QMetaType::ULong
<< QMetaType::ULongLong
<< QMetaType::Double
<< QMetaType::Float
<< QMetaType::QString
<< QMetaType::QStringList
<< QMetaType::QBitArray
<< QMetaType::QByteArray
<< QMetaType::QDate
<< QMetaType::QTime
<< QMetaType::QDateTime
<< QMetaType::QUrl
<< QMetaType::QColor
<< QMetaType::QPoint
<< QMetaType::QPointF
<< QMetaType::QPolygon
<< QMetaType::QPolygonF
<< QMetaType::QSize
<< QMetaType::QSizeF
<< QMetaType::QRect
<< QMetaType::QRectF
<< QMetaType::QLine
<< QMetaType::QLineF
// << QMetaType::QRegion
// << QMetaType::QImage
// << QMetaType::QPixmap
// << QMetaType::QLocale
// << QMetaType::QMatrix
// << QMetaType::QMatrix4x4
// << QMetaType::QVector2D
// << QMetaType::QVector3D
// << QMetaType::QVector4D
<< QMetaType::QJsonValue
<< QMetaType::QJsonObject
<< QMetaType::QJsonArray
<< QMetaType::QJsonDocument
<< QMetaType::QUuid
// << QMetaType::QByteArrayList
;
2019-02-11 14:44:49 +08:00
Nut::FieldModel m;
foreach (QMetaType::Type t, types) {
m.type = t;
QString fn = g->fieldType(&m);
2019-02-11 16:00:00 +08:00
if (fn.isEmpty())
qDebug() << "No rule for" << t << "(" << QMetaType::typeName(t) << ")";
2019-02-11 14:44:49 +08:00
Q_ASSERT(!fn.isEmpty());
}
}
2019-02-11 16:00:00 +08:00
void GeneratorsTest::test_sqlite()
{
auto g = new Nut::SqliteGenerator;
types(g);
g->deleteLater();
}
void GeneratorsTest::test_sqlserver()
{
auto g = new Nut::SqlServerGenerator;
types(g);
g->deleteLater();
}
void GeneratorsTest::test_psql()
{
auto g = new Nut::PostgreSqlGenerator;
types(g);
g->deleteLater();
}
void GeneratorsTest::test_mysql()
{
auto g = new Nut::MySqlGenerator;
types(g);
g->deleteLater();
}
2019-02-11 14:44:49 +08:00
2019-02-11 16:00:00 +08:00
QTEST_MAIN(GeneratorsTest)
2019-02-11 14:44:49 +08:00
2019-02-11 16:00:00 +08:00
//#include "tst_GeneratorsTest.moc"