File indexing completed on 2024-05-19 05:14:15
0001 /* 0002 SPDX-FileCopyrightText: 2018 Volker Krause <vkrause@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #ifndef MODELVERIFICATIONPOINT_H 0008 #define MODELVERIFICATIONPOINT_H 0009 0010 #include <QString> 0011 0012 #include <vector> 0013 0014 class QAbstractItemModel; 0015 class QJsonValue; 0016 class QVariant; 0017 0018 /** Compares a model state serialized to JSON with a current model state. */ 0019 class ModelVerificationPoint 0020 { 0021 public: 0022 explicit ModelVerificationPoint(const QString &refFile); 0023 ~ModelVerificationPoint(); 0024 0025 void setRoleFilter(std::vector<int> &&filter); 0026 void setJsonPropertyFilter(std::vector<QString> &&filter); 0027 0028 bool verify(QAbstractItemModel *model) const; 0029 0030 private: 0031 QJsonValue variantToJson(const QVariant &v) const; 0032 0033 QString m_refFile; 0034 std::vector<int> m_roleFilter; 0035 std::vector<QString> m_jsonPropertyFilter; 0036 }; 0037 0038 #endif // MODELVERIFICATIONPOINT_H