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 | |
16 | namespace BluezQt |
17 | { |
18 | extern void bluezqt_initFakeBluezTestRun(); |
19 | } |
20 | |
21 | using namespace BluezQt; |
22 | |
23 | void TestAdvertisement::release() |
24 | { |
25 | m_releaseCalled = true; |
26 | } |
27 | |
28 | void 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 | |
57 | void LEAdvertisingManagerTest::cleanupTestCase() |
58 | { |
59 | FakeBluez::stop(); |
60 | } |
61 | |
62 | void 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 | |
73 | QTEST_MAIN(LEAdvertisingManagerTest) |
74 | |
75 | #include "moc_leadvertisingmanagertest.cpp" |
76 |