25 #include <QJsonObject>
49 const int role = Qt::UserRole + 1;
50 data.
setData(QVariant::fromValue(42), role);
51 data.
setData(QVariant::fromValue(std::string(
"abc")), role + 2);
54 QJsonArray array = converter.
to_json(data);
57 EXPECT_EQ(array.size(), 2);
58 EXPECT_TRUE(array[0].isObject());
59 EXPECT_TRUE(array[1].isObject());
73 const std::vector<int> roles = {1, 2, 3};
74 const std::vector<QVariant> expected = {QVariant::fromValue(42), QVariant::fromValue(1.23),
75 QVariant::fromValue(std::string(
"abc"))};
79 for (
size_t i = 0; i < roles.size(); ++i)
80 data.
setData(expected[i], roles[i]);
83 QJsonArray array = converter.
to_json(data);
90 EXPECT_EQ(data2.
roles().size(), 3u);
92 EXPECT_EQ(data2.
roles(), roles);
93 for (
auto role : roles) {
94 EXPECT_EQ(data2.
data(role), expected[role - 1]);
108 QJsonArray array = converter.
to_json(data);
113 EXPECT_EQ(data2.
roles().size(), 1u);
132 QJsonArray array = converter.
to_json(data);
136 converter.from_json(array, data2);
137 EXPECT_EQ(data2.
roles().size(), 3u);
156 QJsonArray array = converter.
to_json(data);
160 converter.from_json(array, data2);
163 EXPECT_EQ(array.size(), 4u);
164 EXPECT_EQ(data2.
roles().size(), 1u);
174 const std::vector<QVariant> variants = {QVariant::fromValue(std::string(
"identifier1")),
175 QVariant::fromValue(42),
176 QVariant::fromValue(std::string(
"tooltip1"))};
180 for (
size_t i = 0; i < roles.size(); ++i)
181 data1.
setData(variants[i], roles[i]);
190 QJsonArray array = converter.
to_json(data2);
196 EXPECT_EQ(data1.
roles(), roles);
198 std::string(
"identifier2"));
217 QJsonArray array = converter->to_json(data);
220 converter->from_json(array, data2);
242 auto expected_roles = data.
roles();
244 QJsonArray array = converter->to_json(data);
251 converter->from_json(array, data);
254 EXPECT_EQ(data.
roles(), expected_roles);
Convenience class which creates a directory on disk for test content.
Test convertion of SessionItemData from/to QJsonObject.
JsonItemDataConverterTest()
~JsonItemDataConverterTest()
Default converter of SessionItemData to/from json object.
void from_json(const QJsonArray &object, SessionItemData &data) override
Updates existing data with JSON content.
static std::unique_ptr< JsonItemDataConverterInterface > createProjectConverter()
Creates JSON data converter intended for project saving.
QJsonArray to_json(const SessionItemData &data) override
Converts SessionItemData to JSON;.
static std::unique_ptr< JsonItemDataConverterInterface > createCopyConverter()
Creates JSON data converter intended for simple data copying. Nothing is filtered out.
Handles data roles for SessionItem.
std::vector< int > roles() const
bool hasData(int role) const
Returns true if item has data with given role.
bool setData(const Variant &value, int role)
Sets the data for given role.
Variant data(int role) const
TEST_F(JsonItemDataConverterTest, getJson)
Creating QJsonArray from SessionItemData.
const int TOOLTIP
tooltip for item's data
const int DATA
main data role
const int DISPLAY
display name
const int IDENTIFIER
unique identifier
materialitems.h Collection of materials to populate MaterialModel.
std::string TestFileName(const std::string &test_sub_dir, const std::string &file_name)
Returns full path to the file in test directory.
void SaveJson(const QJsonObject &object, const std::string &fileName)