Added TestSituareService::parseMessagesData test.
authorJussi Laitinen <jupe@l3l7588.ixonos.local>
Mon, 1 Nov 2010 10:11:27 +0000 (12:11 +0200)
committerJussi Laitinen <jupe@l3l7588.ixonos.local>
Mon, 1 Nov 2010 10:11:27 +0000 (12:11 +0200)
src/situareservice/message.h
src/situareservice/situareservice.h
tests/situareservice/situareservice
tests/situareservice/situareservice.pro
tests/situareservice/testsituareservice.cpp

index b90d281..e6c606a 100644 (file)
@@ -23,6 +23,7 @@
 #define MESSAGE_H
 
 #include <QDateTime>
+#include <QMetaType>
 #include <QPixmap>
 #include <QString>
 
@@ -156,4 +157,6 @@ private:
     QString m_title;                ///< message's title
 };
 
+Q_DECLARE_METATYPE(Message)
+
 #endif // MESSAGE_H
index 92f5a90..a79d5c6 100644 (file)
@@ -289,7 +289,7 @@ signals:
     *
     * @param messages list of messages sent to user
     */
-    void messagesReceived(QList<Message> &messages);
+    void messagesReceived(const QList<Message> &messages);
 
     /**
     * @brief Signals when address data is retrieved
index 3e8010f..caffdce 100755 (executable)
Binary files a/tests/situareservice/situareservice and b/tests/situareservice/situareservice differ
index bf57024..5886fd6 100644 (file)
@@ -25,7 +25,7 @@ SOURCES += testsituareservice.cpp \
     ../../src/coordinates/geocoordinate.cpp \
     ../../src/coordinates/scenecoordinate.cpp \
     ../../src/ui/avatarimage.cpp \
-    ../../src/situareservice/notification.cpp
+    ../../src/situareservice/message.cpp
 
 DEFINES += SRCDIR=\\\"$$PWD/\\\"
 
@@ -47,6 +47,6 @@ HEADERS += \
     ../../src/coordinates/geocoordinate.h \
     ../../src/coordinates/scenecoordinate.h \
     ../../src/ui/avatarimage.h \
-    ../../src/situareservice/notification.h
+    ../../src/situareservice/message.h
 
 DEFINES += QT_NO_DEBUG_OUTPUT
index 55d1966..eb5b799 100644 (file)
 
 #include <QtCore/QString>
 #include <QtTest/QtTest>
+#include <QNetworkRequest>
 
 #include "situareservice/situareservice.h"
 #include "networkaccessmanagerstub.h"
 #include "imagefetcherstub.h"
+#include "coordinates/geocoordinate.h"
+#include "situareservice/message.h"
 
 class TestSituareService : public QObject
 {
@@ -34,7 +37,7 @@ class TestSituareService : public QObject
 private slots:
     void init();
     void cleanup();
-    void testUpdateLocation();
+    void parseMessagesData();
 
 private:
     SituareService *m_situareService;
@@ -59,22 +62,48 @@ void TestSituareService::init()
 void TestSituareService::cleanup()
 {
     delete m_situareService;
+    delete m_imageFetcher;
+    delete m_networkAccessManager;
 }
 
-void TestSituareService::testUpdateLocation()
+void TestSituareService::parseMessagesData()
 {
-    QUrl url("http://example.com");
-    QNetworkRequest request;
-    request.setUrl(url);
-
-    m_situareService->updateLocation(coordinates, status, publish);
-
-    QCOMPARE(networkAccessManagerStub->stubCallCount("get"), 1);
-    QNetworkRequest getRequest = networkAccessManagerStub->stubLastCall().parameter<const QNetworkRequest &>(0);
-
-    qWarning() << getRequest.url().toString();
+    QByteArray jsonReplyError("{\"messages\": {[}");
+    QByteArray jsonReplyCorrect("{\"messages\": [{\"id\": \"1\",\"sender_id\": \"100000139211584\","
+                                "\"sender_name\": \"Pekka Nissinen\",\"image_url\": \"http://"
+                                "profile.ak.fbcdn.net/hprofile-ak-snc4/hs269.snc3/23137_1000001"
+                                "39211584_2070_q.jpg\",\"timestamp\": \"1283839396\",\"text\": "
+                                "\"The icons are ready!\"}]}");
+
+    QSignalSpy errorSpy(m_situareService, SIGNAL(error(int,int)));
+    QSignalSpy fetchImageSpy(m_situareService, SIGNAL(fetchImage(QString,QUrl)));
+
+    qRegisterMetaType<Message>("Message");
+    qRegisterMetaType<QList<Message> >("QList<Message>");
+    QSignalSpy messagesReceivedSpy(m_situareService, SIGNAL(messagesReceived(QList<Message>)));
+    QVERIFY(errorSpy.isValid());
+    QVERIFY(fetchImageSpy.isValid());
+    QVERIFY(messagesReceivedSpy.isValid());
+
+    m_situareService->parseMessagesData(jsonReplyError);
+    QCOMPARE(errorSpy.count(), 1);
+    QList<QVariant> errorArguments = errorSpy.takeFirst();
+    QCOMPARE(errorArguments.at(0).toInt(), 0);
+    QCOMPARE(errorArguments.at(1).toInt(), 18);
+
+    m_situareService->parseMessagesData(jsonReplyCorrect);
+    QCOMPARE(fetchImageSpy.count(), 1);
+    QCOMPARE(fetchImageSpy.at(0).at(0).toString(), QString("1"));
+    QCOMPARE(fetchImageSpy.at(0).at(1).toUrl(),
+             QUrl("http://profile.ak.fbcdn.net/hprofile-ak-snc4/hs269.snc3/23137_1000001"
+                     "39211584_2070_q.jpg"));
+//    QCOMPARE(messagesReceivedSpy.count(), 1);
+//    QList<QVariant> messagesReceivedArguments = messagesReceivedSpy.takeFirst();
+//    QVariant var = messagesReceivedArguments.at(0);
+//    Message message = qvariant_cast<Message>(var);
+//    QCOMPARE(message.senderId(), QString("100000139211584"));
 }
 
-QTEST_APPLESS_MAIN(TestSituareService);
+QTEST_MAIN(TestSituareService);
 
 #include "testsituareservice.moc"