File indexing completed on 2024-06-09 04:57:47

0001 /*
0002    SPDX-FileCopyrightText: 2023-2024 Laurent Montel <montel.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "localaccountdatabasetest.h"
0008 #include "localdatabase/localaccountdatabase.h"
0009 #include <QFile>
0010 #include <QStandardPaths>
0011 #include <QTest>
0012 static QString accountName()
0013 {
0014     return QStringLiteral("myAccount");
0015 }
0016 QTEST_MAIN(LocalAccountDatabaseTest)
0017 LocalAccountDatabaseTest::LocalAccountDatabaseTest(QObject *parent)
0018     : QObject{parent}
0019 {
0020 }
0021 
0022 void LocalAccountDatabaseTest::initTestCase()
0023 {
0024     QStandardPaths::setTestModeEnabled(true);
0025 
0026     // Clean up after previous runs
0027     LocalAccountDatabase accountDataBase;
0028     QFile::remove(accountDataBase.dbFileName(accountName()));
0029 }
0030 
0031 void LocalAccountDatabaseTest::shouldHaveDefaultValues()
0032 {
0033     LocalAccountDatabase accountDataBase;
0034     QCOMPARE(accountDataBase.schemaDatabaseStr(), QStringLiteral("CREATE TABLE ACCOUNT (accountName TEXT PRIMARY KEY NOT NULL, json TEXT)"));
0035 }
0036 
0037 void LocalAccountDatabaseTest::shouldVerifyDbFileName()
0038 {
0039     LocalAccountDatabase accountDataBase;
0040     QCOMPARE(accountDataBase.dbFileName(accountName()),
0041              QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + QStringLiteral("/database/account/myAccount/myAccount.sqlite"));
0042 }
0043 
0044 void LocalAccountDatabaseTest::shouldStoreAccountSettings()
0045 {
0046     {
0047         LocalAccountDatabase accountDataBase;
0048         QByteArray ba = "{}";
0049         accountDataBase.updateAccount(accountName(), ba);
0050 
0051         // WHEN
0052         QByteArray getInfo = accountDataBase.jsonAccount(accountName());
0053 
0054         // THEN
0055         QCOMPARE(getInfo, ba);
0056     }
0057     {
0058         LocalAccountDatabase accountDataBase;
0059         QByteArray ba = "{bla:\"bli\"}";
0060         accountDataBase.updateAccount(accountName(), ba);
0061 
0062         // WHEN
0063         QByteArray getInfo = accountDataBase.jsonAccount(accountName());
0064 
0065         // THEN
0066         QCOMPARE(getInfo, ba);
0067     }
0068 }
0069 
0070 void LocalAccountDatabaseTest::shouldRemoveAccountSettings()
0071 {
0072     {
0073         LocalAccountDatabase accountDataBase;
0074         QByteArray ba = "{}";
0075         accountDataBase.updateAccount(accountName(), ba);
0076         // WHEN
0077         const QByteArray getInfo = accountDataBase.jsonAccount(accountName());
0078 
0079         // THEN
0080         QCOMPARE(getInfo, ba);
0081 
0082         accountDataBase.deleteAccount(accountName());
0083 
0084         QVERIFY(accountDataBase.jsonAccount(accountName()).isEmpty());
0085     }
0086 }
0087 
0088 #include "moc_localaccountdatabasetest.cpp"