Unit tests for RemoteList are now ready
[irwi] / ut / ut_remotelist / ut_remotelist.cpp
index 3aed64c..8e949a0 100644 (file)
@@ -1,7 +1,6 @@
 #include "ut_remotelist.h"
-#include "remotelist.h"
+
 #include <QtTest>
-#include <QStringList>
 
 void Ut_RemoteList::initTestCase()
 {
@@ -38,42 +37,111 @@ 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)
@@ -82,10 +150,8 @@ void Ut_RemoteList::testLetters()
     }
 }
 
-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);
@@ -97,10 +163,8 @@ void Ut_RemoteList::testManufacturers()
     }
 }
 
-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);