Changeset View
Changeset View
Standalone View
Standalone View
autotests/ExpressionsTest.cpp
Show All 15 Lines | 1 | /* This file is part of the KDE project | |||
---|---|---|---|---|---|
16 | the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | 16 | the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
17 | * Boston, MA 02110-1301, USA. | 17 | * Boston, MA 02110-1301, USA. | ||
18 | */ | 18 | */ | ||
19 | 19 | | |||
20 | #include "ExpressionsTest.h" | 20 | #include "ExpressionsTest.h" | ||
21 | 21 | | |||
22 | #include <QtTest> | 22 | #include <QtTest> | ||
23 | 23 | | |||
24 | #include <KDbDateTime> | ||||
24 | #include <KDbExpression> | 25 | #include <KDbExpression> | ||
25 | #include "parser/generated/sqlparser.h" | 26 | #include "parser/generated/sqlparser.h" | ||
26 | #include "parser/KDbParser_p.h" | 27 | #include "parser/KDbParser_p.h" | ||
27 | 28 | | |||
28 | Q_DECLARE_METATYPE(KDb::ExpressionClass) | 29 | Q_DECLARE_METATYPE(KDb::ExpressionClass) | ||
29 | Q_DECLARE_METATYPE(KDbEscapedString) | 30 | Q_DECLARE_METATYPE(KDbEscapedString) | ||
30 | Q_DECLARE_METATYPE(KDbField::Type) | 31 | Q_DECLARE_METATYPE(KDbField::Type) | ||
31 | Q_DECLARE_METATYPE(KDbToken) | 32 | Q_DECLARE_METATYPE(KDbToken) | ||
▲ Show 20 Lines • Show All 1027 Lines • ▼ Show 20 Line(s) | 799 | { | |||
1059 | // date | 1060 | // date | ||
1060 | QDate date(QDate::currentDate()); | 1061 | QDate date(QDate::currentDate()); | ||
1061 | c = KDbConstExpression(KDbToken::DATE_CONST, date); | 1062 | c = KDbConstExpression(KDbToken::DATE_CONST, date); | ||
1062 | QVERIFY(c.isValid()); | 1063 | QVERIFY(c.isValid()); | ||
1063 | QVERIFY(c.isDateTimeType()); | 1064 | QVERIFY(c.isDateTimeType()); | ||
1064 | QCOMPARE(c.type(), KDbField::Date); | 1065 | QCOMPARE(c.type(), KDbField::Date); | ||
1065 | QCOMPARE(c.value(), QVariant(date)); | 1066 | QCOMPARE(c.value(), QVariant(date)); | ||
1066 | QVERIFY(validate(&c)); | 1067 | QVERIFY(validate(&c)); | ||
1068 | testCloneExpression(c); | ||||
1067 | //qDebug() << c; | 1069 | //qDebug() << c; | ||
1068 | date = date.addDays(17); | 1070 | date = date.addDays(17); | ||
1069 | c.setValue(date); | 1071 | c.setValue(date); | ||
1070 | QCOMPARE(c.value(), QVariant(date)); | 1072 | QCOMPARE(c.value(), QVariant(date)); | ||
1071 | QVERIFY(c.isValid()); | 1073 | QVERIFY(c.isValid()); | ||
1072 | QVERIFY(c.isDateTimeType()); | 1074 | QVERIFY(c.isDateTimeType()); | ||
1073 | QVERIFY(validate(&c)); | 1075 | QVERIFY(validate(&c)); | ||
1074 | testCloneExpression(c); | 1076 | testCloneExpression(c); | ||
1075 | //qDebug() << c; | 1077 | | ||
1078 | KDbDate dateKDb(KDbYear("2018"), "11", "27"); | ||||
1079 | c.setValue(QVariant::fromValue(dateKDb)); | ||||
1080 | QCOMPARE(c.value(), QVariant::fromValue(dateKDb)); | ||||
1081 | QVERIFY(c.isValid()); | ||||
1082 | QVERIFY(c.isDateTimeType()); | ||||
1083 | QVERIFY(validate(&c)); | ||||
1084 | testCloneExpression(c); | ||||
1085 | | ||||
1086 | // time | ||||
1087 | QTime time(QTime::currentTime()); | ||||
1088 | c = KDbConstExpression(KDbToken::TIME_CONST, time); | ||||
1089 | QCOMPARE(c.type(), KDbField::Time); | ||||
1090 | QVERIFY(c.isValid()); | ||||
1091 | QVERIFY(c.isDateTimeType()); | ||||
1092 | QCOMPARE(c.value(), QVariant(time)); | ||||
1093 | testCloneExpression(c); | ||||
1094 | QVERIFY(validate(&c)); | ||||
1095 | time = time.addMSecs(1200123); | ||||
1096 | c.setValue(time); | ||||
1097 | QCOMPARE(c.value(), QVariant(time)); | ||||
1098 | QVERIFY(c.isValid()); | ||||
1099 | QVERIFY(c.isDateTimeType()); | ||||
1100 | QVERIFY(validate(&c)); | ||||
1101 | testCloneExpression(c); | ||||
1102 | | ||||
1103 | KDbTime timeKDb("12", "34", "56", "789"); | ||||
1104 | c.setValue(QVariant::fromValue(timeKDb)); | ||||
1105 | QCOMPARE(c.value(), QVariant::fromValue(timeKDb)); | ||||
1106 | QVERIFY(c.isValid()); | ||||
1107 | QVERIFY(c.isDateTimeType()); | ||||
1108 | QVERIFY(validate(&c)); | ||||
1109 | testCloneExpression(c); | ||||
1076 | 1110 | | |||
1077 | // date/time | 1111 | // date/time | ||
1078 | QDateTime dateTime(QDateTime::currentDateTime()); | 1112 | QDateTime dateTime(QDateTime::currentDateTime()); | ||
1079 | c = KDbConstExpression(KDbToken::DATETIME_CONST, dateTime); | 1113 | c = KDbConstExpression(KDbToken::DATETIME_CONST, dateTime); | ||
1080 | QCOMPARE(c.type(), KDbField::DateTime); | 1114 | QCOMPARE(c.type(), KDbField::DateTime); | ||
1081 | QVERIFY(c.isValid()); | 1115 | QVERIFY(c.isValid()); | ||
1082 | QVERIFY(c.isDateTimeType()); | 1116 | QVERIFY(c.isDateTimeType()); | ||
1083 | QCOMPARE(c.value(), QVariant(dateTime)); | 1117 | QCOMPARE(c.value(), QVariant(dateTime)); | ||
1084 | QVERIFY(validate(&c)); | 1118 | QVERIFY(validate(&c)); | ||
1119 | testCloneExpression(c); | ||||
1085 | //qDebug() << c; | 1120 | //qDebug() << c; | ||
1086 | dateTime = dateTime.addDays(-17); | 1121 | dateTime = dateTime.addDays(-17); | ||
1087 | c.setValue(dateTime); | 1122 | c.setValue(dateTime); | ||
1088 | QCOMPARE(c.value(), QVariant(dateTime)); | 1123 | QCOMPARE(c.value(), QVariant(dateTime)); | ||
1089 | QVERIFY(c.isValid()); | 1124 | QVERIFY(c.isValid()); | ||
1090 | QVERIFY(c.isDateTimeType()); | 1125 | QVERIFY(c.isDateTimeType()); | ||
1091 | QVERIFY(validate(&c)); | 1126 | QVERIFY(validate(&c)); | ||
1092 | testCloneExpression(c); | 1127 | testCloneExpression(c); | ||
1093 | //qDebug() << c; | 1128 | //qDebug() << c; | ||
1094 | 1129 | KDbDateTime dateTimeKDb(dateKDb, timeKDb); | |||
1095 | // time | 1130 | c.setValue(QVariant::fromValue(dateTimeKDb)); | ||
1096 | QTime time(QTime::currentTime()); | 1131 | // qDebug() << QVariant::fromValue(dateTimeKDb); | ||
1097 | c = KDbConstExpression(KDbToken::TIME_CONST, time); | 1132 | // qDebug() << QVariant::fromValue(dateTimeKDb).isValid(); | ||
1098 | QCOMPARE(c.type(), KDbField::Time); | 1133 | // qDebug() << c.value(); | ||
1099 | QVERIFY(c.isValid()); | 1134 | // qDebug() << c.value().isValid(); | ||
1100 | QVERIFY(c.isDateTimeType()); | 1135 | // qDebug() << (QVariant::fromValue(dateTimeKDb) == c.value()); | ||
1101 | QCOMPARE(c.value(), QVariant(time)); | 1136 | QCOMPARE(c.value(), QVariant::fromValue(dateTimeKDb)); | ||
1102 | //qDebug() << c; | | |||
1103 | QVERIFY(validate(&c)); | | |||
1104 | time = time.addSecs(1200); | | |||
1105 | c.setValue(time); | | |||
1106 | QCOMPARE(c.value(), QVariant(time)); | | |||
1107 | QVERIFY(c.isValid()); | 1137 | QVERIFY(c.isValid()); | ||
1108 | QVERIFY(c.isDateTimeType()); | 1138 | QVERIFY(c.isDateTimeType()); | ||
1109 | QVERIFY(validate(&c)); | 1139 | QVERIFY(validate(&c)); | ||
1110 | testCloneExpression(c); | 1140 | testCloneExpression(c); | ||
1111 | //qDebug() << c; | | |||
1112 | 1141 | | |||
1113 | // setValue() | 1142 | // setValue() | ||
1114 | c = KDbConstExpression(KDbToken::INTEGER_CONST, 124); | 1143 | c = KDbConstExpression(KDbToken::INTEGER_CONST, 124); | ||
1115 | QCOMPARE(c.value(), QVariant(124)); | 1144 | QCOMPARE(c.value(), QVariant(124)); | ||
1116 | c.setValue(299); | 1145 | c.setValue(299); | ||
1117 | QCOMPARE(c.value(), QVariant(299)); | 1146 | QCOMPARE(c.value(), QVariant(299)); | ||
1118 | QVERIFY(c.isValid()); | 1147 | QVERIFY(c.isValid()); | ||
1119 | QVERIFY(c.isNumericType()); | 1148 | QVERIFY(c.isNumericType()); | ||
▲ Show 20 Lines • Show All 352 Lines • Show Last 20 Lines |