Salome HOME
Operation which can lead to data model modifying removed from non-transactional place.
[modules/hydro.git] / src / HYDROGUI / test_HYDROGUI_ZLevelsModel.cxx
1
2 #undef HYDROGUI_EXPORTS
3
4 #include <test_HYDROGUI_ZLevelsModel.h>
5 #include <HYDROData_Document.h>
6 #include <HYDROGUI_ZLevelsModel.h>
7
8 Handle_HYDROData_Document GetDocument()
9 {
10   return HYDROData_Document::Document( 0 );
11 }
12
13 HYDROGUI_ZLevelsModel::Object2VisibleList CreateTestObjects( int theObjCount )
14 {
15   HYDROGUI_ZLevelsModel::Object2VisibleList anObjects;
16
17   for( int i=0; i<theObjCount; i++ )
18   {
19     Handle_HYDROData_Entity anObj = GetDocument()->CreateObject( KIND_IMMERSIBLE_ZONE );
20
21     std::string aName = " ";
22     aName[0] = 'A' + i;
23     anObj->SetName( QString::fromStdString( aName ) );
24
25     bool isVisible = i%2==0;
26
27     anObjects.append( HYDROGUI_ZLevelsModel::Object2Visible( anObj, isVisible ) );
28   }
29   return anObjects;
30 }
31
32 std::string test_HYDROGUI_ZLevelsModel::GetObjects( HYDROGUI_ZLevelsModel* theModel ) const
33 {
34   std::string anObjects;
35   for( int i=0, n=theModel->myObjects.size(); i<n; i++ )
36   {
37     std::string anObjName = theModel->myObjects[i].first->GetName().toStdString();
38     if( theModel->isObjectVisible( i ) )
39       anObjName = "*" + anObjName;
40     if( i>0 )
41       anObjects += ", ";
42     anObjects += anObjName;
43   }
44   return anObjects;
45 }
46
47 void test_HYDROGUI_ZLevelsModel::testMoveUp()
48 {
49   HYDROGUI_ZLevelsModel* aModel = new HYDROGUI_ZLevelsModel();
50   aModel->setObjects( CreateTestObjects( 6 ) );
51
52   CPPUNIT_ASSERT_EQUAL( std::string( "*A, B, *C, D, *E, F" ), GetObjects( aModel ) );
53
54   delete aModel;
55 }