on a3d02ab help sign in
unity8/tests/mocks/Biometryd/MockOperation.cpp
74 lines 1.8 kB history raw
1/*
2 * Copyright (C) 2016 Canonical, Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; version 3.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
17#include <QString>
18#include <QVariant>
20#include "MockOperation.h"
22class Result : public QObject
24 Q_OBJECT
25 Q_PROPERTY(unsigned int uid READ uid CONSTANT)
27public:
28 explicit Result(unsigned int uid, QObject *parent = 0)
29 : QObject(parent), m_uid(uid)
30 {}
32 unsigned int uid() const { return m_uid; }
34private:
35 unsigned int m_uid;
36};
38MockOperation::MockOperation(QObject *parent)
39 : QObject(parent)
40 , m_observer(nullptr)
44bool MockOperation::running() const
46 return m_observer != nullptr;
49void MockOperation::start(QObject *observer)
51 if (!m_observer)
52 m_observer = observer;
55void MockOperation::cancel()
57 m_observer = nullptr;
60void MockOperation::mockSuccess(unsigned int uid)
62 if (m_observer)
63 QMetaObject::invokeMethod(m_observer, "succeeded", Qt::DirectConnection,
64 Q_ARG(QVariant, QVariant::fromValue(new Result(uid, this))));
67void MockOperation::mockFailure(const QString &reason)
69 if (m_observer)
70 QMetaObject::invokeMethod(m_observer, "failed", Qt::DirectConnection,
71 Q_ARG(QString, reason));
74#include "MockOperation.moc"