#include "ut_remotelist.h"
-#include "remotelist.h"
+
#include <QtTest>
-#include <QStringList>
void Ut_RemoteList::initTestCase()
{
validModels.insert("Topfield", QList<Model>());
validModels["Topfield"].append(Model("PVR5000", "PVR_5000_00"));
+
+ createDocument();
}
void Ut_RemoteList::cleanupTestCase()
{
}
-void Ut_RemoteList::init()
+void Ut_RemoteList::createDocument()
+{
+ QDomElement root = document.createElement("db");
+ document.appendChild(root);
+
+ for (int i = 0; i < validMfgs.keys().size(); ++i)
+ {
+ QChar letter = validMfgs.keys().at(i).at(0);
+ QDomElement charEl = document.createElement("char");
+ charEl.setAttribute("id", letter);
+ createMfgElements(letter, charEl);
+ root.appendChild(charEl);
+ }
+}
+
+void Ut_RemoteList::createMfgElements(QChar &letter, QDomElement &parent)
{
+ for (int i = 0; i < validMfgs[letter].size(); ++i)
+ {
+ QString mfg = validMfgs[letter].at(i);
+ QDomElement mfgEl = document.createElement("mfg");
+ mfgEl.setAttribute("id", mfg);
+ createModelElements(mfg, mfgEl);
+ parent.appendChild(mfgEl);
+ }
}
-void Ut_RemoteList::testSetContent()
+void Ut_RemoteList::createModelElements(const QString &mfg, QDomElement &parent)
{
+ for (int i = 0; i < validModels[mfg].size(); ++i)
+ {
+ Model m = validModels[mfg].at(i);
+ QDomElement modelEl = document.createElement("model");
+ modelEl.setAttribute("file", m.file);
+ modelEl.setAttribute("name", m.name);
+ parent.appendChild(modelEl);
+ }
}
void Ut_RemoteList::testIsValid()
{
- RemoteList subject("remotes.xml");
+ RemoteList subject(document);
QCOMPARE(subject.isValid(), true);
}
-void Ut_RemoteList::testIsValid_InvalidFile()
+void Ut_RemoteList::testIsValid_setContent()
{
- RemoteList subject("notxml");
+ RemoteList subject;
QCOMPARE(subject.isValid(), false);
+ subject.setContent(document);
+ QCOMPARE(subject.isValid(), true);
}
-void Ut_RemoteList::testIsValid_FileNotFound()
+void Ut_RemoteList::testLetters()
{
- RemoteList subject("thisdoesnotexist");
- QCOMPARE(subject.isValid(), false);
+ RemoteList subject(document);
+ compareLetters(subject);
}
-
-void Ut_RemoteList::testLetters()
+
+void Ut_RemoteList::testManufacturers()
+{
+ RemoteList subject(document);
+ compareManufacturers(subject);
+}
+
+void Ut_RemoteList::testModels()
+{
+ RemoteList subject(document);
+ compareModels(subject);
+}
+
+void Ut_RemoteList::testLetters_setContent()
+{
+ RemoteList subject;
+ subject.setContent(document);
+ compareLetters(subject);
+}
+
+void Ut_RemoteList::testManufacturers_setContent()
+{
+ RemoteList subject;
+ subject.setContent(document);
+ compareManufacturers(subject);
+}
+
+void Ut_RemoteList::testModels_setContent()
+{
+ RemoteList subject;
+ subject.setContent(document);
+ compareModels(subject);
+}
+
+void Ut_RemoteList::compareLetters(RemoteList &subject)
{
- QStringList letters = RemoteList("remotes.xml").letters();
+ QStringList letters = subject.letters();
QStringList validLetters = validMfgs.keys();
+
QCOMPARE(validLetters.size(), letters.size());
for (int i = 0; i < letters.size(); ++i)
}
}
-void Ut_RemoteList::testManufacturers()
+void Ut_RemoteList::compareManufacturers(RemoteList &subject)
{
- RemoteList subject("remotes.xml");
-
for (int i = 0; i < validMfgs.keys().size(); ++i)
{
QString letter = validMfgs.keys().at(i);
}
}
-void Ut_RemoteList::testModels()
+void Ut_RemoteList::compareModels(RemoteList &subject)
{
- RemoteList subject("remotes.xml");
-
for (int i = 0; i < validModels.keys().size(); ++i)
{
QString mfg = validModels.keys().at(i);
#include <QStringList>
#include <QMap>
#include <QList>
+#include <QDomElement>
+
#include "model.h"
+#include "remotelist.h"
class Ut_RemoteList: public QObject
{
private slots:
void initTestCase();
void cleanupTestCase();
- void init();
-
- void testSetContent();
+
void testIsValid();
- void testIsValid_InvalidFile();
- void testIsValid_FileNotFound();
+ void testIsValid_setContent();
void testLetters();
void testManufacturers();
void testModels();
+ void testLetters_setContent();
+ void testManufacturers_setContent();
+ void testModels_setContent();
+
+private:
+ // Creates the xml document containing the test data
+ void createDocument();
+
+ // Creates element for each mfg which name starts with the given letter.
+ void createMfgElements(QChar &letter, QDomElement &parent);
+ void createModelElements(const QString &mfg, QDomElement &parent);
+
+ void compareLetters(RemoteList &subject);
+ void compareManufacturers(RemoteList &subject);
+ void compareModels(RemoteList &subject);
private:
- QMap<QString, QStringList> validMfgs; // letter -- mfgs
- QMap<QString, QList<Model> > validModels; // mfg ----- models
+ QDomDocument document;
+ QMap<QString, QStringList> validMfgs;
+ QMap<QString, QList<Model> > validModels;
};
#endif // UT_REMOTELIST_H