diff options
author | sergk <sergejs.kovrovs@accenture.com> | 2010-06-07 04:23:13 +0300 |
---|---|---|
committer | Don Sanders <don.sanders@nokia.com> | 2011-05-23 21:13:15 +0300 |
commit | 3b6877080c6a3b30ee3289a194ac74fd25e12b0c (patch) | |
tree | 27a0fa49c3e7313119bad0c1e8a9ed4022d29484 | |
parent | b278bffd1f21d2836e63f549f89f695581973e30 (diff) |
Added missing unittest method.
-rw-r--r-- | tests/tst_qmailstore/tst_qmailstore.cpp | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/tests/tst_qmailstore/tst_qmailstore.cpp b/tests/tst_qmailstore/tst_qmailstore.cpp index a2e5a860..b503418c 100644 --- a/tests/tst_qmailstore/tst_qmailstore.cpp +++ b/tests/tst_qmailstore/tst_qmailstore.cpp @@ -72,6 +72,7 @@ private slots: void addFolder(); void addMessage(); void addMessages(); + void addMessages2(); void locking(); void updateAccount(); void updateFolder(); @@ -497,6 +498,79 @@ void tst_QMailStore::addMessages() QCOMPARE(QMailStore::instance()->queryMessages(key, sort, 10, 0), messageIds); } +void tst_QMailStore::addMessages2() +{ + QMailAccount account; + account.setName("Account"); + + QCOMPARE(QMailStore::instance()->countAccounts(), 0); + QCOMPARE(QMailStore::instance()->lastError(), QMailStore::NoError); + QVERIFY(!account.id().isValid()); + QVERIFY(QMailStore::instance()->addAccount(&account, 0)); + QCOMPARE(QMailStore::instance()->lastError(), QMailStore::NoError); + QVERIFY(account.id().isValid()); + QCOMPARE(QMailStore::instance()->countAccounts(), 1); + QCOMPARE(QMailStore::instance()->lastError(), QMailStore::NoError); + + QMailFolder folder; + folder.setPath("Folder"); + folder.setParentAccountId(account.id()); + + QCOMPARE(QMailStore::instance()->countFolders(), 0); + QCOMPARE(QMailStore::instance()->lastError(), QMailStore::NoError); + QVERIFY(!folder.id().isValid()); + QVERIFY(QMailStore::instance()->addFolder(&folder)); + QCOMPARE(QMailStore::instance()->lastError(), QMailStore::NoError); + QVERIFY(folder.id().isValid()); + QCOMPARE(QMailStore::instance()->countFolders(), 1); + QCOMPARE(QMailStore::instance()->lastError(), QMailStore::NoError); + + QList<QMailMessage> messages; + QList<QMailMessage*> messageAddresses; + for (int i = 1; i <= 10; ++i) { + QMailMessage message; + message.setParentAccountId(account.id()); + message.setParentFolderId(folder.id()); + message.setMessageType(QMailMessage::Sms); + message.setSubject(QString("Message %1").arg(i)); + message.setBody(QMailMessageBody::fromData(QString("Hi #%1").arg(i), QMailMessageContentType("text/plain"), QMailMessageBody::SevenBit)); + + messages.append(message); + messageAddresses.append(&messages.last()); + } + + // Verify that addition is successful + QCOMPARE(QMailStore::instance()->countMessages(), 0); + QCOMPARE(QMailStore::instance()->lastError(), QMailStore::NoError); + QVERIFY(!messages.first().id().isValid()); + QVERIFY(!messages.last().id().isValid()); + QVERIFY(QMailStore::instance()->addMessages(messageAddresses)); + QCOMPARE(QMailStore::instance()->lastError(), QMailStore::NoError); + QVERIFY(messages.first().id().isValid()); + QVERIFY(messages.last().id().isValid()); + QCOMPARE(QMailStore::instance()->countMessages(), 10); + QCOMPARE(QMailStore::instance()->lastError(), QMailStore::NoError); + + // Verify that retrieval yields matching result + for (int i = 1; i <= 10; ++i) { + QMailMessage message(messages.at(i - 1).id()); + QCOMPARE(QMailStore::instance()->lastError(), QMailStore::NoError); + QCOMPARE(message.subject(), QString("Message %1").arg(i)); + QCOMPARE(message.body().data(), QString("Hi #%1").arg(i)); + } + + // Test basic limit/offset + QMailMessageKey key; + QMailMessageSortKey sort; + QMailMessageIdList messageIds(QMailStore::instance()->queryMessages(key, sort)); + QCOMPARE(QMailStore::instance()->queryMessages(key, sort, 4, 0), messageIds.mid(0, 4)); + QCOMPARE(QMailStore::instance()->queryMessages(key, sort, 4, 3), messageIds.mid(3, 4)); + QCOMPARE(QMailStore::instance()->queryMessages(key, sort, 4, 6), messageIds.mid(6, 4)); + QCOMPARE(QMailStore::instance()->queryMessages(key, sort, 9, 0), messageIds.mid(0, 9)); + QCOMPARE(QMailStore::instance()->queryMessages(key, sort, 9, 1), messageIds.mid(1, 9)); + QCOMPARE(QMailStore::instance()->queryMessages(key, sort, 10, 0), messageIds); +} + void tst_QMailStore::locking() { QMailAccount accnt; |