BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
jsonitemformatassistant.test.cpp File Reference

Implements class CLASS? More...

Include dependency graph for jsonitemformatassistant.test.cpp:

Go to the source code of this file.

Classes

class  JsonItemFormatAssistantTest
 Checks JsonItem class and its ability to convert SessionItems to json and back. More...
 

Functions

 TEST_F (JsonItemFormatAssistantTest, isSessionItem)
 Checks the validity of json object representing SessionItem. More...
 
 TEST_F (JsonItemFormatAssistantTest, isSessionItemContainer)
 Checks the validity of json object representing SessionItemContainer. More...
 
 TEST_F (JsonItemFormatAssistantTest, isSessionItemTags)
 Checks the validity of json object representing SessionItemTags. More...
 
 TEST_F (JsonItemFormatAssistantTest, isValidDataRole)
 Checks if json object is correctly identified as representing DataRole. More...
 
 TEST_F (JsonItemFormatAssistantTest, isValidSessionModel)
 Validity of json object representing SessionModel. More...
 

Detailed Description

Implements class CLASS?

Homepage:\n http://www.bornagainproject.org
License:\n GNU General Public License v3 or higher (see COPYING)
Authors
Gennady Pospelov et al, Scientific Computing Group at MLZ (see CITATION, AUTHORS)

Definition in file jsonitemformatassistant.test.cpp.

Function Documentation

◆ TEST_F() [1/5]

TEST_F ( JsonItemFormatAssistantTest  ,
isSessionItem   
)

Checks the validity of json object representing SessionItem.

Definition at line 34 of file jsonitemformatassistant.test.cpp.

35 {
36  JsonItemFormatAssistant assistant;
37 
38  // empty json object is not valid
39  QJsonObject object;
40  EXPECT_FALSE(assistant.isSessionItem(object));
41 
42  // it also should contain array
43  object[JsonItemFormatAssistant::modelKey] = "abc";
44  object[JsonItemFormatAssistant::itemDataKey] = QJsonArray();
45  object[JsonItemFormatAssistant::itemTagsKey] = 42; // intentionally incorrect
46  EXPECT_FALSE(assistant.isSessionItem(object));
47 
48  // correctly constructed
49  object[JsonItemFormatAssistant::itemTagsKey] = QJsonObject();
50  EXPECT_TRUE(assistant.isSessionItem(object));
51 }
Utility class to determine, whether given JSON object can represent various parts of SessionModel.
bool isSessionItem(const QJsonObject &json) const
Returns true if given json object represents SessionItem.

References ModelView::JsonItemFormatAssistant::isSessionItem(), ModelView::JsonItemFormatAssistant::itemDataKey, ModelView::JsonItemFormatAssistant::itemTagsKey, and ModelView::JsonItemFormatAssistant::modelKey.

Here is the call graph for this function:

◆ TEST_F() [2/5]

TEST_F ( JsonItemFormatAssistantTest  ,
isSessionItemContainer   
)

Checks the validity of json object representing SessionItemContainer.

Definition at line 97 of file jsonitemformatassistant.test.cpp.

98 {
99  JsonItemFormatAssistant assistant;
100 
101  // empty json object is not valid
102  QJsonObject object;
103  EXPECT_FALSE(assistant.isSessionItemContainer(object));
104 
105  // it also should contain array
106  object[JsonItemFormatAssistant::tagInfoKey] = QJsonObject();
107  object[JsonItemFormatAssistant::itemsKey] = QJsonArray();
108  EXPECT_TRUE(assistant.isSessionItemContainer(object));
109 }
bool isSessionItemContainer(const QJsonObject &json) const
Returns true if given json object represents SessionItemContainer.

References ModelView::JsonItemFormatAssistant::isSessionItemContainer(), ModelView::JsonItemFormatAssistant::itemsKey, and ModelView::JsonItemFormatAssistant::tagInfoKey.

Here is the call graph for this function:

◆ TEST_F() [3/5]

TEST_F ( JsonItemFormatAssistantTest  ,
isSessionItemTags   
)

Checks the validity of json object representing SessionItemTags.

Definition at line 81 of file jsonitemformatassistant.test.cpp.

82 {
83  JsonItemFormatAssistant assistant;
84 
85  // empty json object is not valid
86  QJsonObject object;
87  EXPECT_FALSE(assistant.isSessionItemTags(object));
88 
89  // it also should contain array
90  object[JsonItemFormatAssistant::defaultTagKey] = "abc";
91  object[JsonItemFormatAssistant::containerKey] = QJsonArray();
92  EXPECT_TRUE(assistant.isSessionItemTags(object));
93 }
bool isSessionItemTags(const QJsonObject &json) const
Returns true if given json object represents SessionItemTags.

References ModelView::JsonItemFormatAssistant::containerKey, ModelView::JsonItemFormatAssistant::defaultTagKey, and ModelView::JsonItemFormatAssistant::isSessionItemTags().

Here is the call graph for this function:

◆ TEST_F() [4/5]

TEST_F ( JsonItemFormatAssistantTest  ,
isValidDataRole   
)

Checks if json object is correctly identified as representing DataRole.

Definition at line 55 of file jsonitemformatassistant.test.cpp.

56 {
57  JsonItemFormatAssistant assistant;
58  JsonVariantConverter variant_converter;
59 
60  // valid json object representing DataRole
61  QJsonObject object;
62  object[JsonItemFormatAssistant::roleKey] = 42;
63  object[JsonItemFormatAssistant::variantKey] = variant_converter.get_json(QVariant(1.23));
64  EXPECT_TRUE(assistant.isSessionItemData(object));
65 
66  // invalid json object which can't represent DataRole
67  QJsonObject object2;
68  object2[JsonItemFormatAssistant::roleKey] = 42;
69  EXPECT_FALSE(assistant.isSessionItemData(object2));
70 
71  // another invalid json object
72  QJsonObject object3;
73  object3[JsonItemFormatAssistant::roleKey] = 42;
74  object3[JsonItemFormatAssistant::variantKey] = variant_converter.get_json(QVariant(1.23));
75  object3["abc"] = variant_converter.get_json(QVariant::fromValue(std::string("xxx")));
76  EXPECT_FALSE(assistant.isSessionItemData(object3));
77 }
bool isSessionItemData(const QJsonObject &json) const
Default converter between supported variants and json objects.
QJsonObject get_json(const Variant &variant) override

References ModelView::JsonVariantConverter::get_json(), ModelView::JsonItemFormatAssistant::isSessionItemData(), ModelView::JsonItemFormatAssistant::roleKey, and ModelView::JsonItemFormatAssistant::variantKey.

Here is the call graph for this function:

◆ TEST_F() [5/5]

TEST_F ( JsonItemFormatAssistantTest  ,
isValidSessionModel   
)

Validity of json object representing SessionModel.

Definition at line 113 of file jsonitemformatassistant.test.cpp.

114 {
115  JsonItemFormatAssistant assistant;
116 
117  // empty json object is not valid
118  QJsonObject object;
119  EXPECT_FALSE(assistant.isSessionModel(object));
120 
121  // json object representing valid SessionModel
122  QJsonObject object2;
123  object2[JsonItemFormatAssistant::sessionModelKey] = "abc";
124  object2[JsonItemFormatAssistant::itemsKey] = QJsonArray();
125  EXPECT_TRUE(assistant.isSessionModel(object2));
126 }
bool isSessionModel(const QJsonObject &object) const
Returns true if given json object represents SessionModel.

References ModelView::JsonItemFormatAssistant::isSessionModel(), ModelView::JsonItemFormatAssistant::itemsKey, and ModelView::JsonItemFormatAssistant::sessionModelKey.

Here is the call graph for this function: