summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorDenis Dzyubenko <denis.dzyubenko@nokia.com>2012-06-04 11:54:27 +0200
committerQt by Nokia <qt-info@nokia.com>2012-06-08 17:46:07 +0200
commit876a0cfa56cdc9ed175b482a8f45018bf1538b86 (patch)
treeb90a1bff62e1bc0bae82055f2026e07131679ca7 /tests
parenta8eab2a9e28bf4b17121e052a5c032d9553c6975 (diff)
Added a signal QJsonDbReadObjectRequest::objectUnavailable()
There was already a convenience signal that is emitted when object is found, however when object is not found in the database, nothing but finished() was emitted with zero results, which made the convenience api not convenient to use :) Change-Id: I3ea18ac37bbfd60a090b2f9f5b662df30133437e Reviewed-by: Jamey Hicks <jamey.hicks@nokia.com> Reviewed-by: Jing Bai <jing.t.bai@nokia.com> Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qjsondbrequest/testqjsondbrequest.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/auto/qjsondbrequest/testqjsondbrequest.cpp b/tests/auto/qjsondbrequest/testqjsondbrequest.cpp
index 061b2364..95d0d806 100644
--- a/tests/auto/qjsondbrequest/testqjsondbrequest.cpp
+++ b/tests/auto/qjsondbrequest/testqjsondbrequest.cpp
@@ -58,6 +58,7 @@
#include <QFileInfo>
#include <QTimer>
#include <QTemporaryDir>
+#include <QSignalSpy>
#include <pwd.h>
#include <signal.h>
@@ -108,6 +109,7 @@ private slots:
void invalidPrivatePartition();
void removeRequest();
void forced();
+ void readObjectRequest();
void bindings();
void replaceFromNull();
void multiplerequests();
@@ -1223,6 +1225,44 @@ void TestQJsonDbRequest::privatePartitionFlushRequest()
QCOMPARE((int)statuses.at(1), (int)QJsonDbRequest::Finished);
}
+void TestQJsonDbRequest::readObjectRequest()
+{
+ QUuid uuid = QUuid::createUuid();
+ QJsonDbObject item;
+ item.setUuid(uuid);
+ item.insert(QStringLiteral("_type"), QStringLiteral("readObjectRequest"));
+
+ QJsonDbReadObjectRequest request;
+ QSignalSpy availableSpy(&request, SIGNAL(objectAvailable(QJsonObject)));
+ QSignalSpy unavailableSpy(&request, SIGNAL(objectUnavailable(QUuid)));
+
+ // test non-existent object
+ request.setUuid(uuid);
+ QVERIFY(mConnection->send(&request));
+ QVERIFY(waitForResponse(&request));
+ QCOMPARE(availableSpy.count(), 0);
+ QCOMPARE(unavailableSpy.count(), 1);
+ QList<QVariant> args = unavailableSpy.takeFirst();
+ QCOMPARE(args.size(), 1);
+ QCOMPARE(args.at(0).value<QUuid>(), uuid);
+
+ // create the object and try again
+ {
+ QJsonDbCreateRequest request(item);
+ QVERIFY(mConnection->send(&request));
+ QVERIFY(waitForResponse(&request));
+ }
+ QVERIFY(mConnection->send(&request));
+ QVERIFY(waitForResponse(&request));
+ QCOMPARE(availableSpy.count(), 1);
+ QCOMPARE(unavailableSpy.count(), 0);
+ args = availableSpy.takeFirst();
+ QCOMPARE(args.size(), 1);
+ QJsonObject result = args.at(0).value<QJsonObject>();
+ QCOMPARE(result.value(QStringLiteral("_uuid")).toString(), item.uuid().toString());
+ QCOMPARE(result.value(QStringLiteral("_type")).toString(), item.value(QStringLiteral("_type")).toString());
+}
+
void TestQJsonDbRequest::bindings()
{
{