Unit tests for RemoteList
[irwi] / ut / ut_remotelist / ut_remotelist.cpp
1 #include "ut_remotelist.h"
2 #include "remotelist.h"
3 #include <QtTest>
4 #include <QStringList>
5
6 void Ut_RemoteList::initTestCase()
7 {
8     QStringList mfgs;
9     mfgs << "Lg" << "Leadtek" << "Microsoft" << "Philips" << "Topfield";
10
11     for (int i = 0; i < mfgs.size(); ++i)
12     {
13         QChar letter = mfgs.at(i).at(0);
14         QStringList l;
15
16         for (int j = 0; j < mfgs.size(); ++j)
17         {
18             if (mfgs.at(j).at(0) == letter)
19                 l << mfgs.at(j);
20         }
21         validMfgs.insert(letter, l);
22         l.clear();
23     }
24
25     // TODO rewrite
26     validModels.insert("Lg", QList<Model>());
27     validModels["Lg"].append(Model("AKB69680403", "AKB69680_00"));
28
29     validModels.insert("Leadtek", QList<Model>()); 
30     validModels["Leadtek"].append(Model("Y04G0004", "Y04G0004_00"));
31
32     validModels.insert("Microsoft", QList<Model>()); 
33     validModels["Microsoft"].append(Model("Xbox360", "Xbox360_00"));
34
35     validModels.insert("Philips", QList<Model>()); 
36     validModels["Philips"].append(Model("15PF4121", "15PF4121_00"));
37     validModels["Philips"].append(Model("modelname", "filename"));
38
39     validModels.insert("Topfield", QList<Model>()); 
40     validModels["Topfield"].append(Model("PVR5000", "PVR_5000_00"));
41 }
42
43 void Ut_RemoteList::cleanupTestCase()
44 {
45 }
46
47 void Ut_RemoteList::init()
48 {
49 }
50
51 void Ut_RemoteList::testSetContent()
52 {
53 }
54
55 void Ut_RemoteList::testIsValid()
56 {
57     RemoteList subject("remotes.xml");
58     QCOMPARE(subject.isValid(), true);
59 }
60
61 void Ut_RemoteList::testIsValid_InvalidFile()
62 {
63     RemoteList subject("notxml");
64     QCOMPARE(subject.isValid(), false);
65 }
66
67 void Ut_RemoteList::testIsValid_FileNotFound()
68 {
69     RemoteList subject("thisdoesnotexist");
70     QCOMPARE(subject.isValid(), false);
71 }
72  
73 void Ut_RemoteList::testLetters()
74 {
75     QStringList letters = RemoteList("remotes.xml").letters();
76     QStringList validLetters = validMfgs.keys();
77     QCOMPARE(validLetters.size(), letters.size());
78
79     for (int i = 0; i < letters.size(); ++i)
80     {
81         QCOMPARE(validLetters.at(i), letters.at(i));
82     }
83 }
84
85 void Ut_RemoteList::testManufacturers()
86 {
87     RemoteList subject("remotes.xml");
88
89     for (int i = 0; i < validMfgs.keys().size(); ++i)
90     {
91         QString letter = validMfgs.keys().at(i);
92         for (int j = 0; j < validMfgs.value(letter).size(); ++j)
93         {
94             QCOMPARE(validMfgs.value(letter).at(j), 
95                      subject.manufacturers(letter).at(j));
96         }
97     }
98 }
99
100 void Ut_RemoteList::testModels()
101 {
102     RemoteList subject("remotes.xml");
103
104     for (int i = 0; i < validModels.keys().size(); ++i)
105     {
106         QString mfg = validModels.keys().at(i);
107         for (int j = 0; j < validModels.value(mfg).size(); ++j)
108         {
109             QCOMPARE(validModels.value(mfg).at(j).name,
110                      subject.models(mfg).at(j).name);
111             QCOMPARE(validModels.value(mfg).at(j).file,
112                     subject.models(mfg).at(j).file);
113         }
114     }
115 }
116
117
118 QTEST_MAIN(Ut_RemoteList)
119
120