parse(xmlFile);
}
-RemoteList::RemoteList(QIODevice in)
+RemoteList::RemoteList(QIODevice &in)
{
QDomDocument doc;
- doc.setContent(&in);
- parse(doc);
+ if (doc.setContent(&in))
+ parse(doc);
}
RemoteList::~RemoteList()
return valid;
}
-QList<QChar> RemoteList::letters()
+QStringList RemoteList::letters()
{
return mfgMap.keys();
}
-QStringList RemoteList::manufacturers(const QChar &letter)
+QStringList RemoteList::manufacturers(const QString &letter)
{
return mfgMap.value(letter);
}
}
}
+ // TODO: more error handling
valid = (mfgMap.size() > 0 &&
- modelMap.size() > 0 &&
- mfgMap.values().size() == modelMap.keys().size());
+ modelMap.size() > 0);
}
QStringList RemoteList::parseMfgs(QDomElement &charEl)
RemoteList(const RemoteList &);
RemoteList(QDomDocument &);
RemoteList(const QString &xmlFile);
- RemoteList(QIODevice);
+ RemoteList(QIODevice &);
~RemoteList();
void setContent(QDomDocument &);
void parse(QDomDocument &doc);
QStringList parseMfgs(QDomElement &charEl);
QList<Model> parseModels(QDomElement &mfgEl);
- void printMaps();
private:
bool valid;
void Ut_RemoteList::initTestCase()
{
+ // TODO rewrite
+ validLetters << "L" << "M" << "P" << "T";
+
+ QStringList ll;
+ ll << "Lg" << "Leadtek";
+
+ validMfgs.insert(validLetters.at(0), ll);
+ validMfgs.insert(validLetters.at(1), QStringList("Microsoft"));
+ validMfgs.insert(validLetters.at(2), QStringList("Philips"));
+ validMfgs.insert(validLetters.at(3), QStringList("Topfield"));
+
+ validModels.insert("Lg", QStringList("AKB69680403"));
+ validModels.insert("Leadtek", QStringList("Y04G0004"));
+ validModels.insert("Microsoft", QStringList("Xbox360"));
+ validModels.insert("Philips", QStringList("15PF4121"));
+ validModels.insert("Topfield", QStringList("PVR5000"));
}
void Ut_RemoteList::cleanupTestCase()
void Ut_RemoteList::testIsValid_InvalidFile()
{
-// RemoteList subject("notxmlfile");
-// QCOMPARE(subject.isValid(), false);
+ RemoteList subject("notxml");
+ QCOMPARE(subject.isValid(), false);
}
void Ut_RemoteList::testIsValid_FileNotFound()
{
-// RemoteList subject("thisdoesnotexist");
-// QCOMPARE(subject.isValid(), false);
+ RemoteList subject("thisdoesnotexist");
+ QCOMPARE(subject.isValid(), false);
}
void Ut_RemoteList::testLetters()
{
+ QStringList letters = RemoteList("remotes.xml").letters();
+ QCOMPARE(validLetters.size(), letters.size());
+ for (int i = 0; i < letters.size(); ++i)
+ {
+ QCOMPARE(validLetters.at(i), letters.at(i));
+ }
}
void Ut_RemoteList::testManufacturers()
{
+ RemoteList subject("remotes.xml");
+ for (int i = 0; i < validMfgs.keys().size(); ++i)
+ {
+ for (int j = 0; j < validMfgs.value(validLetters.at(i)).size(); ++j)
+ {
+ QCOMPARE(validMfgs.value(validLetters.at(i)).at(j),
+ subject.manufacturers(validLetters.at(i)).at(j));
+ }
+ }
}
void Ut_RemoteList::testModels()
}
-
-
QTEST_MAIN(Ut_RemoteList)