1/*
2 * SPDX-FileCopyrightText: 2019 Manuel Weichselbaumer <mincequi@web.de>
3 *
4 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5 */
6
7#include "leadvertisingmanagertest.h"
8#include "autotests.h"
9#include "initmanagerjob.h"
10#include "leadvertisingmanager.h"
11#include "manager.h"
12#include "pendingcall.h"
13
14#include <QDBusObjectPath>
15
16namespace BluezQt
17{
18extern void bluezqt_initFakeBluezTestRun();
19}
20
21using namespace BluezQt;
22
23void TestAdvertisement::release()
24{
25 m_releaseCalled = true;
26}
27
28void LEAdvertisingManagerTest::initTestCase()
29{
30 bluezqt_initFakeBluezTestRun();
31 FakeBluez::start();
32 FakeBluez::runTest(QStringLiteral("bluez-standard"));
33
34 // Create adapter
35 QString adapter = QStringLiteral("/org/bluez/hci0");
36 QVariantMap adapterProps;
37 adapterProps[QStringLiteral("Path")] = QVariant::fromValue(QDBusObjectPath(adapter));
38 adapterProps[QStringLiteral("Address")] = QStringLiteral("1C:E5:C3:BC:94:7E");
39 adapterProps[QStringLiteral("Name")] = QStringLiteral("TestAdapter");
40 FakeBluez::runAction(QStringLiteral("devicemanager"), QStringLiteral("create-adapter"), adapterProps);
41
42 Manager *manager = new Manager(this);
43 InitManagerJob *initJob = manager->init();
44 initJob->exec();
45 QVERIFY(!initJob->error());
46 QCOMPARE(manager->adapters().count(), 1);
47
48 m_adapter = manager->adapters().at(0);
49 QVERIFY(m_adapter->leAdvertisingManager());
50
51 m_advertisement = new TestAdvertisement({QStringLiteral("ad100000-d901-11e8-9f8b-f2801f1b9fd1")}, this);
52 auto call = m_adapter->leAdvertisingManager()->registerAdvertisement(m_advertisement);
53 call->waitForFinished();
54 QVERIFY(!call->error());
55}
56
57void LEAdvertisingManagerTest::cleanupTestCase()
58{
59 FakeBluez::stop();
60}
61
62void LEAdvertisingManagerTest::releaseTest()
63{
64 QCOMPARE(m_advertisement->m_releaseCalled, false);
65
66 QVariantMap params;
67 params.insert(QStringLiteral("AdapterPath"), QVariant::fromValue(QDBusObjectPath(m_adapter->ubi())));
68 FakeBluez::runAction(QStringLiteral("devicemanager"), QStringLiteral("adapter-leadvertisingmanager:release"), params);
69
70 QTRY_COMPARE(m_advertisement->m_releaseCalled, true);
71}
72
73QTEST_MAIN(LEAdvertisingManagerTest)
74
75#include "moc_leadvertisingmanagertest.cpp"
76

source code of bluez-qt/autotests/leadvertisingmanagertest.cpp