diff -r c39a6cfd1fb9 -r be09cf1f39dd smf/smfservermodule/util/qjson/tests/testqobjecthelper.cpp --- /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 + * + * 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 + +#include + +#include "person.h" +#include "qobjecthelper.h" + +#include + +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"