Hotwheels-Cluster 1.2
Creation of Cluster APP for SEA:ME project.
 
Loading...
Searching...
No Matches
test_SystemDataManager.cpp
Go to the documentation of this file.
1
15
16#include <QSignalSpy>
17#include "SystemDataManager.hpp"
18#include <gtest/gtest.h>
19
27class SystemDataManagerTest : public ::testing::Test
28{
29protected:
31
32 void SetUp() override { systemDataManager = new SystemDataManager(); }
33
34 void TearDown() override { delete systemDataManager; }
35};
36
45TEST_F(SystemDataManagerTest, TimeDataEmitsSignal)
46{
47 QSignalSpy timeSpy(systemDataManager, &SystemDataManager::systemTimeUpdated);
48
49 QString expectedDate = "2025-01-30";
50 QString expectedTime = "14:30:00";
51 QString expectedDay = "Thursday";
52
53 systemDataManager->handleTimeData(expectedDate, expectedTime, expectedDay);
54
55 ASSERT_EQ(timeSpy.count(), 1);
56 QList<QVariant> args = timeSpy.takeFirst();
57 ASSERT_EQ(args.at(0).toString(), expectedDate);
58 ASSERT_EQ(args.at(1).toString(), expectedTime);
59 ASSERT_EQ(args.at(2).toString(), expectedDay);
60}
61
70TEST_F(SystemDataManagerTest, WifiDataEmitsSignalOnChange)
71{
72 QSignalSpy wifiSpy(systemDataManager, &SystemDataManager::systemWifiUpdated);
73
74 QString expectedStatus = "Connected";
75 QString expectedName = "MyWiFi";
76
77 systemDataManager->handleWifiData(expectedStatus, expectedName);
78
79 ASSERT_EQ(wifiSpy.count(), 1);
80 QList<QVariant> args = wifiSpy.takeFirst();
81 ASSERT_EQ(args.at(0).toString(), expectedStatus);
82 ASSERT_EQ(args.at(1).toString(), expectedName);
83
84 // Sending the same data should NOT emit the signal again
85 systemDataManager->handleWifiData(expectedStatus, expectedName);
86 ASSERT_EQ(wifiSpy.count(), 0);
87}
88
97TEST_F(SystemDataManagerTest, TemperatureDataEmitsSignalOnChange)
98{
99 QSignalSpy tempSpy(systemDataManager, &SystemDataManager::systemTemperatureUpdated);
100
101 QString expectedTemp = "25.5°C";
102
103 systemDataManager->handleTemperatureData(expectedTemp);
104
105 ASSERT_EQ(tempSpy.count(), 1);
106 QList<QVariant> args = tempSpy.takeFirst();
107 ASSERT_EQ(args.at(0).toString(), expectedTemp);
108
109 // Sending the same data should NOT emit the signal again
110 systemDataManager->handleTemperatureData(expectedTemp);
111 ASSERT_EQ(tempSpy.count(), 0);
112}
113
122TEST_F(SystemDataManagerTest, IpAddressEmitsSignalOnChange)
123{
124 QSignalSpy ipSpy(systemDataManager, &SystemDataManager::ipAddressUpdated);
125
126 QString expectedIp = "192.168.1.100";
127
128 systemDataManager->handleIpAddressData(expectedIp);
129
130 ASSERT_EQ(ipSpy.count(), 1);
131 QList<QVariant> args = ipSpy.takeFirst();
132 ASSERT_EQ(args.at(0).toString(), expectedIp);
133
134 // Sending the same data should NOT emit the signal again
135 systemDataManager->handleIpAddressData(expectedIp);
136 ASSERT_EQ(ipSpy.count(), 0);
137}
138
147TEST_F(SystemDataManagerTest, BatteryPercentageEmitsSignalOnChange)
148{
149 QSignalSpy batterySpy(systemDataManager, &SystemDataManager::batteryPercentageUpdated);
150
151 float expectedBattery = 78.5f;
152
153 systemDataManager->handleBatteryPercentage(expectedBattery);
154
155 ASSERT_EQ(batterySpy.count(), 1);
156 QList<QVariant> args = batterySpy.takeFirst();
157 ASSERT_FLOAT_EQ(args.at(0).toFloat(), expectedBattery);
158
159 // Sending the same data should NOT emit the signal again
160 systemDataManager->handleBatteryPercentage(expectedBattery);
161 ASSERT_EQ(batterySpy.count(), 0);
162}
Definition of the SystemDataManager class.
Test fixture for testing the SystemDataManager class.
SystemDataManager * systemDataManager
Class that manages the data received from the car's systems. QObject.
void systemWifiUpdated(const QString &status, const QString &wifiName)
void systemTimeUpdated(const QString &currentDate, const QString &currentTime, const QString &currentDay)
void ipAddressUpdated(const QString &ipAddress)
void systemTemperatureUpdated(const QString &temperature)
void batteryPercentageUpdated(float batteryPercentage)
TEST_F(SystemDataManagerTest, TimeDataEmitsSignal)
Ensures that the time data emits a signal when received.