@@ -54,6 +54,7 @@ TEST_CASE("Initialization succeeded", "[candevice]")
5454 Mock<CanDeviceInterface> deviceMock;
5555 std::function<void ()> rcvCbk;
5656
57+ Fake (Dtor (deviceMock));
5758 Fake (Method (deviceMock, setFramesWrittenCbk));
5859 When (Method (deviceMock, setFramesReceivedCbk)).AlwaysDo ([&](auto && fn) { rcvCbk = fn; });
5960 Fake (Method (deviceMock, setErrorOccurredCbk));
@@ -79,6 +80,7 @@ TEST_CASE("Start failed", "[candevice]")
7980 using namespace fakeit ;
8081 Mock<CanDeviceInterface> deviceMock;
8182
83+ Fake (Dtor (deviceMock));
8284 When (Method (deviceMock, setFramesWrittenCbk)).Do ([](const auto & cb) { cb (100 ); });
8385 Fake (Method (deviceMock, setFramesReceivedCbk));
8486 Fake (Method (deviceMock, setErrorOccurredCbk));
@@ -96,6 +98,7 @@ TEST_CASE("Start failed - could not connect to device", "[candevice]")
9698 using namespace fakeit ;
9799 Mock<CanDeviceInterface> deviceMock;
98100
101+ Fake (Dtor (deviceMock));
99102 Fake (Method (deviceMock, setFramesWrittenCbk));
100103 Fake (Method (deviceMock, setFramesReceivedCbk));
101104 Fake (Method (deviceMock, setErrorOccurredCbk));
@@ -128,6 +131,7 @@ TEST_CASE("Start succeeded", "[candevice]")
128131 using namespace fakeit ;
129132 Mock<CanDeviceInterface> deviceMock;
130133
134+ Fake (Dtor (deviceMock));
131135 When (Method (deviceMock, setFramesWrittenCbk)).Do ([](const auto & cb) { cb (100 ); });
132136 Fake (Method (deviceMock, setFramesReceivedCbk));
133137 Fake (Method (deviceMock, setErrorOccurredCbk));
@@ -146,6 +150,7 @@ TEST_CASE("Stop uninitialized", "[candevice]")
146150 using namespace fakeit ;
147151 Mock<CanDeviceInterface> deviceMock;
148152
153+ Fake (Dtor (deviceMock));
149154 Fake (Method (deviceMock, setParent));
150155
151156 CanDevice canDevice{ CanDeviceCtx (&deviceMock.get ()) };
@@ -158,6 +163,7 @@ TEST_CASE("Stop initialized", "[candevice]")
158163 using namespace fakeit ;
159164 Mock<CanDeviceInterface> deviceMock;
160165
166+ Fake (Dtor (deviceMock));
161167 When (Method (deviceMock, setFramesWrittenCbk)).Do ([](const auto & cb) { cb (100 ); });
162168 Fake (Method (deviceMock, setFramesReceivedCbk));
163169 Fake (Method (deviceMock, setErrorOccurredCbk));
@@ -178,6 +184,7 @@ TEST_CASE("Config changed", "[candevice]")
178184 using namespace fakeit ;
179185 Mock<CanDeviceInterface> deviceMock;
180186
187+ Fake (Dtor (deviceMock));
181188 When (Method (deviceMock, setFramesWrittenCbk)).Do ([](const auto & cb) { cb (100 ); });
182189 Fake (Method (deviceMock, setFramesReceivedCbk));
183190 Fake (Method (deviceMock, setErrorOccurredCbk));
@@ -199,6 +206,7 @@ TEST_CASE("writeFrame results in error", "[candevice]")
199206 using namespace fakeit ;
200207 Mock<CanDeviceInterface> deviceMock;
201208
209+ Fake (Dtor (deviceMock));
202210 Fake (Method (deviceMock, setFramesWrittenCbk));
203211 Fake (Method (deviceMock, setFramesReceivedCbk));
204212 Fake (Method (deviceMock, setErrorOccurredCbk));
@@ -221,6 +229,7 @@ TEST_CASE("sendFrame, writeframe returns true, no signal emitted", "[candevice]"
221229 using namespace fakeit ;
222230 Mock<CanDeviceInterface> deviceMock;
223231
232+ Fake (Dtor (deviceMock));
224233 Fake (Method (deviceMock, setFramesWrittenCbk));
225234 Fake (Method (deviceMock, setFramesReceivedCbk));
226235 Fake (Method (deviceMock, setErrorOccurredCbk));
@@ -260,6 +269,7 @@ TEST_CASE("sendFrame defers FrameSent until backend emits frameWritten", "[cande
260269 const auto frame = QCanBusFrame{ 0x12345678 , QByteArray{ " \x50\x30\10 " } };
261270 CanDeviceInterface::framesWritten_t writtenCbk;
262271
272+ Fake (Dtor (deviceMock));
263273 When (Method (deviceMock, setFramesWrittenCbk)).Do ([&](auto && fn) { writtenCbk = fn; });
264274 Fake (Method (deviceMock, setFramesReceivedCbk));
265275 Fake (Method (deviceMock, setErrorOccurredCbk));
@@ -291,6 +301,7 @@ TEST_CASE("Emits all available frames when notified by backend", "[candevice]")
291301 auto currentFrame = frames.begin ();
292302 CanDeviceInterface::framesReceived_t receivedCbk;
293303
304+ Fake (Dtor (deviceMock));
294305 Fake (Method (deviceMock, setFramesWrittenCbk));
295306 When (Method (deviceMock, setFramesReceivedCbk)).Do ([&](auto && fn) { receivedCbk = fn; });
296307 Fake (Method (deviceMock, setErrorOccurredCbk));
@@ -326,6 +337,7 @@ TEST_CASE("WriteError causes emitting frameSent with frameSent=false", "[candevi
326337 const auto frame = QCanBusFrame{ 0x12345678 , QByteArray{ " \x50\x30\10 " } };
327338 CanDeviceInterface::errorOccurred_t errorCbk;
328339
340+ Fake (Dtor (deviceMock));
329341 Fake (Method (deviceMock, setFramesWrittenCbk));
330342 Fake (Method (deviceMock, setFramesReceivedCbk));
331343 When (Method (deviceMock, setErrorOccurredCbk)).Do ([&](auto && fn) { errorCbk = fn; });
@@ -351,17 +363,19 @@ TEST_CASE("read configuration to json format", "[candevice]")
351363{
352364 using namespace fakeit ;
353365 Mock<CanDeviceInterface> deviceMock;
366+ Fake (Dtor (deviceMock));
354367 Fake (Method (deviceMock, setParent));
355368 CanDevice canDevice{ CanDeviceCtx (&deviceMock.get ()) };
356369 QJsonObject config = canDevice.getConfig ();
357- REQUIRE (config.count () == canDevice.getSupportedProperties ().size ());
370+ REQUIRE (config.count () == static_cast < int >( canDevice.getSupportedProperties ().size () ));
358371}
359372
360373TEST_CASE (" setConfig using JSON read with QObject" , " [candevice]" )
361374{
362375 using namespace fakeit ;
363376
364377 Mock<CanDeviceInterface> deviceMock;
378+ Fake (Dtor (deviceMock));
365379 Fake (Method (deviceMock, setParent));
366380 CanDevice canDevice{ CanDeviceCtx (&deviceMock.get ()) };
367381
@@ -386,18 +400,19 @@ TEST_CASE("Stubbed methods", "[candevice]")
386400{
387401 using namespace fakeit ;
388402 Mock<CanDeviceInterface> deviceMock;
403+ Fake (Dtor (deviceMock));
389404 Fake (Method (deviceMock, setParent));
390405 CanDevice canDevice{ CanDeviceCtx (&deviceMock.get ()) };
391406
392407 REQUIRE (canDevice.mainWidget () == nullptr );
393408 REQUIRE (canDevice.mainWidgetDocked () == true );
394409}
395410
396- auto prepareConfigTestMock (std::vector<std::pair<int , QVariant>>& ver)
411+ void prepareConfigTestMock (fakeit::Mock<CanDeviceInterface>& deviceMock, std::vector<std::pair<int , QVariant>>& ver)
397412{
398413 using namespace fakeit ;
399- Mock<CanDeviceInterface> deviceMock;
400414
415+ Fake (Dtor (deviceMock));
401416 Fake (Method (deviceMock, setFramesWrittenCbk));
402417 Fake (Method (deviceMock, setFramesReceivedCbk));
403418 Fake (Method (deviceMock, setErrorOccurredCbk));
@@ -408,7 +423,6 @@ auto prepareConfigTestMock(std::vector<std::pair<int, QVariant>>& ver)
408423 When (Method (deviceMock, setConfigurationParameter)).AlwaysDo ([&](int key, const QVariant& v) {
409424 ver.push_back (std::make_pair (key, v));
410425 });
411- return deviceMock;
412426}
413427
414428void testConfig (fakeit::Mock<CanDeviceInterface>& deviceMock, CanDevice& canDevice, const QString& configStr)
@@ -440,7 +454,8 @@ TEST_CASE("Config parameter - invalid format and unsupported", "[candevice]")
440454{
441455 using namespace fakeit ;
442456 std::vector<std::pair<int , QVariant>> v;
443- auto && deviceMock = prepareConfigTestMock (v);
457+ Mock<CanDeviceInterface> deviceMock;
458+ prepareConfigTestMock (deviceMock, v);
444459
445460 CanDevice canDevice{ CanDeviceCtx (&deviceMock.get ()) };
446461
@@ -458,7 +473,8 @@ TEST_CASE("Config parameter - LoopbackKey", "[candevice]")
458473{
459474 using namespace fakeit ;
460475 std::vector<std::pair<int , QVariant>> v;
461- auto && deviceMock = prepareConfigTestMock (v);
476+ Mock<CanDeviceInterface> deviceMock;
477+ prepareConfigTestMock (deviceMock, v);
462478
463479 CanDevice canDevice{ CanDeviceCtx (&deviceMock.get ()) };
464480
@@ -482,7 +498,8 @@ TEST_CASE("Config parameter - ReceiveOwnKey", "[candevice]")
482498{
483499 using namespace fakeit ;
484500 std::vector<std::pair<int , QVariant>> v;
485- auto && deviceMock = prepareConfigTestMock (v);
501+ Mock<CanDeviceInterface> deviceMock;
502+ prepareConfigTestMock (deviceMock, v);
486503
487504 CanDevice canDevice{ CanDeviceCtx (&deviceMock.get ()) };
488505
@@ -506,7 +523,8 @@ TEST_CASE("Config parameter - CanFdKey", "[candevice]")
506523{
507524 using namespace fakeit ;
508525 std::vector<std::pair<int , QVariant>> v;
509- auto && deviceMock = prepareConfigTestMock (v);
526+ Mock<CanDeviceInterface> deviceMock;
527+ prepareConfigTestMock (deviceMock, v);
510528
511529 CanDevice canDevice{ CanDeviceCtx (&deviceMock.get ()) };
512530
@@ -530,7 +548,8 @@ TEST_CASE("Config parameter - BitRateKey", "[candevice]")
530548{
531549 using namespace fakeit ;
532550 std::vector<std::pair<int , QVariant>> v;
533- auto && deviceMock = prepareConfigTestMock (v);
551+ Mock<CanDeviceInterface> deviceMock;
552+ prepareConfigTestMock (deviceMock, v);
534553
535554 CanDevice canDevice{ CanDeviceCtx (&deviceMock.get ()) };
536555
@@ -551,7 +570,8 @@ TEST_CASE("Config parameter - UserKey", "[candevice]")
551570{
552571 using namespace fakeit ;
553572 std::vector<std::pair<int , QVariant>> v;
554- auto && deviceMock = prepareConfigTestMock (v);
573+ Mock<CanDeviceInterface> deviceMock;
574+ prepareConfigTestMock (deviceMock, v);
555575
556576 CanDevice canDevice{ CanDeviceCtx (&deviceMock.get ()) };
557577
@@ -575,7 +595,8 @@ TEST_CASE("Config parameter - DataBitRateKey", "[candevice]")
575595{
576596 using namespace fakeit ;
577597 std::vector<std::pair<int , QVariant>> v;
578- auto && deviceMock = prepareConfigTestMock (v);
598+ Mock<CanDeviceInterface> deviceMock;
599+ prepareConfigTestMock (deviceMock, v);
579600
580601 CanDevice canDevice{ CanDeviceCtx (&deviceMock.get ()) };
581602
@@ -598,7 +619,8 @@ TEST_CASE("Config parameter - multiple keys", "[candevice]")
598619{
599620 using namespace fakeit ;
600621 std::vector<std::pair<int , QVariant>> v;
601- auto && deviceMock = prepareConfigTestMock (v);
622+ Mock<CanDeviceInterface> deviceMock;
623+ prepareConfigTestMock (deviceMock, v);
602624
603625 CanDevice canDevice{ CanDeviceCtx (&deviceMock.get ()) };
604626
0 commit comments