#ifndef TEST_NOTIFICATION_CLIENT_H
#define TEST_NOTIFICATION_CLIENT_H

#include <QObject>
#include <QList>

#include "popup-notification.h"
#include "notification-close-reason.h"

namespace UkuiNotification {

class NotificationClient : public QObject
{
    Q_OBJECT
public:
    explicit NotificationClient(QObject *parent = nullptr);

    bool registerClient();
    void invokeAction(uint id, const QString &action);
    void closeNotification(uint id, NotificationCloseReason::CloseReason reason);

    static void reset();
    static QList<uint> closedIds();
    static QList<uint> invokedIds();
    static QStringList invokedActions();
    static void setRegisterClientResult(bool value);

Q_SIGNALS:
    void newNotification(const UkuiNotification::PopupNotification &notification);
    void notificationClosed(uint id, UkuiNotification::NotificationCloseReason::CloseReason closeReason);
};

} // namespace UkuiNotification

#endif
