smf/smfservermodule/util/qjson/tests/testqobjecthelper.cpp
changeset 7 be09cf1f39dd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smf/smfservermodule/util/qjson/tests/testqobjecthelper.cpp	Tue May 18 17:37:12 2010 +0530
@@ -0,0 +1,91 @@
+
+/* This file is part of QJson
+ *
+ * Copyright (C) 2009 Flavio Castelli <flavio.castelli@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB.  If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include <limits>
+
+#include <QtTest/QtTest>
+
+#include "person.h"
+#include "qobjecthelper.h"
+
+#include <QtCore/QVariant>
+
+class TestQObjectHelper: public QObject
+{
+  Q_OBJECT
+  private slots:
+    void testQObject2QVariant();
+    void testQVariant2QObject();
+};
+
+Q_DECLARE_METATYPE(QVariant)
+
+using namespace QJson;
+
+void TestQObjectHelper::testQObject2QVariant()
+{
+  QString name = QLatin1String("Flavio Castelli");
+  int phoneNumber = 123456;
+  Person::Gender gender = Person::Male;
+  QDate dob (1982, 7, 12);
+
+  Person person;
+  person.setName(name);
+  person.setPhoneNumber(phoneNumber);
+  person.setGender(gender);
+  person.setDob(dob);
+
+  QVariantMap expected;
+  expected[QLatin1String("name")] = QVariant(name);
+  expected[QLatin1String("phoneNumber")] = QVariant(phoneNumber);
+  expected[QLatin1String("gender")] = QVariant(gender);
+  expected[QLatin1String("dob")] = QVariant(dob);
+
+  QVariantMap result = QObjectHelper::qobject2qvariant(&person);
+
+  QCOMPARE(result, expected);
+}
+
+void TestQObjectHelper::testQVariant2QObject()
+{
+  QString name = QLatin1String("Flavio Castelli");
+  int phoneNumber = 123456;
+  Person::Gender gender = Person::Male;
+  QDate dob (1982, 7, 12);
+
+  Person person;
+
+  QVariantMap variant;
+  variant[QLatin1String("name")] = QVariant(name);
+  variant[QLatin1String("phoneNumber")] = QVariant(phoneNumber);
+  variant[QLatin1String("gender")] = QVariant(gender);
+  variant[QLatin1String("dob")] = QVariant(dob);
+
+  QObjectHelper::qvariant2qobject(variant, &person);
+
+  QCOMPARE(person.name(), name);
+  QCOMPARE(person.phoneNumber(),phoneNumber);
+  QCOMPARE(person.gender(), gender);
+  QCOMPARE(person.dob(), dob);
+}
+
+QTEST_MAIN(TestQObjectHelper)
+#include "moc_testqobjecthelper.cxx"