void TestQObjectHelper::testQVariant2QObject() { bool ok; QString name = QLatin1String("Flavio Castelli"); int phoneNumber = 123456; Person::Gender gender = Person::Male; QDate dob (1982, 7, 12); QVariantList nicknames; nicknames << QLatin1String("nickname1") << QLatin1String("nickname2"); Person expected_person; expected_person.setName(name); expected_person.setPhoneNumber(phoneNumber); expected_person.setGender(gender); expected_person.setDob(dob); expected_person.setCustomField(nicknames); QVariantMap variant = QObjectHelper::qobject2qvariant(&expected_person); Serializer serializer; QByteArray json = serializer.serialize(variant); Parser parser; QVariant parsedVariant = parser.parse(json,&ok); QVERIFY(ok); QVERIFY(parsedVariant.canConvert(QVariant::Map)); Person person; QObjectHelper::qvariant2qobject(parsedVariant.toMap(), &person); QCOMPARE(person.name(), name); QCOMPARE(person.phoneNumber(),phoneNumber); QCOMPARE(person.gender(), gender); QCOMPARE(person.dob(), dob); QCOMPARE(person.customField(), QVariant(nicknames)); }