Hotwheels-Cluster 1.2
Creation of Cluster APP for SEA:ME project.
 
Loading...
Searching...
No Matches
test_ClusterSettingsManager.cpp
Go to the documentation of this file.
1
15
16#include <QSignalSpy>
18#include <gtest/gtest.h>
19
27class ClusterSettingsManagerTest : public ::testing::Test
28{
29protected:
31
33
34 void TearDown() override { delete clusterSettingsManager; }
35};
36
46TEST_F(ClusterSettingsManagerTest, ToggleDrivingModeEmitsSignal)
47{
48 QSignalSpy drivingModeSpy(clusterSettingsManager, &ClusterSettingsManager::drivingModeUpdated);
49
50 // Default mode is Manual, toggling should switch to Automatic
51 clusterSettingsManager->toggleDrivingMode();
52 ASSERT_EQ(drivingModeSpy.count(), 1);
53 ASSERT_EQ(drivingModeSpy.takeFirst().at(0).value<DrivingMode>(), DrivingMode::Automatic);
54
55 // Toggling again should switch back to Manual
56 clusterSettingsManager->toggleDrivingMode();
57 ASSERT_EQ(drivingModeSpy.count(), 1);
58 ASSERT_EQ(drivingModeSpy.takeFirst().at(0).value<DrivingMode>(), DrivingMode::Manual);
59}
60
70TEST_F(ClusterSettingsManagerTest, ToggleClusterThemeEmitsSignal)
71{
72 QSignalSpy themeSpy(clusterSettingsManager, &ClusterSettingsManager::clusterThemeUpdated);
73
74 // Default theme is Dark, toggling should switch to Light
75 clusterSettingsManager->toggleClusterTheme();
76 ASSERT_EQ(themeSpy.count(), 1);
77 ASSERT_EQ(themeSpy.takeFirst().at(0).value<ClusterTheme>(), ClusterTheme::Light);
78
79 // Toggling again should switch back to Dark
80 clusterSettingsManager->toggleClusterTheme();
81 ASSERT_EQ(themeSpy.count(), 1);
82 ASSERT_EQ(themeSpy.takeFirst().at(0).value<ClusterTheme>(), ClusterTheme::Dark);
83}
84
94TEST_F(ClusterSettingsManagerTest, ToggleClusterMetricsEmitsSignal)
95{
96 QSignalSpy metricsSpy(clusterSettingsManager, &ClusterSettingsManager::clusterMetricsUpdated);
97
98 // Default metrics is Kilometers, toggling should switch to Miles
99 clusterSettingsManager->toggleClusterMetrics();
100 ASSERT_EQ(metricsSpy.count(), 1);
101 ASSERT_EQ(metricsSpy.takeFirst().at(0).value<ClusterMetrics>(), ClusterMetrics::Miles);
102
103 // Toggling again should switch back to Kilometers
104 clusterSettingsManager->toggleClusterMetrics();
105 ASSERT_EQ(metricsSpy.count(), 1);
106 ASSERT_EQ(metricsSpy.takeFirst().at(0).value<ClusterMetrics>(), ClusterMetrics::Kilometers);
107}
File containing the ClusterSettingsManager class.
DrivingMode
Enum class for the driving mode.
Definition enums.hpp:24
ClusterTheme
Enum class for the cluster theme.
Definition enums.hpp:26
ClusterMetrics
Enum class for the cluster metrics.
Definition enums.hpp:28
Test fixture for testing the ClusterSettingsManager class.
ClusterSettingsManager * clusterSettingsManager
Class that manages the cluster settings.
void clusterThemeUpdated(ClusterTheme newTheme)
void drivingModeUpdated(DrivingMode newMode)
void clusterMetricsUpdated(ClusterMetrics newMetrics)
TEST_F(ClusterSettingsManagerTest, ToggleDrivingModeEmitsSignal)
Ensures that the driving mode can be toggled between Manual and Automatic.