diff --git a/unit_tests/tests/ac/ac_pressure_test.cpp b/unit_tests/tests/ac/ac_pressure_test.cpp index 0a8ec18f52..d6145ef844 100644 --- a/unit_tests/tests/ac/ac_pressure_test.cpp +++ b/unit_tests/tests/ac/ac_pressure_test.cpp @@ -17,6 +17,7 @@ namespace { }; AcPressureTestConfig::AcPressureTestConfig() { + setAcDelay(0.0f); setMinAcPressure(TEST_MIN_AC_PRESSURE); setMaxAcPressure(TEST_MAX_AC_PRESSURE); } @@ -38,8 +39,9 @@ namespace { void AcPressureTest::doTest(const AcPressureTestConfig& config, const std::vector& testData) { setUpTestConfig(config); + engineConfiguration->acDelay = 0; Sensor::setMockValue(SensorType::Rpm, 500); // to avoid engineTooSlow - engine->engineModules.get()->acButtonState = true; + engine->engineState.lua.acRequestState = true; // to emulate pressed A/C button for (const AcPressureTestData& testDataItem: testData) { updateAcPressure(testDataItem.acPressure); @@ -53,10 +55,18 @@ namespace { engine->engineModules.get()->acPressureTooHigh, testDataItem.expectedAcPressureTooHigh ) << testDataItem.context; + const bool shouldAcBeEnabled = !testDataItem.expectedAcPressureTooLow + && !testDataItem.expectedAcPressureTooHigh; + EXPECT_EQ(engine->engineModules.get()->isAcEnabled(), shouldAcBeEnabled) + << testDataItem.context; + EXPECT_EQ(engine->engineModules.get()->acCompressorState, shouldAcBeEnabled) + << testDataItem.context; + EXPECT_EQ(enginePins.acRelay.getLogicValue(), shouldAcBeEnabled) << testDataItem.context; } } void AcPressureTest::checkPersistentIndicators() { + EXPECT_TRUE(engine->engineModules.get()->acButtonState); EXPECT_FALSE(engine->engineModules.get()->engineTooSlow); EXPECT_FALSE(engine->engineModules.get()->engineTooFast); EXPECT_FALSE(engine->engineModules.get()->noClt); diff --git a/unit_tests/tests/ac/ac_test_base.cpp b/unit_tests/tests/ac/ac_test_base.cpp index 87aaf6c410..a4df352ad9 100644 --- a/unit_tests/tests/ac/ac_test_base.cpp +++ b/unit_tests/tests/ac/ac_test_base.cpp @@ -12,10 +12,19 @@ void AcTestBase::updateAcPressure(float acPressure) { } void AcTestBase::setUpTestConfig(const AcTestConfig& config) { + configureAcDelay(config.getAcDelay()); configureMinAcPressure(config.getMinAcPressure()); configureMaxAcPressure(config.getMaxAcPressure()); } +void AcTestBase::configureAcDelay(const std::optional acDelay) { + if (acDelay.has_value()) { + engineConfiguration->acDelay = acDelay.value(); + } else { + ASSERT_EQ(engineConfiguration->acDelay, 0.5); // check default value + } +} + void AcTestBase::configureMinAcPressure(const std::optional minAcPressure) { if (minAcPressure.has_value()) { engineConfiguration->minAcPressure = minAcPressure.value(); diff --git a/unit_tests/tests/ac/ac_test_base.h b/unit_tests/tests/ac/ac_test_base.h index 9943d93f91..11c39bb660 100644 --- a/unit_tests/tests/ac/ac_test_base.h +++ b/unit_tests/tests/ac/ac_test_base.h @@ -8,12 +8,15 @@ class AcTestConfig { public: + std::optional getAcDelay() const { return m_acDelay; } std::optional getMinAcPressure() const { return m_minAcPressure; } std::optional getMaxAcPressure() const { return m_maxAcPressure; } protected: + void setAcDelay(const std::optional value) { m_acDelay = value; } void setMinAcPressure(const std::optional value) { m_minAcPressure = value; } void setMaxAcPressure(const std::optional value) { m_maxAcPressure = value; } private: + std::optional m_acDelay; std::optional m_minAcPressure; std::optional m_maxAcPressure; }; @@ -24,6 +27,7 @@ protected: void setUpTestConfig(const AcTestConfig& config); private: + void configureAcDelay(const std::optional acDelay); void configureMinAcPressure(const std::optional minAcPressure); void configureMaxAcPressure(const std::optional maxAcPressure); };