File indexing completed on 2024-05-12 05:22:07
0001 /* 0002 * SPDX-FileCopyrightText: 2023 Claudio Cambra <claudio.cambra@kde.org> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #include "peopletestutils.h" 0008 0009 #include "people/contactgroup.h" 0010 #include "people/peopleservice.h" 0011 #include "people/person.h" 0012 #include "testutils.h" 0013 0014 #include <QFile> 0015 #include <QJsonDocument> 0016 #include <QJsonObject> 0017 0018 namespace KGAPI2 { 0019 namespace People { 0020 namespace TestUtils { 0021 0022 PersonPtr personFromFile(const QString &path) 0023 { 0024 QFile f(path); 0025 VERIFY_RET(f.open(QIODevice::ReadOnly), {}); 0026 0027 const auto jsonObject = QJsonDocument::fromJson(f.readAll()).object(); 0028 const auto person = Person::fromJSON(jsonObject); 0029 VERIFY_RET(person, {}); 0030 return person; 0031 } 0032 0033 ContactGroupPtr contactGroupFromFile(const QString &path) 0034 { 0035 QFile f(path); 0036 VERIFY_RET(f.open(QIODevice::ReadOnly), {}); 0037 0038 const auto jsonObject = QJsonDocument::fromJson(f.readAll()).object(); 0039 auto group = ContactGroup::fromJSON(jsonObject); 0040 VERIFY_RET(group, {}); 0041 return group; 0042 } 0043 0044 PersonList connectionsFromFile(const QString &path) 0045 { 0046 QFile f(path); 0047 VERIFY_RET(f.open(QIODevice::ReadOnly), {}); 0048 0049 FeedData feedData; 0050 const auto connections = PeopleService::parseConnectionsJSONFeed(feedData, f.readAll()); 0051 0052 PersonList people; 0053 std::transform(connections.cbegin(), connections.cend(), std::back_inserter(people), [](const ObjectPtr &object) { 0054 return object.dynamicCast<Person>(); 0055 }); 0056 0057 return people; 0058 } 0059 0060 ContactGroupList contactGroupsFromFile(const QString &path) 0061 { 0062 QFile f(path); 0063 VERIFY_RET(f.open(QIODevice::ReadOnly), {}); 0064 0065 FeedData feedData; 0066 const auto contactGroups = PeopleService::parseContactGroupsJSONFeed(feedData, f.readAll()); 0067 0068 ContactGroupList convertedContactGroups; 0069 std::transform(contactGroups.cbegin(), contactGroups.cend(), std::back_inserter(convertedContactGroups), [](const ObjectPtr &object) { 0070 return object.dynamicCast<ContactGroup>(); 0071 }); 0072 0073 return convertedContactGroups; 0074 } 0075 0076 QByteArray rawPhotoDataFromPhotoRequestData(const QString &path) 0077 { 0078 QFile f(path); 0079 VERIFY_RET(f.open(QIODevice::ReadOnly), {}); 0080 0081 const auto jsonDocument = QJsonDocument::fromJson(f.readAll()); 0082 VERIFY_RET(jsonDocument.isObject(), {}); 0083 0084 const auto jsonObject = jsonDocument.object(); 0085 VERIFY_RET(jsonObject.contains(QStringLiteral("personFields")), {}); 0086 VERIFY_RET(jsonObject.contains(QStringLiteral("photoBytes")), {}); 0087 0088 const auto rawData = jsonObject.value(QStringLiteral("photoBytes")).toString().toUtf8(); 0089 return QByteArray::fromBase64(rawData); 0090 } 0091 0092 PersonPtr personFromPhotoUpdateResponseFile(const QString &path) 0093 { 0094 QFile f(path); 0095 VERIFY_RET(f.open(QIODevice::ReadOnly), {}); 0096 0097 const auto jsonObject = QJsonDocument::fromJson(f.readAll()).object(); 0098 const auto personObject = jsonObject.value(QStringLiteral("person")).toObject(); 0099 const auto person = Person::fromJSON(personObject); 0100 VERIFY_RET(person, {}); 0101 return person; 0102 } 0103 0104 ContactGroupPtr contactGroupFromRequestDataFile(const QString &path) 0105 { 0106 QFile f(path); 0107 VERIFY_RET(f.open(QIODevice::ReadOnly), {}); 0108 0109 const auto jsonObject = QJsonDocument::fromJson(f.readAll()).object(); 0110 const auto groupObject = jsonObject.value(QStringLiteral("contactGroup")).toObject(); 0111 auto group = ContactGroup::fromJSON(groupObject); 0112 VERIFY_RET(group, {}); 0113 return group; 0114 } 0115 0116 } // TestUtils 0117 } // People 0118 } // KGAPI2