1 /*
2  * SPDX-FileCopyrightText: 2018 Daniel Vrátil <dvratil@kde.org>
3  *
4  * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5  */
6 
7 #pragma once
8 
9 #include "accountstorage_p.h"
10 
11 #include <QMap>
12 
13 class FakeAccountStorage : public KGAPI2::AccountStorage
14 {
15 public:
16     explicit FakeAccountStorage();
17 
18     void open(const std::function<void (bool)> &callback) override;
19     bool opened() const override;
20 
21     KGAPI2::AccountPtr getAccount(const QString &apiKey, const QString &accountName) override;
22     bool storeAccount(const QString &apiKey, const KGAPI2::AccountPtr &account) override;
23     void removeAccount(const QString &apiKey, const QString &accountName) override;
24 
25     KGAPI2::AccountPtr generateAccount(const QString &apiKey, const QString &accountName, const QList<QUrl> &scopes);
26 
27 public:
28     QMap<QString, KGAPI2::AccountPtr> mStore;
29 };
30 
31 
32 class FakeAccountStorageFactory : public KGAPI2::AccountStorageFactory
33 {
34 public:
35     FakeAccountStorageFactory();
36     ~FakeAccountStorageFactory() override;
37 
38     KGAPI2::AccountStorage *create() const override;
39     FakeAccountStorage *fakeStore() const;
40 
41 private:
42     FakeAccountStorage *mStore;
43 };
44 
45