File indexing completed on 2024-04-28 05:19:53

0001 /*
0002  * SPDX-FileCopyrightText: 2018 Daniel Vrátil <dvratil@kde.org>
0003  *
0004  * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005  */
0006 
0007 #pragma once
0008 
0009 #include "accountstorage_p.h"
0010 
0011 #include <QMap>
0012 
0013 class FakeAccountStorage : public KGAPI2::AccountStorage
0014 {
0015 public:
0016     explicit FakeAccountStorage();
0017 
0018     void open(const std::function<void(bool)> &callback) override;
0019     bool opened() const override;
0020 
0021     KGAPI2::AccountPtr getAccount(const QString &apiKey, const QString &accountName) override;
0022     bool storeAccount(const QString &apiKey, const KGAPI2::AccountPtr &account) override;
0023     void removeAccount(const QString &apiKey, const QString &accountName) override;
0024 
0025     KGAPI2::AccountPtr generateAccount(const QString &apiKey, const QString &accountName, const QList<QUrl> &scopes);
0026 
0027 public:
0028     QMap<QString, KGAPI2::AccountPtr> mStore;
0029 };
0030 
0031 class FakeAccountStorageFactory : public KGAPI2::AccountStorageFactory
0032 {
0033 public:
0034     FakeAccountStorageFactory();
0035     ~FakeAccountStorageFactory() override;
0036 
0037     KGAPI2::AccountStorage *create() const override;
0038     FakeAccountStorage *fakeStore() const;
0039 
0040 private:
0041     FakeAccountStorage *mStore;
0042 };