Fixing datetime conversion
authorkomarma <komarma@localhost>
Thu, 31 Dec 2009 11:24:20 +0000 (11:24 +0000)
committerkomarma <komarma@localhost>
Thu, 31 Dec 2009 11:24:20 +0000 (11:24 +0000)
src/model/event.h
src/orm/ormrecord.h
src/test/model/eventtest.cpp

index 14aa5f3..b3efb48 100644 (file)
@@ -30,16 +30,16 @@ public:
     QDateTime start() const { return value("start").toDateTime(); }
     int duration() const { return value("duration").toInt(); }
     int activityId() const { return value("xid_activity").toInt(); }
-    int typeId() const { return value("type").toInt(); }
-    int languageId() const { return value("language").toInt(); }
+    QString type() const { return value("type").toString(); }
+    QString language() const { return value("language").toString(); }
 
     void setId(int id) { setValue("id", id); }
     void setConferenceId(int conferenceId) { setValue("xid_conference", conferenceId); }
     void setStart(const QDateTime& start) { setValue("start", start); }
     void setDuration(int duration) { setValue("duration", duration); }
     void setActivityId(int activityId) { setValue("xid_activity", activityId); }
-    void setTypeId(int typeId) { setValue("type", typeId); }
-    void setLanguageId(int languageId) { setValue("language", languageId); }
+    void setType(const QString& type) { setValue("type", type); }
+    void setLanguage(const QString& language) { setValue("language", language); }
 
 friend class EventTest;
 };
index 22e19f4..a939248 100644 (file)
@@ -148,10 +148,10 @@ QSqlRecord OrmRecord<T>::toRecord(const QList<QSqlField> & columnList)
 template <typename T>
 QVariant OrmRecord<T>::convertToC(QVariant value, QVariant::Type colType)
 {
-    if (colType == QVariant::DateTime &&
-        (value.type() == QVariant::UInt || value.type() == QVariant::Int))
+    if (colType == QVariant::DateTime && value.canConvert<uint>())
     {
         QDateTime date;
+        date.setTimeSpec(Qt::UTC);
         date.setTime_t(value.toUInt());
         return date;
     }
index 83f1996..515ab42 100644 (file)
@@ -18,13 +18,14 @@ void EventTest::initTestCase()
 void EventTest::getById()
 {
     Event event = Event::getById(500, 1);
+
     QCOMPARE(event.id(), 500);
-    QCOMPARE(event.start(), QDateTime::fromString("Sat Feb 7 11:30:00 2009"));
+    QCOMPARE(event.start(), QDateTime(QDate(2009, 2, 7), QTime(11, 30, 0), Qt::UTC));
     QCOMPARE(event.activityId(), 123);
 
     // !!! TODO: typeId and languageId
-    QCOMPARE(event.typeId(), 0);
-    QCOMPARE(event.languageId(), 0);
+    QCOMPARE(event.type(), QString("Podium"));
+    QCOMPARE(event.language(), QString("English"));
 }
 
 void EventTest::storingValues()
@@ -36,19 +37,18 @@ void EventTest::storingValues()
     event.setStart(QDateTime::fromString("Sat Feb 7 11:30:00 2009"));
     event.setDuration(30);
     event.setActivityId(40);
-    event.setTypeId(50);
-    event.setLanguageId(60);
+    event.setType(QString("type"));
+    event.setLanguage(QString("language"));
 
     QCOMPARE(event.id(), 10);
     QCOMPARE(event.conferenceId(), 20);
     QCOMPARE(event.start(), QDateTime::fromString("Sat Feb 7 11:30:00 2009"));
     QCOMPARE(event.duration(), 30);
     QCOMPARE(event.activityId(), 40);
-    QCOMPARE(event.typeId(), 50);
-    QCOMPARE(event.languageId(), 60);
+    QCOMPARE(event.type(), QString("type"));
+    QCOMPARE(event.language(), QString("language"));
 }
 
-
 void EventTest::hydrate()
 {
     QSqlRecord record;