side-effects of writeTo
It cost me quite some time to understand this code in TestJobRealModel:
RealModel realModel;
RealItem* realItem1 = UTest::GUI::createRealData("data1", realModel, value1);
RealItem* realItem2 = UTest::GUI::createRealData("data2", realModel, value2);
realItem1->updateDataFileName();
realItem2->updateDataFileName();
// Saving first time
QXmlStreamWriter w;
realModel.writeTo(&w, projectDir);
QTest::qSleep(10);
// Checking existence of data on disk
QString fname1 = "./" + projectDir + "/realdata_data1_0.int.gz";
QString fname2 = "./" + projectDir + "/realdata_data2_0.int.gz";
EXPECT_TRUE(QFile::exists(fname1));
EXPECT_TRUE(QFile::exists(fname2));
There is a stream w that goes nowhere but has the side effect of writing two files to projectDir (RealModel::writeTo calls RealItem::writeTo calls DataItem::writeTo calls DataItem::saveDatafield).
Can we organize this differently, or at least make it more transparent?
Altogther, RealModel::writeTo does three different things, namely writing to stream, saving Datafield%s to files, and calling dataFilesCleaner.cleanOldFiles.
Edited by Joachim Wuttke