Moved files to make zouba the only project.
[ptas] / tests / ut_route / ut_route.cpp
1 #include <QObject>
2 #include <QtDebug>
3 #include <QByteArray>
4 #include "ut_route.h"
5
6 #include "ut_sampleinput.h"
7
8 void Ut_Route::init()
9 {
10     m_subject = new RoutePrivate();
11 }
12
13 void Ut_Route::cleanup()
14 {
15     delete m_subject;
16     m_subject = 0;
17 }
18
19 void Ut_Route::initTestCase()
20 {
21 }
22
23 void Ut_Route::cleanupTestCase()
24 {
25 }
26
27 void Ut_Route::testParseReply()
28 {
29   QFETCH(QByteArray, xmlInput);
30   QFETCH(QList<RouteData>, expectedResults);
31
32   QList<RouteData> routeData = m_subject->parseReply( xmlInput );
33
34   QCOMPARE( routeData.count(), expectedResults.count() );
35
36   for( int routeIndex=0; routeIndex<routeData.count(); ++routeIndex ) {
37     const RouteData &thisRouteData     = routeData.at( routeIndex );
38     const RouteData &thisExpectedRoute = expectedResults.at( routeIndex );
39
40     QCOMPARE( thisRouteData.m_tripTime,        thisExpectedRoute.m_tripTime );
41     QCOMPARE( thisRouteData.m_tripDistance,    thisExpectedRoute.m_tripDistance );
42     QCOMPARE( thisRouteData.m_departureTime,   thisExpectedRoute.m_departureTime );
43     QCOMPARE( thisRouteData.m_lineCode,        thisExpectedRoute.m_lineCode );
44     QCOMPARE( thisRouteData.m_legData.count(), thisExpectedRoute.m_legData.count() );
45
46     for( int legIndex=0; legIndex<thisRouteData.m_legData.count(); ++legIndex ) {
47       const LegData &thisLegData     = thisRouteData.m_legData.at( legIndex );
48       const LegData &thisExpectedLeg = thisExpectedRoute.m_legData.at( legIndex );
49
50       QCOMPARE( thisLegData.m_how,           thisExpectedLeg.m_how );
51       QCOMPARE( thisLegData.m_tripTime,      thisExpectedLeg.m_tripTime );
52       QCOMPARE( thisLegData.m_tripDistance,  thisExpectedLeg.m_tripDistance );
53       QCOMPARE( thisLegData.m_departureTime, thisExpectedLeg.m_departureTime );
54       QCOMPARE( thisLegData.m_arrivalTime,   thisExpectedLeg.m_arrivalTime );
55       QCOMPARE( thisLegData.m_lineCode,      thisExpectedLeg.m_lineCode );
56     }
57   }
58 }
59
60 void Ut_Route::testParseReply_data()
61 {
62   QTest::addColumn<QByteArray>("xmlInput");
63   QTest::addColumn< QList<RouteData> >("expectedResults");
64
65   QTest::newRow("single route")
66     << sampleInput[0]
67     << ( QList<RouteData>()
68         // Summary :    TTime     TDist       First Vehicle
69         << ( RouteData( "14.411", "2510.063", "18:20", "65A" )
70           //          How     TTime    TDist       Depart   Arrive   Line
71           << LegData( "WALK", "4.475", "357.069",  "18:15", "18:20" )
72           << LegData( "LINE", "5.000", "1760.931", "18:20", "18:25", "65A" )
73           << LegData( "WALK", "4.936", "392.062",  "18:25", "18:29" )
74           )
75         // Summary :    TTime     TDist       First Vehicle
76         << ( RouteData( "13.411", "2501.497", "18:26", "102T" )
77           //          How     TTime    TDist       Depart   Arrive   Line
78           << LegData( "WALK", "4.475", "357.069",  "18:21", "18:26" )
79           << LegData( "LINE", "4.000", "1751.582", "18:26", "18:30", "102T" )
80           << LegData( "WALK", "4.936", "392.846",  "18:30", "18:34" )
81           )
82         // Summary :    TTime     TDist       First Vehicle
83         << ( RouteData( "13.411", "2501.497", "18:34", "110T" )
84           //          How     TTime    TDist       Depart   Arrive   Line
85           << LegData( "WALK", "4.475", "357.069",  "18:29", "18:34" )
86           << LegData( "LINE", "4.000", "1751.582", "18:34", "18:38", "110T" )
87           << LegData( "WALK", "4.936", "392.846",  "18:38", "18:42" )
88           )
89         );
90
91   QTest::newRow("route with bus change")
92     << sampleInput[1]
93     << ( QList<RouteData>()
94         // Summary :    TTime     TDist       First Vehicle
95         << ( RouteData( "28.633", "8902.040", "08:18",  "111" )
96           //          How     TTime    TDist       Depart   Arrive   Line
97           << LegData( "WALK", "3.479", "254.753",  "08:14", "08:18" )
98           << LegData( "LINE", "8.000", "5225.092", "08:18", "08:26", "111" )
99           << LegData( "LINE", "5.000", "2926.431", "08:32", "08:37", "121T" )
100           << LegData( "WALK", "6.154", "495.764",  "08:37", "08:43" )
101           )
102         // Summary :    TTime     TDist       First Vehicle
103         << ( RouteData( "25.633", "8902.040", "08:33",  "111" )
104           //          How     TTime    TDist       Depart   Arrive   Line
105           << LegData( "WALK", "3.479", "254.753",  "08:29", "08:33" )
106           << LegData( "LINE", "8.000", "5225.092", "08:33", "08:41", "111" )
107           << LegData( "LINE", "5.000", "2926.431", "08:44", "08:49", "102T" )
108           << LegData( "WALK", "6.154", "495.764",  "08:49", "08:55" )
109           )
110         // Summary :    TTime     TDist        First Vehicle
111         << ( RouteData( "33.510", "11193.458", "08:34", "111T" )
112           //          How     TTime    TDist       Depart   Arrive   Line
113           << LegData( "WALK", "2.356", "172.693",  "08:31", "08:34" )
114           << LegData( "LINE", "6.000", "3392.054", "08:34", "08:40", "111T" )
115           << LegData( "LINE", "5.000", "4206.516", "08:43", "08:48", "112" )
116           << LegData( "LINE", "5.000", "2926.431", "08:54", "08:59", "102T" )
117           << LegData( "WALK", "6.154", "495.764",  "08:59", "09:05" )
118           )
119         // Summary :    TTime     TDist       First Vehicle
120         << ( RouteData( "29.633", "8902.040", "08:50",  "111" )
121           //          How     TTime    TDist       Depart   Arrive   Line
122           << LegData( "WALK", "3.479", "254.753",  "08:46", "08:50" )
123           << LegData( "LINE", "8.000", "5225.092", "08:50", "08:58", "111" )
124           << LegData( "LINE", "5.000", "2926.431", "09:05", "09:10", "102T" )
125           << LegData( "WALK", "6.154", "495.764",  "09:10", "09:16" )
126           )
127         // Summary :    TTime     TDist       First Vehicle
128         << ( RouteData( "29.633", "8902.040", "09:07",  "111" )
129           //          How     TTime    TDist       Depart   Arrive   Line
130           << LegData( "WALK", "3.479", "254.753",  "09:03", "09:07" )
131           << LegData( "LINE", "8.000", "5225.092", "09:07", "09:15", "111" )
132           << LegData( "LINE", "5.000", "2926.431", "09:22", "09:27", "160T" )
133           << LegData( "WALK", "6.154", "495.764",  "09:27", "09:33" )
134           )
135         );
136 }
137
138 void Ut_Route::testSetFromLocation()
139 {
140   Location work( "2551042", "6672829" );
141   QCOMPARE( m_subject->fromValid(), false );
142   m_subject->setFromLocation( &work );
143   QCOMPARE( m_subject->fromLocation()->x(), work.x() );
144   QCOMPARE( m_subject->fromLocation()->y(), work.y() );
145   QCOMPARE( m_subject->fromValid(), true );
146 }
147
148 void Ut_Route::testSetToLocation()
149 {
150   Location work( "2551042", "6672829" );
151   QCOMPARE( m_subject->toValid(), false );
152   m_subject->setToLocation( &work );
153   QCOMPARE( m_subject->toLocation()->x(), work.x() );
154   QCOMPARE( m_subject->toLocation()->y(), work.y() );
155   QCOMPARE( m_subject->toValid(), true );
156 }
157
158 QTEST_APPLESS_MAIN(Ut_Route)