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

Implements class CLASS? More...

Include dependency graph for itemconverterfactory.test.cpp:

Go to the source code of this file.

Classes

class  ItemConverterFactoryTest
 Checks converters generated by ItemFactoryConverter. More...
 
class  ItemConverterFactoryTest::TestItem
 
class  ItemConverterFactoryTest::TestModel
 

Functions

 TEST_F (ItemConverterFactoryTest, propertyItemCloneConverter)
 Clone converter for simple property item. More...
 
 TEST_F (ItemConverterFactoryTest, propertyItemCopyConverter)
 Copy converter for simple property item. More...
 
 TEST_F (ItemConverterFactoryTest, propertyItemProjectConverter)
 Project converter for simple property item. More...
 
 TEST_F (ItemConverterFactoryTest, testItemCloneConverter)
 Clone converter for simple property item. More...
 
 TEST_F (ItemConverterFactoryTest, testItemProjectConverter)
 Clone converter for simple property item. 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 itemconverterfactory.test.cpp.

Function Documentation

◆ TEST_F() [1/5]

TEST_F ( ItemConverterFactoryTest  ,
propertyItemCloneConverter   
)

Clone converter for simple property item.

Definition at line 60 of file itemconverterfactory.test.cpp.

61 {
62  auto converter = CreateItemCloneConverter(factory());
63 
64  PropertyItem item;
65  item.setToolTip("abc");
66 
67  auto object = converter->to_json(&item);
68  auto reco = converter->from_json(object);
69 
70  EXPECT_EQ(reco->modelType(), item.modelType());
71  EXPECT_EQ(reco->displayName(), item.displayName());
72  EXPECT_EQ(reco->toolTip(), std::string("abc"));
73  EXPECT_EQ(reco->itemData()->roles(), item.itemData()->roles());
74  EXPECT_TRUE(reco->identifier() == item.identifier()); // identifier preserved
75 }
Item to carry concrete editable entity (e.g.
Definition: propertyitem.h:27
std::vector< int > roles() const
std::string identifier() const
Returns unique identifier.
Definition: sessionitem.cpp:87
SessionItem * setToolTip(const std::string &tooltip)
Sets item tooltip (fluent interface).
SessionItemData * itemData()
Returns pointer to item's data container (non-const version).
virtual std::string displayName() const
Returns display name.
Definition: sessionitem.cpp:94
model_type modelType() const
Returns item's model type.
Definition: sessionitem.cpp:80
std::unique_ptr< JsonItemConverterInterface > CreateItemCloneConverter(const ItemFactoryInterface *item_factory)
Creates JSON item converter intended for item cloning.

References ModelView::CreateItemCloneConverter(), ModelView::SessionItem::displayName(), ModelView::SessionItem::identifier(), ModelView::SessionItem::itemData(), ModelView::SessionItem::modelType(), ModelView::SessionItemData::roles(), and ModelView::SessionItem::setToolTip().

Here is the call graph for this function:

◆ TEST_F() [2/5]

TEST_F ( ItemConverterFactoryTest  ,
propertyItemCopyConverter   
)

Copy converter for simple property item.

Definition at line 79 of file itemconverterfactory.test.cpp.

80 {
81  auto converter = CreateItemCopyConverter(factory());
82 
83  PropertyItem item;
84  item.setToolTip("abc");
85 
86  auto object = converter->to_json(&item);
87  auto reco = converter->from_json(object);
88 
89  EXPECT_EQ(reco->modelType(), item.modelType());
90  EXPECT_EQ(reco->displayName(), item.displayName());
91  EXPECT_EQ(reco->toolTip(), std::string("abc"));
92  EXPECT_EQ(reco->itemData()->roles(), item.itemData()->roles());
93  EXPECT_FALSE(reco->identifier() == item.identifier()); // identifier has changed
94 }
std::unique_ptr< JsonItemConverterInterface > CreateItemCopyConverter(const ItemFactoryInterface *item_factory)
Creates JSON item converter intended for item copying.

References ModelView::CreateItemCopyConverter(), ModelView::SessionItem::displayName(), ModelView::SessionItem::identifier(), ModelView::SessionItem::itemData(), ModelView::SessionItem::modelType(), ModelView::SessionItemData::roles(), and ModelView::SessionItem::setToolTip().

Here is the call graph for this function:

◆ TEST_F() [3/5]

TEST_F ( ItemConverterFactoryTest  ,
propertyItemProjectConverter   
)

Project converter for simple property item.

It preserves only identifier and data roles.

Definition at line 99 of file itemconverterfactory.test.cpp.

100 {
101  auto converter = CreateItemProjectConverter(factory());
102 
103  PropertyItem item;
104  item.setToolTip("abc");
105 
106  auto object = converter->to_json(&item);
107  auto reco = converter->from_json(object);
108 
109  EXPECT_EQ(reco->modelType(), item.modelType());
110  EXPECT_EQ(reco->displayName(), item.displayName());
111  EXPECT_EQ(reco->toolTip(), std::string()); // tooltips are not preserved
112  EXPECT_TRUE(reco->identifier() == item.identifier()); // identifier preserved
113 }
std::unique_ptr< JsonItemConverterInterface > CreateItemProjectConverter(const ItemFactoryInterface *item_factory)
Creates JSON item converter intended for saving on disk.

References ModelView::CreateItemProjectConverter(), ModelView::SessionItem::displayName(), ModelView::SessionItem::identifier(), ModelView::SessionItem::modelType(), and ModelView::SessionItem::setToolTip().

Here is the call graph for this function:

◆ TEST_F() [4/5]

TEST_F ( ItemConverterFactoryTest  ,
testItemCloneConverter   
)

Clone converter for simple property item.

Definition at line 117 of file itemconverterfactory.test.cpp.

118 {
119  auto converter = CreateItemCloneConverter(factory());
120 
121  TestItem item;
122  item.setToolTip("abc");
123 
124  auto object = converter->to_json(&item);
125  auto reco = converter->from_json(object);
126 
127  EXPECT_EQ(reco->modelType(), item.modelType());
128  EXPECT_EQ(reco->displayName(), item.displayName());
129  EXPECT_EQ(reco->toolTip(), std::string("abc")); // updated tooltip is preserved
130  EXPECT_EQ(reco->itemData()->roles(), item.itemData()->roles());
131  EXPECT_TRUE(reco->identifier() == item.identifier()); // identifier preserved
132  EXPECT_EQ(reco->getItem("Thickness")->toolTip(), "thickness");
133  EXPECT_EQ(reco->getItem("Thickness")->identifier(), item.getItem("Thickness")->identifier());
134 }

References ModelView::CreateItemCloneConverter().

Here is the call graph for this function:

◆ TEST_F() [5/5]

TEST_F ( ItemConverterFactoryTest  ,
testItemProjectConverter   
)

Clone converter for simple property item.

At this time

Definition at line 139 of file itemconverterfactory.test.cpp.

140 {
141  auto converter = CreateItemProjectConverter(factory());
142 
143  TestItem item;
144  item.setToolTip("abc");
145 
146  auto object = converter->to_json(&item);
147  auto reco = converter->from_json(object);
148 
149  EXPECT_EQ(reco->modelType(), item.modelType());
150  EXPECT_EQ(reco->displayName(), item.displayName());
151  EXPECT_EQ(reco->toolTip(), std::string("compound")); // initial tooltip exist
152  EXPECT_EQ(reco->itemData()->roles(), item.itemData()->roles());
153  EXPECT_TRUE(reco->identifier() == item.identifier()); // identifier preserved
154  EXPECT_EQ(reco->getItem("Thickness")->toolTip(), "thickness");
155  EXPECT_EQ(reco->getItem("Thickness")->identifier(), item.getItem("Thickness")->identifier());
156 }

References ModelView::CreateItemProjectConverter().

Here is the call graph for this function: