1/*
2 * SPDX-FileCopyrightText: 2014-2015 David Rosca <nowrep@gmail.com>
3 *
4 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5 */
6
7#include "jobstest.h"
8#include "device.h"
9#include "initmanagerjob.h"
10#include "initobexmanagerjob.h"
11#include "manager.h"
12#include "obexmanager.h"
13
14#include <QSignalSpy>
15#include <QTest>
16
17using namespace BluezQt;
18
19void JobsTest::deleteManagerTest()
20{
21 Manager *manager = new Manager();
22 InitManagerJob *job = manager->init();
23 QSignalSpy jobSpy(job, SIGNAL(result(InitManagerJob *)));
24
25 job->start();
26 delete manager;
27
28 // Deleting manager while init job is in progress should emit error
29 QTRY_COMPARE(jobSpy.count(), 1);
30}
31
32void JobsTest::deleteInitManagerJobTest()
33{
34 Manager *manager = new Manager();
35 InitManagerJob *job = manager->init();
36 QSignalSpy jobSpy(job, SIGNAL(result(InitManagerJob *)));
37
38 job->start();
39 delete job;
40
41 // Deleting the job should emit error
42 QTRY_COMPARE(jobSpy.count(), 1);
43
44 delete manager;
45
46 manager = new Manager();
47 job = manager->init();
48 QSignalSpy jobSpy2(job, SIGNAL(result(InitManagerJob *)));
49
50 job->start();
51 job->kill();
52
53 // Killing the job should NOT emit error
54 QTRY_COMPARE(jobSpy2.count(), 0);
55}
56
57void JobsTest::deleteObexManagerTest()
58{
59 ObexManager *manager = new ObexManager();
60 InitObexManagerJob *job = manager->init();
61 QSignalSpy jobSpy(job, SIGNAL(result(InitObexManagerJob *)));
62
63 job->start();
64 delete manager;
65
66 // Deleting manager while init job is in progress should emit error
67 QTRY_COMPARE(jobSpy.count(), 1);
68}
69
70void JobsTest::deleteInitObexManagerJobTest()
71{
72 ObexManager *manager = new ObexManager();
73 InitObexManagerJob *job = manager->init();
74 QSignalSpy jobSpy(job, SIGNAL(result(InitObexManagerJob *)));
75
76 job->start();
77 delete job;
78
79 // Deleting the job should emit error
80 QTRY_COMPARE(jobSpy.count(), 1);
81
82 delete manager;
83
84 manager = new ObexManager();
85 job = manager->init();
86 QSignalSpy jobSpy2(job, SIGNAL(result(InitObexManagerJob *)));
87
88 job->start();
89 job->kill();
90
91 // Killing the job should NOT emit error
92 QTRY_COMPARE(jobSpy2.count(), 0);
93}
94
95QTEST_MAIN(JobsTest)
96
97#include "moc_jobstest.cpp"
98

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