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"