#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
{
private slots:
void init();
void cleanup();
- void testUpdateLocation();
+ void parseMessagesData();
private:
SituareService *m_situareService;
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"