Hotwheels-Cluster 1.2
Creation of Cluster APP for SEA:ME project.
 
Loading...
Searching...
No Matches
test_int_DataManager.cpp
Go to the documentation of this file.
1
14#include <QCoreApplication>
15#include <QDebug>
16#include <QSignalSpy>
17#include "DataManager.hpp"
18#include <gtest/gtest.h>
19
25class DataManagerTest : public ::testing::Test
26{
27protected:
28 static QCoreApplication *app;
30
31 static void SetUpTestSuite()
32 {
33 int argc = 0;
34 char *argv[] = {nullptr};
35 app = new QCoreApplication(argc, argv);
36 }
37
38 static void TearDownTestSuite() { delete app; }
39
40 void SetUp() override
41 {
43 ASSERT_NE(dataManager, nullptr);
44 ASSERT_NE(dataManager->getSystemDataManager(), nullptr);
45 ASSERT_NE(dataManager->getVehicleDataManager(), nullptr);
46 ASSERT_NE(dataManager->getClusterSettingsManager(), nullptr);
47 }
48
49 void TearDown() override { delete dataManager; }
50};
51
53QCoreApplication *DataManagerTest::app = nullptr;
54
62TEST_F(DataManagerTest, ForwardSpeedDataToVehicleDataManager)
63{
64 QSignalSpy spy(dataManager, &DataManager::canDataProcessed);
65
66 dataManager->handleSpeedData(42.5f);
67 QCoreApplication::processEvents();
68
69 ASSERT_GT(spy.count(), 0) << "Signal was not emitted!";
70 QList<QVariant> args = spy.takeFirst();
71 EXPECT_FLOAT_EQ(args.at(0).toFloat(), 42.5f);
72}
73
81TEST_F(DataManagerTest, ForwardRpmDataToVehicleDataManager)
82{
83 QSignalSpy spy(dataManager, &DataManager::canDataProcessed);
84
85 dataManager->handleRpmData(3500);
86 QCoreApplication::processEvents();
87
88 ASSERT_GT(spy.count(), 0) << "Signal was not emitted!";
89 QList<QVariant> args = spy.takeFirst();
90 EXPECT_EQ(args.at(1).toInt(), 3500);
91}
92
100TEST_F(DataManagerTest, ForwardSteeringDataToVehicleDataManager)
101{
102 QSignalSpy spy(dataManager, &DataManager::engineDataProcessed);
103
104 dataManager->handleSteeringData(15);
105 QCoreApplication::processEvents();
106
107 ASSERT_GT(spy.count(), 0) << "Signal was not emitted!";
108 QList<QVariant> args = spy.takeFirst();
109 EXPECT_EQ(args.at(1).toInt(), 15);
110}
111
119TEST_F(DataManagerTest, ForwardDirectionDataToVehicleDataManager)
120{
121 QSignalSpy spy(dataManager, &DataManager::engineDataProcessed);
122
123 dataManager->handleDirectionData(CarDirection::Drive);
124 QCoreApplication::processEvents();
125
126 ASSERT_GT(spy.count(), 0) << "Signal was not emitted!";
127 QList<QVariant> args = spy.takeFirst();
128 EXPECT_EQ(args.at(0).value<CarDirection>(), CarDirection::Drive);
129}
130
138TEST_F(DataManagerTest, ForwardTimeDataToSystemDataManager)
139{
140 QSignalSpy spy(dataManager, &DataManager::systemTimeUpdated);
141
142 dataManager->handleTimeData("2025-01-31", "12:30", "Friday");
143 QCoreApplication::processEvents();
144
145 ASSERT_GT(spy.count(), 0) << "Signal was not emitted!";
146 QList<QVariant> args = spy.takeFirst();
147 EXPECT_EQ(args.at(0).toString(), "2025-01-31");
148 EXPECT_EQ(args.at(1).toString(), "12:30");
149 EXPECT_EQ(args.at(2).toString(), "Friday");
150}
151
159TEST_F(DataManagerTest, ForwardWifiDataToSystemDataManager)
160{
161 QSignalSpy spy(dataManager, &DataManager::systemWifiUpdated);
162
163 dataManager->handleWifiData("Connected", "MyWiFi");
164 QCoreApplication::processEvents();
165
166 ASSERT_GT(spy.count(), 0) << "Signal was not emitted!";
167 QList<QVariant> args = spy.takeFirst();
168 EXPECT_EQ(args.at(0).toString(), "Connected");
169 EXPECT_EQ(args.at(1).toString(), "MyWiFi");
170}
171
179TEST_F(DataManagerTest, ForwardTemperatureDataToSystemDataManager)
180{
181 QSignalSpy spy(dataManager, &DataManager::systemTemperatureUpdated);
182
183 dataManager->handleTemperatureData("25.5°C");
184 QCoreApplication::processEvents();
185
186 ASSERT_GT(spy.count(), 0) << "Signal was not emitted!";
187 QList<QVariant> args = spy.takeFirst();
188 EXPECT_EQ(args.at(0).toString(), "25.5°C");
189}
190
198TEST_F(DataManagerTest, ForwardIpAddressDataToSystemDataManager)
199{
200 QSignalSpy spy(dataManager, &DataManager::ipAddressUpdated);
201
202 dataManager->handleIpAddressData("192.168.1.100");
203 QCoreApplication::processEvents();
204
205 ASSERT_GT(spy.count(), 0) << "Signal was not emitted!";
206 QList<QVariant> args = spy.takeFirst();
207 EXPECT_EQ(args.at(0).toString(), "192.168.1.100");
208}
209
217TEST_F(DataManagerTest, ForwardBatteryPercentageToSystemDataManager)
218{
219 QSignalSpy spy(dataManager, &DataManager::batteryPercentageUpdated);
220
221 dataManager->handleBatteryPercentage(87.5f);
222 QCoreApplication::processEvents();
223
224 ASSERT_GT(spy.count(), 0) << "Signal was not emitted!";
225 QList<QVariant> args = spy.takeFirst();
226 EXPECT_FLOAT_EQ(args.at(0).toFloat(), 87.5f);
227}
228
236TEST_F(DataManagerTest, ForwardMileageUpdateToVehicleDataManager)
237{
238 QSignalSpy spy(dataManager, &DataManager::mileageUpdated);
239
240 dataManager->handleMileageUpdate(12345.67);
241 QCoreApplication::processEvents();
242
243 ASSERT_GT(spy.count(), 0) << "Signal was not emitted!";
244 QList<QVariant> args = spy.takeFirst();
245 EXPECT_DOUBLE_EQ(args.at(0).toDouble(), 12345.67);
246}
247
255TEST_F(DataManagerTest, ToggleDrivingMode)
256{
257 QSignalSpy spy(dataManager, &DataManager::drivingModeUpdated);
258
259 dataManager->toggleDrivingMode();
260 QCoreApplication::processEvents();
261
262 ASSERT_GT(spy.count(), 0) << "Signal was not emitted!";
263}
264
272TEST_F(DataManagerTest, ToggleClusterTheme)
273{
274 QSignalSpy spy(dataManager, &DataManager::clusterThemeUpdated);
275
276 dataManager->toggleClusterTheme();
277 QCoreApplication::processEvents();
278
279 ASSERT_GT(spy.count(), 0) << "Signal was not emitted!";
280}
281
289TEST_F(DataManagerTest, ToggleClusterMetrics)
290{
291 QSignalSpy spy(dataManager, &DataManager::clusterMetricsUpdated);
292
293 dataManager->toggleClusterMetrics();
294 QCoreApplication::processEvents();
295
296 ASSERT_GT(spy.count(), 0) << "Signal was not emitted!";
297}
Definition of the DataManager class.
CarDirection
Enum class for the car direction.
Definition enums.hpp:30
Class to test the integration between the DataManager and the SystemDataManager, VehicleDataManager,...
static void TearDownTestSuite()
void TearDown() override
static void SetUpTestSuite()
static QCoreApplication * app
Initialize static member.
Class that manages the data received from the car's systems. QObject.
void batteryPercentageUpdated(float batteryPercentage)
void engineDataProcessed(CarDirection processedDirection, int processedAngle)
void mileageUpdated(double mileage)
void ipAddressUpdated(const QString &ipAddress)
void drivingModeUpdated(DrivingMode newMode)
void canDataProcessed(float processedSpeed, int processedRpm)
void systemTimeUpdated(const QString &currentDate, const QString &currentTime, const QString &currentDay)
void clusterThemeUpdated(ClusterTheme newTheme)
void clusterMetricsUpdated(ClusterMetrics newMetrics)
void systemTemperatureUpdated(const QString &temperature)
void systemWifiUpdated(const QString &status, const QString &wifiName)
TEST_F(DataManagerTest, ForwardSpeedDataToVehicleDataManager)
Ensures that the DataManager forwards speed data to the VehicleDataManager.