Skip to content

Commit d8dc37b

Browse files
committed
adds read() for SectionIndexData
updates unit-tests
1 parent 0105ee1 commit d8dc37b

File tree

3 files changed

+53
-6
lines changed

3 files changed

+53
-6
lines changed

AdvancedDockingSystem/include/ads/Serialization.h

+1
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ class ADS_EXPORT_API InMemoryReader
153153
InMemoryReader(const QByteArray& data);
154154
bool initReadHeader();
155155
bool read(qint32 entryType, QByteArray &data);
156+
bool read(SectionIndexData& sid);
156157
qint32 offsetsCount() const { return _offsetsHeader.entriesCount; }
157158

158159
private:

AdvancedDockingSystem/src/Serialization.cpp

+13
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,19 @@ bool InMemoryReader::read(qint32 entryType, QByteArray& data)
422422
return true;
423423
}
424424

425+
bool InMemoryReader::read(SectionIndexData& sid)
426+
{
427+
QByteArray sidData;
428+
if (!read(ET_SectionIndex, sidData) || sidData.isEmpty())
429+
return false;
430+
431+
QDataStream in(sidData);
432+
in.setVersion(QDataStream::Qt_4_5);
433+
in >> sid;
434+
435+
return in.atEnd();
436+
}
437+
425438
///////////////////////////////////////////////////////////////////////////////
426439

427440
ADS_NAMESPACE_SER_END

AdvancedDockingSystemUnitTests/src/TestCore.cpp

+39-6
Original file line numberDiff line numberDiff line change
@@ -10,26 +10,59 @@ void TestCore::serialization()
1010
datas.append(QByteArray("Even More..."));
1111
datas.append(QByteArray("lalalaalalalalalalal").toBase64());
1212

13-
// Write some data.
13+
// WRITE some data.
1414
ADS_NS_SER::InMemoryWriter writer;
1515
for (int i = 0; i < datas.count(); ++i)
1616
{
17-
QVERIFY(writer.write(i + 1, datas.at(i)));
17+
QVERIFY(writer.write(ADS_NS_SER::ET_Custom + i, datas.at(i)));
1818
}
19-
QVERIFY(writer.offsetsCount() == datas.count());
19+
20+
// Type: SectionIndexData
21+
ADS_NS_SER::SectionIndexData sid;
22+
for (int i = 0; i < 1; ++i)
23+
{
24+
ADS_NS_SER::SectionEntity se;
25+
se.x = i;
26+
se.y = i;
27+
se.width = 100 + i;
28+
se.height = 100 + i;
29+
se.currentIndex = i;
30+
31+
for (int j = 0; j < 1; ++j)
32+
{
33+
ADS_NS_SER::SectionContentEntity sce;
34+
sce.uniqueName = QString("uname-%1-%2").arg(i).arg(j);
35+
sce.preferredIndex = 8;
36+
sce.visible = true;
37+
se.sectionContents.append(sce);
38+
se.sectionContentsCount += 1;
39+
}
40+
41+
sid.sections.append(se);
42+
sid.sectionsCount += 1;
43+
}
44+
QVERIFY(writer.write(sid));
45+
46+
QVERIFY(writer.offsetsCount() == datas.count() + 1);
2047
const QByteArray writtenData = writer.toByteArray();
2148
QVERIFY(writtenData.size() > 0);
2249

23-
// Read and validate written data.
50+
// READ and validate written data.
2451
ADS_NS_SER::InMemoryReader reader(writtenData);
2552
QVERIFY(reader.initReadHeader());
26-
QVERIFY(reader.offsetsCount() == datas.count());
53+
QVERIFY(reader.offsetsCount() == datas.count() + 1);
2754
for (int i = 0; i < datas.count(); ++i)
2855
{
2956
QByteArray readData;
30-
QVERIFY(reader.read(i + 1, readData));
57+
QVERIFY(reader.read(ADS_NS_SER::ET_Custom + i, readData));
3158
QVERIFY(readData == datas.at(i));
3259
}
60+
61+
// Type: SectionIndexData
62+
ADS_NS_SER::SectionIndexData sidRead;
63+
QVERIFY(reader.read(sidRead));
64+
65+
// TODO compare sidRead with sid
3366
}
3467

3568
QTEST_MAIN(TestCore)

0 commit comments

Comments
 (0)