22 #include "../GraphStructure.h"
27 #include <qtest_kde.h>
29 #include <kross/core/action.h>
30 #include <kross/core/manager.h>
41 void TestGraphStructure::cleanupTestCase()
45 void TestGraphStructure::dataAddDeleteTest()
52 for (
int i = 0; i < 10; i++) {
53 dataList.append(ds->createData(QString(i), 0));
55 QVERIFY2(ds->dataList(0).size() == 10,
"ERROR: Number of data elements is not 10");
58 foreach(
DataPtr data, dataList) {
62 QVERIFY2(ds->dataList(0).size() == 0,
"ERROR: Not all data elements were deleted");
65 void TestGraphStructure::pointerAddDeleteTest()
74 for (
int i = 0; i < 10; i++) {
75 dataList.append(ds->createData(QString(i), 0));
77 QVERIFY2(ds->dataList(0).size() == 10,
"ERROR: Number of data elements is not 10");
81 for (
int i = 0; i < dataList.size() - 1; i++) {
82 ds->createPointer(dataList[i], dataList[i + 1], 0);
84 QVERIFY2(ds->pointers(0).size() == 9,
"ERROR: Number of data elements is not 9");
85 QVERIFY2(dataList[0]->pointerList().size() == 1,
"ERROR: data gives wrong number of pointers");
86 QVERIFY2(dataList[1]->pointerList().size() == 2,
"ERROR: data gives wrong number of pointers");
90 ds->pointers(0).first()->remove();
91 QVERIFY2(ds->pointers(0).size() == 8,
"ERROR: pointer was not removed");
92 QVERIFY2(dataList[0]->pointerList().size() == 0,
"ERROR: data gives wrong number of pointers");
93 QVERIFY2(dataList[1]->pointerList().size() == 1,
"ERROR: data gives wrong number of pointers");
97 dataList[1]->remove();
98 QVERIFY2(ds->pointers(0).size() == 7,
"ERROR: data deletion did not remove its pointers");
102 dataList[3]->remove();
103 QVERIFY2(ds->pointers(0).size() == 5,
"ERROR: data deletion did not remove its both pointers");
106 void TestGraphStructure::createSimpleGraph()
108 QMap<QString, DataPtr> dataList;
113 ds->setProperty(
"name",
"Graph1");
114 dataList.insert(
"a", ds->createData(
"a", 0));
115 dataList.insert(
"b", ds->createData(
"b", 0));
116 dataList.insert(
"c", ds->createData(
"c", 0));
117 dataList.insert(
"d", ds->createData(
"d", 0));
118 dataList.insert(
"e", ds->createData(
"e", 0));
120 ds->createPointer(dataList[
"a"], dataList[
"b"], 0);
121 ds->createPointer(dataList[
"b"], dataList[
"c"], 0);
122 ds->createPointer(dataList[
"c"], dataList[
"d"], 0);
123 ds->createPointer(dataList[
"d"], dataList[
"e"], 0);
124 ds->createPointer(dataList[
"e"], dataList[
"a"], 0);
126 QVERIFY2(ds->dataList(0).size() == 5,
"ERROR: Number of data is not 5 ");
127 QVERIFY2(ds->pointers(0).size() == 5,
"ERROR: Number of pointers is not 5 ");
129 foreach(
DataPtr n, ds->dataList(0)) {
130 QVERIFY2(n->outPointerList().size() == 1,
"ERROR: Number of out pointers is not 1");
131 QVERIFY2(n->inPointerList().size() == 1,
"ERROR: Number of in pointers is not 1");
132 QVERIFY2(n->adjacentDataList().size() == 2,
"ERROR: Number of Adjacent Nodes is not 2");
133 QVERIFY2(n->pointerList().size() == 2,
"ERROR: Number of adjacent pointers is not 2");
137 void TestGraphStructure::dataTypesTest()
142 DataList dataListDefault, dataList1, dataList2;
143 QVERIFY2(ds->document()->dataTypeList().size() == 1,
"ERROR: no default data type created");
146 int type1 = ds->document()->registerDataType(
"type1");
147 int type2 = ds->document()->registerDataType(
"type2");
148 QVERIFY2(ds->document()->dataTypeList().size() == 3,
"ERROR: data types were not created");
151 for (
int i = 0; i < 3; i++) {
152 dataListDefault.append(ds->createData(QString(i), 0));
153 dataList1.append(ds->createData(QString(i), type1));
154 dataList2.append(ds->createData(QString(i), type2));
156 QVERIFY2(ds->dataList(0).size() == 3,
157 "list contains " + ds->dataList(0).size()
159 QVERIFY2(ds->dataList(type1).size() == 3,
160 "list contains " + ds->dataList(0).size()
162 QVERIFY2(ds->dataList(type2).size() == 3,
163 "list contains " + ds->dataList(0).size()
165 QVERIFY2(dataListDefault.at(0)->dataType() == 0,
"ERROR: not correct autoset of type");
166 QVERIFY2(dataList1.at(0)->dataType() == type1,
"ERROR: not correct autoset of type");
167 QVERIFY2(dataList2.at(0)->dataType() == type2,
"ERROR: not correct autoset of type");
170 ds->createPointer(dataListDefault[0], dataList1[0], 0);
171 ds->createPointer(dataList1[0], dataList2[0], 0);
172 ds->createPointer(dataList2[0], dataListDefault[0], 0);
173 QVERIFY2(ds->pointers(0).size() == 3,
"ERROR: pointers were not correctly created");
176 ds->document()->removeDataType(type2);
177 QVERIFY2(ds->pointers(0).size() == 1,
"ERROR: pointers were not correctly deleted");
181 void TestGraphStructure::pointerTypesTest()
187 QVERIFY2(ds->document()->pointerTypeList().size() == 1,
"ERROR: no default pointer type created");
190 for (
int i = 0; i < 10; i++) {
191 dataList.append(ds->createData(QString(i), 0));
195 int type1 = ds->document()->registerPointerType(
"type1");
196 QVERIFY2(ds->document()->pointerTypeList().size() == 2,
"ERROR: pointer types were not created");
199 for (
int i = 0; i < 4; i++) {
200 ds->createPointer(dataList[i], dataList[i + 1], 0);
202 for (
int i = 0; i < 9; i++) {
203 ds->createPointer(dataList[i], dataList[i + 1], type1);
205 QVERIFY2(ds->pointers(0).size() == 4,
"ERROR: wrong number of pointers");
206 QVERIFY2(ds->pointers(type1).size() == 9,
"ERROR: wrong number of pointers");
207 QVERIFY(dataList[0]->adjacentDataList().size() == 1);
208 QVERIFY(dataList[1]->adjacentDataList().size() == 2);
209 QVERIFY(dataList[5]->adjacentDataList().size() == 2);
212 dataList[0]->remove();
213 QVERIFY2(ds->pointers(0).size() == 3,
"ERROR: wrong number of pointers");
214 QVERIFY2(ds->pointers(type1).size() == 8,
"ERROR: wrong number of pointers");
216 ds->document()->removePointerType(type1);
217 QVERIFY(dataList[2]->adjacentDataList().size() == 2);
218 QVERIFY(dataList[6]->adjacentDataList().size() == 0);
221 void TestGraphStructure::serializeUnserializePluginExtraProperties()
225 QMap<QString, DataPtr> dataList;
229 ds->setProperty(
"name",
"Graph1");
243 QVERIFY2(
DocumentManager::self().activeDocument()->dataStructures().count() == 1,
"ERROR: DataStructure not loaded");
static DocumentManager & self()
boost::shared_ptr< DataStructure > DataStructurePtr
Document * activeDocument() const
Returns the currently active document, or 0 if there document list is empty.
QList< boost::shared_ptr< Data > > DataList
static DataStructureBackendManager & self()
Returns self reference to backend manager.
DataStructurePtr addDataStructure(const QString &name=QString())
Add data structure to graph document with name name.
DataStructurePtr activeDataStructure() const
void changeDocument(Document *document)
Change active document to be document.
void setBackend(const QString &pluginIdentifier)
Change the active backend.
QList< DataStructurePtr > & dataStructures() const
boost::shared_ptr< Data > DataPtr
void addDocument(Document *document)
Add document to document list and set this document as active document.
void saveAs(const QString &fileUrl)
Save graph document under the given fileUrl.
Document * openDocument(const KUrl &documentUrl)
Loads graph document specified by documentUrl and adds document to document list. ...
void removeDocument(Document *document)
Remove document from document list.