File indexing completed on 2024-04-14 03:49:55

0001 /*
0002  * SPDX-FileCopyrightText: 2014-2015 David Rosca <nowrep@gmail.com>
0003  *
0004  * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005  */
0006 
0007 #include "jobstest.h"
0008 #include "device.h"
0009 #include "initmanagerjob.h"
0010 #include "initobexmanagerjob.h"
0011 #include "manager.h"
0012 #include "obexmanager.h"
0013 
0014 #include <QSignalSpy>
0015 #include <QTest>
0016 
0017 using namespace BluezQt;
0018 
0019 void JobsTest::deleteManagerTest()
0020 {
0021     Manager *manager = new Manager();
0022     InitManagerJob *job = manager->init();
0023     QSignalSpy jobSpy(job, SIGNAL(result(InitManagerJob *)));
0024 
0025     job->start();
0026     delete manager;
0027 
0028     // Deleting manager while init job is in progress should emit error
0029     QTRY_COMPARE(jobSpy.count(), 1);
0030 }
0031 
0032 void JobsTest::deleteInitManagerJobTest()
0033 {
0034     Manager *manager = new Manager();
0035     InitManagerJob *job = manager->init();
0036     QSignalSpy jobSpy(job, SIGNAL(result(InitManagerJob *)));
0037 
0038     job->start();
0039     delete job;
0040 
0041     // Deleting the job should emit error
0042     QTRY_COMPARE(jobSpy.count(), 1);
0043 
0044     delete manager;
0045 
0046     manager = new Manager();
0047     job = manager->init();
0048     QSignalSpy jobSpy2(job, SIGNAL(result(InitManagerJob *)));
0049 
0050     job->start();
0051     job->kill();
0052 
0053     // Killing the job should NOT emit error
0054     QTRY_COMPARE(jobSpy2.count(), 0);
0055 }
0056 
0057 void JobsTest::deleteObexManagerTest()
0058 {
0059     ObexManager *manager = new ObexManager();
0060     InitObexManagerJob *job = manager->init();
0061     QSignalSpy jobSpy(job, SIGNAL(result(InitObexManagerJob *)));
0062 
0063     job->start();
0064     delete manager;
0065 
0066     // Deleting manager while init job is in progress should emit error
0067     QTRY_COMPARE(jobSpy.count(), 1);
0068 }
0069 
0070 void JobsTest::deleteInitObexManagerJobTest()
0071 {
0072     ObexManager *manager = new ObexManager();
0073     InitObexManagerJob *job = manager->init();
0074     QSignalSpy jobSpy(job, SIGNAL(result(InitObexManagerJob *)));
0075 
0076     job->start();
0077     delete job;
0078 
0079     // Deleting the job should emit error
0080     QTRY_COMPARE(jobSpy.count(), 1);
0081 
0082     delete manager;
0083 
0084     manager = new ObexManager();
0085     job = manager->init();
0086     QSignalSpy jobSpy2(job, SIGNAL(result(InitObexManagerJob *)));
0087 
0088     job->start();
0089     job->kill();
0090 
0091     // Killing the job should NOT emit error
0092     QTRY_COMPARE(jobSpy2.count(), 0);
0093 }
0094 
0095 QTEST_MAIN(JobsTest)
0096 
0097 #include "moc_jobstest.cpp"